今天所学
先进先出:最先加入窗体的组件在最上层,最后加入窗体组件在最下层。
面向对象的三大特征: 继承、 封装、 多态。重写:重写发生在父类和子类之间。子类的方法名和父类相同,参数列表相同,返回类型相同。
当对子类方法进行调用时,会优先调用子类重写的方法。
子类对象创建之前,会产生父类对象。然后再父类对象基础之上,扩展子类特有的属性和方法。
所以子类对象中包含完整的父类对象,就可以重用父类中定义的方法和属性。
子类对象创建之前,需要通过super()调用父类的构造方法,产生父类对象。如果子类构造方法中没书写surer(),这时,
虚拟机会自动调用super().如果父类中没有无参构造构造方法,就需要在子类构造前书写super()
引用类型的变量,如果修饰为final, 表示该变量的值不能变。也就是不能再指向别的对象。
fina关键字,可以修饰类,方法,变量。修饰类表示该类不能被子类所继承,修饰方法表示该方法
不能被子类重写,修饰变量表示该变量的内容不能改变。
public : 该类或非该类均可以访问
private: 只有该类可以访问
protected: 该类及其子类成员可以访问,同一个包可以访问
默认 : 相同数据包中的类可以访问
封装: 按照信息隐藏的原则,将数据组织在一起。
封装有两大特点: 1、信息隐藏 2、信息集合
私有属性+get/set方法和公有属性的区别:
1、私有属性并不能被直接访问,只有通过公有的get方法(访问器)和set方法(修改器)
来进行设值和取值。这样一旦删掉get/set方法,可以将改属性设为只读或只写。公有属性做不到
2、 可以通过修改器在设值属性时,做数据合法性的验证。但公有属性做不到。
static{
} 称为静态初始化块。在类加载时执行,也就是在产生对象前执行。而且只执行一次。
内部类:在一个类中再定义一个类,这称为内部类。内部类相当于外部类的一个属性,
内部类对象的产生,依赖与外部类的对象。
内部类所产生的class文件:外部类类名$内部类类名.class
多态:允许一个父类变量引用子类的对象,允许一个接口类型变量引用实现类对象。反过来却不行。
多态调用时,使用父类变量指向子类对象,只能调用父类重定义的方法或属性,不能调用子类特有的方法或属性。
如果子类重写了父类的方法,那么调用时,会优先调用子类的方法。
子类重写父类的方法,要求子类方法访问修饰符要大于或等于父类方法修饰符。
今天的练习:
1、答: public : 该类或非该类均可以访问
private: 只有该类可以访问
protected: 该类及其子类成员可以访问,同一个包可以访问
默认 : 相同数据包中的类可以访问
2、答: 封装: 按照信息隐藏的原则,将数据组织在一起。
封装有两大特点: 1、信息隐藏 2、信息集合
3、答:a、私有属性并不能被直接访问,只有通过公有的get方法(访问器)和set方法(修改器)
来进行设值和取值。这样一旦删掉get/set方法,可以将改属性设为只读或只写。公有属性做不到
b、 可以通过修改器在设值属性时,做数据合法性的验证。但公有属性做不到。
4、答:在类加载时执行,也就是在产生对象前执行。而且只执行一次。
5、答:在一个类中再定义一个类,这称为内部类。内部类相当于外部类的一个属性,
内部类对象的产生,依赖与外部类的对象。
内部类所产生的class文件:外部类类名¥内部类类名.class
6、答:允许一个父类变量引用子类的对象,允许一个接口类型变量引用实现类对象。反过来却不行。