- 使用AlertDialog实现提示框
晨曦诗雨
image.png自己写一个提示消息的框xml文件java的实现功能publicclassAlertDialogextendsAppCompatActivityimplementsView.OnClickListener{privateButtonbutton1;privateButtonbutton2;NotificationManagernotificationManager;//通知控制列i
- Android 使用PopupWindow
徐子元竟然被占了!!
Androidandroid
Android使用PopupWindowmainactivity.Javaimportandroid.content.Context;importandroid.content.Intent;importandroid.graphics.drawable.ColorDrawable;importandroid.os.Bundle;importandroid.view.LayoutInflater;
- Android PopupWindow 和 Dialog Activity的使用
lq_ios
PopupWindow(悬浮框)Android中的PopupWindow类似iOS中的UIPopoverPresentationController弹窗,可以显示在某个view的附近,相对于AlertDialog,AlertDialog在位置显示上是固定的(默认是居中,当然也可以通过dialog.window?.attributes中的x,y改变位置),而PopupWindow则相对比较随意,可以
- Activity android:configChanges属性
persist89
xml
报错android.view.windowleaked——窗口泄漏。Android的每个Activity都有个WindowManager窗口管理器,构建在某个Activity之上的对话框、PopupWindow也有对应的WindowManager窗口管理器。由于Dialog、PopupWindown不能脱离Activity而单独存在着,所以当承载某个Dialog或者某个PopupWindow正在显
- android:configChanges属性
小南胡
安卓原生
今天有幸去哥们的大公司做了半天的暂时工,一个偶现的Bug折腾了他好久,好不easy今天抓到了异常Log日志。大致的意思就是android.view.windowleaked——窗口泄漏。我在网上查了资料:Android的每个Activity都有个WindowManager窗口管理器,构建在某个Activity之上的对话框、PopupWindow也有对应的WindowManager窗口管理器。由于D
- View的绘制流程
追寻米K
先说一下Window,window分三种:应用Window、子Window、系统Window。应用Window就是我们的activity对应的窗口。子window比如dialog、PopupWindow等,子Window不能单独存在,需要依附在特定的父Window中。系统Window比如Toast和系统状态栏,系统Window是需要声明权限才能创建的Window。window层级这些层级范围对应着
- 【Android入门到项目实战--3.1】—— 七种常用控件的使用(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog等)
四月天行健
Androidandroidandroidstudioidejava
目录一、常用的控件1、TextView2、Button3、EditText4、ImageView5、ProgressBar1)如何让加载条在加载完成时消失?2)如何修改进度条样式?6、AlertDialog7、ProgressDialog本篇主要讲解Android的常用控件。一、常用的控件1、TextViewTextView控件用于在界面上显示一段文本信息。下面尝试实现。XML布局文件代码如下:a
- popupwindow 实现搜索历史列表
吃啥呀
kotlin配合searchviewlistpopupwindow开始的代码classSearchActivity:AppCompatActivity(),SearchContract.SearchUIView{privatelateinitvarsearchView:SearchViewprivatelateinitvarhistoryRecord:MutableListprivatelatei
- 自定义Dialog样式
WangGavin
前言平时项目开发总要自定义dialog满足产品的设计需求,但系统提供Dialog和AlertDialog用起来不是很方便,所以自己封装一个好用的Dialog基类是再好不过了。实现BaseDialog.javaimportandroid.app.Dialog;importandroid.content.Context;importandroid.content.DialogInterface;imp
- PopupWindow使用showAsDropDown低版本不显示问题。
犇犇灬zk
问题记录:自定义PopupWindow继承PopupWindow,使用showAsDropDown方法弹出时,在Android高版本中可以正常使用,在使用低版本(Android5.1.1)发现弹出后width和height都是0。xml文件中根布局使用的layout_width和layout_height值为wrap_content。问题原因:xml根布局设置的wrap_content的并不会作用
- 今日成果
小菊花麻麻颗糖
本来想如果不填字的话,实用AlertDialog弹出一个提示框,然后填字的话就弹出这个搜索框,但是没有实现很遗憾。图片发自App简单的布局EditText和Button在水平方向上平分宽度图片发自App更换app图标图片发自App
- Android 7.0 popupWindow update()的坑
顺应自然y
在Android7.0手机上发现popupWindow位置不对,后来经过排查,发现Android7.0源码上update()有bug,会把位置固定成顶部。解决方案:在Android7.0手机上不使用update()方法。if(Build.VERSION.SDK_INT!=Build.VERSION_CODES.N){//Android7.0手机调用PopupWindowupdate会导致位置错乱p
- Jetpack Compose - AlertDialog
乐翁龙
Jetpack-ComposeJetpackComposeAlertDialogdialog
JetpackCompose-AlertDialog0、介绍1、属性一览2、使用示例3、版本更新4、未解决问题Compose系列文章,请点原文阅读。原文,是时候学习Compose了!0、介绍AlertDialog是一个用紧急信息,详细信息或操作打断用户的对话框。1、属性一览【目前基于alpha09版本】请看该对话框支持的两个函数,首先看第一个函数,该函数会根据可用空间水平放置其按钮:@Compos
- JetpackCompose中的Dialog、AlertDialog
左大星
JetpackComposeAndroid进阶androidjetpackandroid-jetpackandroidkotlin
跟View体系一样,Compose中也用Dialog做提示框的。既然有这个API,那我们还是得卷起来熟悉下使用流程及方法。Dialog其构造函数如下:@ComposablefunDialog(onDismissRequest:()->Unit,properties:DialogProperties=DialogProperties(),content:@Composable()->Unit)不难看
- 使用dialog提示信息
夕日坂
androstudio学习笔记android-studioandroid小程序androidstudio
packagecom.example.androidtest2;importandroidx.appcompat.app.AlertDialog;importandroidx.appcompat.app.AppCompatActivity;importandroid.content.DialogInterface;importandroid.os.Bundle;importandroid.view
- 十一、使用Jetpack Compsoe编写一个写小说的Android应用:页面传参进阶与AlertDialog的使用
HO灵
Androidandroidkotlinandroidjetpack
在完成了基础之后,现在我们有了一个近乎完整的软件框架了,现在就一步步实现对应功能就好了。本篇要实现的就是:功能1:首页中的修改小说名称功能2:删除小说。但是交互略显低端,之后有需要的话再优化。说一下实现逻辑:功能1:首先点击主页中小说条目左侧的笔的按钮,跳转到新建小说页面,对小说名字进行修改功能2:点击主页中小说条目右侧的垃圾桶的按钮,弹出提示框,确认后删除1、功能1的实现1.1PageNavHo
- 一文彻底解决Android动态权限申请(下)
LyounJAP
一文彻底解决Android动态权限申请(下)作者:Lyoun_JAP下面是完整版代码MyPermissionsUtil,MainActivity:MyPermissionsUtil:packagetop.lyoun.myusb;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogI
- PopupWindow 学习笔记
feifei_fly
今天学习了PopupWindow,正好做个笔记记录一下,以便查阅。一、Android中的弹框分为两种AlertDialog和PopupWindow1、AlertDialog弹框位置是固定的,并且是非阻塞性的。弹窗显示时,当前线程不会阻塞。2、PopupWindow弹框的位置可是任意指定,并且会阻塞线程二PopupWindow使用PopupWindow分为两个步骤:1.初始化PopupWindowp
- Flutter开发7:对话框
十二栗子
Material库提供了三种基本对话框控件AlertDialog通常用于提示型对话框SimpleDialog通常用于列表型对话框Dialog通常用于自定义布局元素的对话框弹出对话框时,调用showDialog函数,将对话框控件传入,由于对话框本身是路由,所以关闭对话框时,需使用Navigator.of(context).pop()除此外,还有一种iOS风格的基本对话框控件CupertinoAler
- android 选择文件并返回地址,安卓打开文件浏览器,选择文件后得到返回路径
剑道小子
android选择文件并返回地址
新手,写的不对还望指正!在安卓应用开发中经常会遇到需要打开系统文件管理器选择文件后返回路径的操作。例如点击一个导入的Button按钮,首先在根目录下寻找所需要的文件,若文件不存在就弹出对话框是否选择文件,选择文件后返回文件路径,给Button注册监听:publicvoidonClick(Viewarg0){if(mFilePath.equals("没有找到相关文件")){AlertDialog.B
- 【HarmonyOS应用开发】ArkUI 开发框架-进阶篇-应用弹窗(十一)
断水流大撕兄
实战前端大杂烩harmonyos华为鸿蒙鸿蒙系统前端
一、应用弹窗1、概述在我们日常使用应用的时候,可能会进行一些敏感的操作,比如删除联系人,这时候我们给应用添加弹窗来提示用户是否需要执行该操作,如下图所示:弹窗是一种模态窗口,通常用来展示用户当前需要的或用户必须关注的信息或操作。在弹出框消失之前,用户无法操作其他界面内容。ArkUI为我们提供了丰富的弹窗功能,弹窗按照功能可以分为以下两类:确认类:例如警告弹窗AlertDialog。选择类:包括文本
- Android自定义DiaLog对话框
天真的赵日天
Androidandroid
对话框常用的对话框自定义对话框常用的对话框对话框类特殊普通AlertDialog.Builder()单选AlertDialog.Builder()setSingleChoiceItems()多选AlertDialog.Builder()setMultiChoiceItems()日期DatePickerDialognewDatePickerDialog(context,DatePickerDialo
- Android:AlertDialog自定义对话框
leekey_sjtu
Androidandroidkotlinandroidstudio
Dialog//加载自定义的viewvalview=LayoutInflater.from(this).inflate(R.layout.your_layout,null)valeditText=view.findViewById(R.id.et_dialog)//创建对话框AlertDialog.Builder(this).apply{setTitle("新建列表")//设置标题setView(
- Android自定义Dialog对话框的三种方法
AndyYuan317
布局的中等知识点Dialog
自定义对话框是经常使用的功能,我们常用的弹窗操作,除了使用popwindow(popupwindow的简单实用)就是使用dialog来实现,这两种组件都支持之定义布局和功能来满足我们个性化的需求,也可以不采用自定义而直接使用系统封装好的api来实现功能。今天简单总结下在使用dialog做弹窗功能的方法和会遇到的问题与解决方案方法一:直接使用系统的,不自定义布局和功能方式,效果如下图:点击事件中代码
- [- Flutter基础篇 -] 聊聊那些弹框
CV大师啊
面试移动开发Androidandroid移动开发
对话框作为一个挺重要的东西,这里来说一下,细细一数也蛮多的,本文包括[1].SimpleDialog[2].AlertDialog[3].CupertinoAlertDialog[4].Dialog中的组件状态更新[5].SnackBar[6].BottomSheet[7].DatePicker[8].TimePickerwTimePicker,[9].CupertinoPicker[10].Cu
- Flutter 60: 图解基本 Dialog 对话框小结
阿策神奇
Dialog在日常开发中应用广泛,大家也对此很熟悉;小菜以前也整理过关于自定义Dialog的小博客,今天小菜系统的学习一下最基本的Dialog;Dialog一般不直接使用,Flutter提供了便利的AlertDialog/SimpleDialog/AboutDialog/CupertinoDialog/CupertinoAlertDialog等多种对话框样式,小菜重点尝试前三种AndroidTyp
- 记一个ViewPager-with-Fragments-inside-PopupWindow-的坑
ConquerRen
android开发viewpagerfragmentpopupwindow
记一个ViewPager-with-Fragments-inside-PopupWindow-的坑。当时实现的一个场景是:在popupwindow中需要实现一个可以左右滑动很多页的viewpagerViewPagerwithFragmentsinsidePopupWindow(orDialogFragment)会出现一个错误:Errornoviewfoundforidforfragment我跟到最
- js 创建弹出窗口
言小溪
JavaScript【基础】javascript前端html
/***创建弹出窗口*@paramurl地址*@paramwinName窗口名*@paramwidth宽*@paramheight高*@paramscrollbars是否有滚动条*@paramresizable是否可调整大小*/exportfunctioncreatePopupWindow(url:string,name:string,opts:{width:number;height:numbe
- Compose | UI组件(八) | Dialog - 对话框
谭祖爱
Android开发#[Compose]ComposeDialogAlertDialog
文章目录前言Dialog普通弹框Dialog普通弹框的使用AlertDialog警告弹框AlertDialog警告弹框的使用总结前言在我们传统的UI界面中,经常用到弹框,Compose也有弹框,但是Compose的弹框显示和隐藏和传统的弹框显示(show)和隐藏(dismiss)不一样,Compose中显示与否要看是否重组被执行,所以它显示与否要依赖状态控制Dialog普通弹框Dialog是最底层
- .9图片有坑
new_xd
结论:如果view是代码生成的,设置.9图片作为背景,用于PopupWindow,会使view的padding属性不生效在xml中写view,直接展示在xml中写view,inflate出来,用于PopupWindow这两种情况,都没有问题代码中new出来的view,用于PopupWindow,就会有问题。背景换为颜色,以上三种情况都不会有问题
- Spring4.1新特性——Spring MVC增强
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- mysql 性能查询优化
annan211
javasql优化mysql应用服务器
1 时间到底花在哪了?
mysql在执行查询的时候需要执行一系列的子任务,这些子任务包含了整个查询周期最重要的阶段,这其中包含了大量为了
检索数据列到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方
花费时间,包括网络、cpu计算、生成统计信息和执行计划、锁等待等。尤其是向底层存储引擎检索数据的调用操作。这些调用需要在内存操
- windows系统配置
cherishLC
windows
删除Hiberfil.sys :使用命令powercfg -h off 关闭休眠功能即可:
http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html
类似的还有pagefile.sys
msconfig 配置启动项
shutdown 定时关机
ipconfig 查看网络配置
ipconfig /flushdns
- 人体的排毒时间
Array_06
工作
========================
|| 人体的排毒时间是什么时候?||
========================
转载于:
http://zhidao.baidu.com/link?url=ibaGlicVslAQhVdWWVevU4TMjhiKaNBWCpZ1NS6igCQ78EkNJZFsEjCjl3T5EdXU9SaPg04bh8MbY1bR
- ZooKeeper
cugfy
zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如同步, 配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端API。 Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来lea
- 网络爬虫的乱码处理
随意而生
爬虫网络
下边简单总结下关于网络爬虫的乱码处理。注意,这里不仅是中文乱码,还包括一些如日文、韩文 、俄文、藏文之类的乱码处理,因为他们的解决方式 是一致的,故在此统一说明。 网络爬虫,有两种选择,一是选择nutch、hetriex,二是自写爬虫,两者在处理乱码时,原理是一致的,但前者处理乱码时,要看懂源码后进行修改才可以,所以要废劲一些;而后者更自由方便,可以在编码处理
- Xcode常用快捷键
张亚雄
xcode
一、总结的常用命令:
隐藏xcode command+h
退出xcode command+q
关闭窗口 command+w
关闭所有窗口 command+option+w
关闭当前
- mongoDB索引操作
adminjun
mongodb索引
一、索引基础: MongoDB的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的优化技巧。下面是创建索引的命令: > db.test.ensureIndex({"username":1}) 可以通过下面的名称查看索引是否已经成功建立: &nbs
- 成都软件园实习那些话
aijuans
成都 软件园 实习
无聊之中,翻了一下日志,发现上一篇经历是很久以前的事了,悔过~~
断断续续离开了学校快一年了,习惯了那里一天天的幼稚、成长的环境,到这里有点与世隔绝的感觉。不过还好,那是刚到这里时的想法,现在感觉在这挺好,不管怎么样,最要感谢的还是老师能给这么好的一次催化成长的机会,在这里确实看到了好多好多能想到或想不到的东西。
都说在外面和学校相比最明显的差距就是与人相处比较困难,因为在外面每个人都
- Linux下FTP服务器安装及配置
ayaoxinchao
linuxFTP服务器vsftp
检测是否安装了FTP
[root@localhost ~]# rpm -q vsftpd
如果未安装:package vsftpd is not installed 安装了则显示:vsftpd-2.0.5-28.el5累死的版本信息
安装FTP
运行yum install vsftpd命令,如[root@localhost ~]# yum install vsf
- 使用mongo-java-driver获取文档id和查找文档
BigBird2012
driver
注:本文所有代码都使用的mongo-java-driver实现。
在MongoDB中,一个集合(collection)在概念上就类似我们SQL数据库中的表(Table),这个集合包含了一系列文档(document)。一个DBObject对象表示我们想添加到集合(collection)中的一个文档(document),MongoDB会自动为我们创建的每个文档添加一个id,这个id在
- JSONObject以及json串
bijian1013
jsonJSONObject
一.JAR包简介
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:
1.commons-lang-2.0.jar
2.commons-beanutils-1.7.0.jar
3.commons-collections-3.1.jar
&n
- [Zookeeper学习笔记之三]Zookeeper实例创建和会话建立的异步特性
bit1129
zookeeper
为了说明问题,看个简单的代码,
import org.apache.zookeeper.*;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocal
- 【Scala十二】Scala核心六:Trait
bit1129
scala
Traits are a fundamental unit of code reuse in Scala. A trait encapsulates method and field definitions, which can then be reused by mixing them into classes. Unlike class inheritance, in which each c
- weblogic version 10.3破解
ronin47
weblogic
版本:WebLogic Server 10.3
说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录
例如我的做测试的域的根目录 DOMAIN_HOME=D:/Weblogic/Middleware/user_projects/domains/base_domain
1.为了保证操作安全,备份%DOMAIN_HOME%/security/Defa
- 求第n个斐波那契数
BrokenDreams
今天看到群友发的一个问题:写一个小程序打印第n个斐波那契数。
自己试了下,搞了好久。。。基础要加强了。
&nbs
- 读《研磨设计模式》-代码笔记-访问者模式-Visitor
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.ArrayList;
import java.util.List;
interface IVisitor {
//第二次分派,Visitor调用Element
void visitConcret
- MatConvNet的excise 3改为网络配置文件形式
cherishLC
matlab
MatConvNet为vlFeat作者写的matlab下的卷积神经网络工具包,可以使用GPU。
主页:
http://www.vlfeat.org/matconvnet/
教程:
http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html
注意:需要下载新版的MatConvNet替换掉教程中工具包中的matconvnet:
http
- ZK Timeout再讨论
chenchao051
zookeepertimeouthbase
http://crazyjvm.iteye.com/blog/1693757 文中提到相关超时问题,但是又出现了一个问题,我把min和max都设置成了180000,但是仍然出现了以下的异常信息:
Client session timed out, have not heard from server in 154339ms for sessionid 0x13a3f7732340003
- CASE WHEN 用法介绍
daizj
sqlgroup bycase when
CASE WHEN 用法介绍
1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN
- PHP技巧汇总:提高PHP性能的53个技巧
dcj3sjt126com
PHP
PHP技巧汇总:提高PHP性能的53个技巧 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注: PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍
- Yii框架中CGridView的使用方法以及详细示例
dcj3sjt126com
yii
CGridView显示一个数据项的列表中的一个表。
表中的每一行代表一个数据项的数据,和一个列通常代表一个属性的物品(一些列可能对应于复杂的表达式的属性或静态文本)。 CGridView既支持排序和分页的数据项。排序和分页可以在AJAX模式或正常的页面请求。使用CGridView的一个好处是,当用户浏览器禁用JavaScript,排序和分页自动退化普通页面请求和仍然正常运行。
实例代码如下:
- Maven项目打包成可执行Jar文件
dyy_gusi
assembly
Maven项目打包成可执行Jar文件
在使用Maven完成项目以后,如果是需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁琐的操作简单。我们可以通过插件完成这项工作,使用assembly插件。具体使用方式如下:
1、在项目中加入插件的依赖:
<plugin>
- php常见错误
geeksun
PHP
1. kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastc
- 修改linux的用户名
hongtoushizi
linuxchange password
Change Linux Username
更改Linux用户名,需要修改4个系统的文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
古老/传统的方法是使用vi去直接修改,但是这有安全隐患(具体可自己搜一下),所以后来改成使用这些命令去代替:
vipw
vipw -s
vigr
vigr -s
具体的操作顺
- 第五章 常用Lua开发库1-redis、mysql、http客户端
jinnianshilongnian
nginxlua
对于开发来说需要有好的生态开发库来辅助我们快速开发,而Lua中也有大多数我们需要的第三方开发库如Redis、Memcached、Mysql、Http客户端、JSON、模板引擎等。
一些常见的Lua库可以在github上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。
Redis客户端
lua-resty-r
- zkClient 监控机制实现
liyonghui160com
zkClient 监控机制实现
直接使用zk的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。另外如果要使用抽象级别更高的功能,比如分布式锁,leader选举
- 在Mysql 众多表中查找一个表名或者字段名的 SQL 语句
pda158
mysql
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句:
方法一:SELECT table_name, column_name from information_schema.columns WHERE column_name LIKE 'Name';
方法二:SELECT column_name from information_schema.colum
- 程序员对英语的依赖
Smile.zeng
英语程序猿
1、程序员最基本的技能,至少要能写得出代码,当我们还在为建立类的时候思考用什么单词发牢骚的时候,英语与别人的差距就直接表现出来咯。
2、程序员最起码能认识开发工具里的英语单词,不然怎么知道使用这些开发工具。
3、进阶一点,就是能读懂别人的代码,有利于我们学习人家的思路和技术。
4、写的程序至少能有一定的可读性,至少要人别人能懂吧...
以上一些问题,充分说明了英语对程序猿的重要性。骚年
- Oracle学习笔记(8) 使用PLSQL编写触发器
vipbooks
oraclesql编程活动Access
时间过得真快啊,转眼就到了Oracle学习笔记的最后个章节了,通过前面七章的学习大家应该对Oracle编程有了一定了了解了吧,这东东如果一段时间不用很快就会忘记了,所以我会把自己学习过的东西做好详细的笔记,用到的时候可以随时查找,马上上手!希望这些笔记能对大家有些帮助!
这是第八章的学习笔记,学习完第七章的子程序和包之后