2016.02.24总结
今天学习了JavaOO上册中的第8章,类的高级概念,其中的要点有:
1. 动态绑定:父类的引用可以指向子类的对象,但只能用子类中的父类部分的属性和方法。
2. 访问修饰符(可用于修饰属性,方法,类):
private:只能用在本类中;
默认访问修饰符:可以用在本类,同包的子类和非子类中;
protected:可以用在本类,同包的子类和非子类,以及不同包的子类中;
public:可以用在所有类中。
3. OOP的封装就是通过访问修饰符来实现的,一般类中属性都设为私有的,并通过编写相应的getter和setter方法来获取和修改该属性,并可对其进行适当控制。
4. static(静态的)修饰的都是预加载的,JVM在加载类的时候预先将static修饰的加载在内存的相应区域,可选修饰符用法:
static属性:与对象无关,属于类级别的,所有类成员共享该属性,在数据段中的静态区预加载。
static方法:只能操作static的属性和行为,但非静态的可以访问静态的方法和属性;工具类的工具方法一般都设为static的;它不能用来修饰构造方法。
5. 初始化块:可以写所有代码,产生对象时自动执行。
非静态初始化块:{...} 在父类构造方法之后,子类构造方法之前执行。用得少,因为可写在构造方法内。
static静态初始化块:static{...} 在类加载时执行(父类构造方法前,父类static初始化块之后),且只执行一次。常用于来提前运行文件,数据库等的准备步骤。
6. 内部类:独立的类,在类的内部声明的类,内部类可以再有内部类,内部类中可以写任何东西。
成员内部类:写在方法外,同成员变量类似;可以有访问修饰符;类文件名为:外部类名$内部类名.class。
局部内部类:写在方法内,同局部变量类似;无访问修饰符;类文件名为:外部类名$序号+内部类名.class。
static静态内部类:成员内部类的一种;同静态属性一样,直接用外部类名.声明,无需产生外部类对象。
匿名内部类:一般直接用在声明对象后
new 类名(){
};
用于补充该对象中的属性和方法,属于该对象的子类,只能用一次,类文件名为:外部类名$序号.class。