总结
类的高级概念
1.访问修饰符
public(皆可访问) > protected(有关系(同包或有继承关系)的可以访问)
> 默认(又名同包,即同包的可以访问) > private(本类才可以访问)
2.get/set方法
优点
1.将属性变为只读或只写
2.可以对用户在外部设置的值进行有效性的控制
3.可以对外隐藏内部属性存放的结构
静态初始化块的用法
1.与对象无关,所以不能操作非static的属性和方法。
2.随着类的加载而自动执行,且只执行一次。
3.经常在项目中需要把预加载资源的动作实现在静态初始化块中。
当我们new一个子类对象时的调用顺序:
1.首先因为需要加载子类所以会先加载父类,然后调用父类的静态初始化块,然后才
加载子类,调用子类的静态初始化块,接下来要产生子类对象就会先调用父类的实例
初始化块,接着调用父类的构造方法产生父类部分,然后调用子类的实例初始化块,
接着调用子类的构造方法,产生子类部分,最后把内存叠加,产生一个子类对象。
图示: 父类静态初始化块----->子类静态初始化块--
----->父类实例初始化块----->父类构造方法(产生父类部分)----->子类实例初始化块--
----->子类构造方法(产生子类部分进行叠加)----->产生子类对象
类的高级概念
1.访问修饰符
public(皆可访问) > protected(有关系(同包或有继承关系)的可以访问)
> 默认(又名同包,即同包的可以访问) > private(本类才可以访问)
2.get/set方法
优点
1.将属性变为只读或只写
2.可以对用户在外部设置的值进行有效性的控制
3.可以对外隐藏内部属性存放的结构
静态初始化块的用法
1.与对象无关,所以不能操作非static的属性和方法。
2.随着类的加载而自动执行,且只执行一次。
3.经常在项目中需要把预加载资源的动作实现在静态初始化块中。
当我们new一个子类对象时的调用顺序:
1.首先因为需要加载子类所以会先加载父类,然后调用父类的静态初始化块,然后才
加载子类,调用子类的静态初始化块,接下来要产生子类对象就会先调用父类的实例
初始化块,接着调用父类的构造方法产生父类部分,然后调用子类的实例初始化块,
接着调用子类的构造方法,产生子类部分,最后把内存叠加,产生一个子类对象。
图示: 父类静态初始化块----->子类静态初始化块--
----->父类实例初始化块----->父类构造方法(产生父类部分)----->子类实例初始化块--
----->子类构造方法(产生子类部分进行叠加)----->产生子类对象