8.1访问修饰符:
public:该类或非该类均可访问;
private: 只有该类可以访问;
protected:该类及其子类的成员可以访问,同一个包中的类也可以访问;
默认:相同数据包中的类可以访问。
访问修饰符的作用是限制属性和方法被使用和调用的范围。
8.2封装
按照信息隐藏的原则将信息组织在一起。封装有两个特点:信息的集合;信息的隐藏。
8.3访问器get()和修改器set()
私有属性+get/set()和公有属性的区别:
私有属性+get/set(),可以通过去掉get或者set方法,将属性做成只读或只写属性,但公有属性做不到。
私有属性可以在set方法设置属性值之前,做一些合法性的验证,从而保证属性值的合法性。但公有属性做不到。
8.4 静态块与实例化块
public class X{
static{}
}叫做静态块,在类加载时执行,且只执行一次。
publick class X{}
{}叫做实例化块,对象每产生一个,就执行一次实例化块,在super()之后执行。
当对象被实例化,并且类包含有实例初始化块时,下面的事件按顺序发生:
- 子类中相应的构造器被调用;
- 执行对super的调用,控制流程跳转到相应的父类构造器;
- 父类构造器执行完,控制流程跳转回子类构造器;
- 在该子类构造器中的super()后面的任何语句执行前,实例初始化块执行;
- 最后执行子类构造器中super()后面的语句
8.5内部类
在java中还可以在类的内部定义类。这种在类的内部定义的类,称为内部类。内部类所在的类称为外部类。
内部类相当于外部类的属性,内部类的对象的产生必须依赖外部类的对象。
内部类所产生的的class文件名是“外部类名$内部类名.class”。