一、封装
1、封装的概念
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏
信息的操作和访问。把尽可能多的东西藏起来,对外提供便捷的接口。
2、封装的两个大致原则
把所有的属性藏起来
3、如何实现封装
4、封装的好处
(1)便于使用者正确使用系统,防止错误修改属性
(2)有助于系统之间的松耦合,提高系统独立性
(3)提高软件的可重用性
(4)降低了构建大型系统的风险
添加getXxx()/setXxx()方法
eg:见文件
二、包
1、包的作用
(1)允许类组成较小的单元(类似 文件夹),易于找到和使用相应的文件
(2)防止命名冲突 区分名字相同的类
(3)有助于实施访问权限控制
2、如何创建包
作为Java源代码第一条语句,用package声明包,以分号结尾。
3、包命名规范
4、用MyEclipse创建包
5、如何导入包
1. 系统包:java.util
2. 自定义包:cn.jtest.classandobject
*: 指包中的所有类 School :指包中的School类
6、注:
(1)类同时引用了两个来自不同包的同名类
必须通过完整类名来区分
(2)每个包都是独立的,顶层包不会包含子包的类
(3)package和import的顺序是固定的
package必须位于第一行(忽略注释行)
只允许有一个package语句
其次是import
接着是类的声明
三、访问权限控制
1、类的访问修饰
3、(1)static变量
类的成员变量包括
类变量(静态变量)
被static修饰的变量
在内存中只有一个拷贝
类内部,可在任何方法内直接访问静态变量
其他类中,可以直接通过类名访问
实例变量
没有被static修饰的变量
每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响
(2)static方法
静态方法:
可直接通过类名访问 静态方法中不能使用this和super
不能直接访问所属类的实例变量和实例方法
可直接访问类的静态变量和静态方法
实例方法:
通过实例访问 可直接访问所属类的静态变量、静态方法、实例变量和实例方法
eg:
模拟实现选民投票过程:一群选民进行投票,每个选民只允许投一次票,并且当投票总数达到100
时,就停止投票
分析: 投票,需要的是选民这个主体,所以我们需要定义选民类,选民类中可以有姓名、年龄、
性别等属性投票,还需要知道投票的业务流程,可以定义成方法
每个选民来投票,先判断投票总数有没有达到100,如果没有达到100,可以投一票,并且将投票
统计变量+1,如果达到了100,就不能投票。
建以一个Voter类,一个Poll类、一个执行类Test类(见文件)