继承树追溯:
属性/方法查找顺序:(如查找变量h)
1、查找当前类中有没有属性h
2、一次上溯每个父类,查看每个服了牛仲有没h,直到object
3、若没找到,则出现编译错误
4、上面步骤,只要找到变量h,则过程停止
构造方法调用顺序:
构造方法第一句总是:super(。。。)来调用父类对应的构造方法,所以流程就是现象上追溯到object,然后依次向下执行类的初始化块和方法,直到当前子类为止。
注:静态初始化块调用顺序,与构造方法调用顺序一样,不再重复
封装(encapsulation)
**是面向对象三大特征之一。对于程序和李的封装让外部调用更加方便,更加利于写作。同事,对于实现者来说夜歌年容易修正和改版代码。
作用和含义:
就是把对象的属性和操作结合在一个独立的整体,并尽可能隐藏对象的内部实现细节
程序设计者要追求:“高内聚,低耦合”。高内聚就是内部数据细节自己完成,不允许外部股干涉;低耦合是仅暴露少量的方法给外部使用,精良方便便外部调用。
封装的具体优点:
(1)提高代码的安全性
(2)提高代码的复用性
(3)“高内聚”封装细节,便于内部修改代码,提高维护性
(4)“低耦合”简化外部调用,便于调用者使用,便于扩展和协作**
封装的实现————访问控制符
1、private : 表示私有只有自己类能访问
2、default:表示没有修饰,只有同一个包的类能访问
3、protected :表示可以被同一个包以及其他包的子类访问
4、public:表示可以被该项目中所有包中的所有类访问
注:关于protected的两个细节
1、若父类和子类在同一个包中,子类访问父类的protected成员,也可以访问父类对象的protected成
2、若子类和弗雷不在同一个包中,子类可访问父类的protected成员不能访问父类
对象的protected成员
封装的使用细节
开发中封装的简单规则:
(1)属性一般使用private访问权限(属性私有后,提供相应的get/set方法来访问相关属性,get是取来值的方法,set是设置值的方法,这些方法通常是public修饰的,一提供对属性得到赋值与读取操作)(注意:boolean变量的get方法是is开头)
(2)方法:一些只用于本类的辅助性方法可以用private修饰希望其它类调用的方法用public修饰