java进阶
类的5大成分:
1.成员变量
2.成员方法
3.构造方法
4.代码块
5.内部类
构造器:
格式:
修饰符 类名(形参){
}
默认会提供一个无参构造器,如果自己创建了构造器,那么默认提供的无参构造器会失效。
this关键字:
this代表了当前对象的引用;
this关键字可以用在实例方法和构造方法中
this用在方法中,谁调用这个方法,this就代表谁。
this用在构造器,代表构造器正在初始化那个对象的引用。
static关键字:
按照有无static关键字修饰来划分,成员方法和成员变量可分为:
成员变量:
1.静态成员变量(类变量):
使用static关键字修饰,属于类本身,可以直接通过类名访问;与类一起只加载一次。
2.实例成员变量:
没有staic关键字修饰称为实例成员变量,属于类的每个对象,必须通过类的实例对象来方法。与类的对象一起加载,每次创建类的对象就会加载一次。
成员方法:
1.静态方法:
有static修饰的成员方法称为静态方法,也叫类方法,属于类本身,直接用类名访问即可。
2.实例方法:
没有static修饰的成员方法称为实例方法,属于类的每个对象,必须通过类的对象来访问。
继承:
重写:
静态方法和私有方法都不可以被重写》
静态方法是属于父类本身的,所以继承并没有继承这个方法,所以不支持重写。
构造方法继承
子类构造方法的第一行,默认会有super();用来调用父类的无参构造器,在代码中不显式出现。
原因:子类继承父类,就得到的 父类的成员变量和方法,当子类使用构造方法初始化时,必须先调用父类构造器初始化父类的成员变量和方法,子类才能进行调用。
抽象类:
抽象类有构造器吗?是否可以创建对象?
抽象类有构造器,但是不能创建对象,因为抽象的抽象方法没有方法体,不能执行,所以不能创建对象。
抽象类不能创建对象,可以包含抽象方法,除此之外,类有的要素,抽象类都具有。
静态代码块:
静态代码块与类一起加载,并且会默认自动触发执行一次。
静态代码块可以用来初始化值。
实例代码块:
实例代码块属于类的每个对象,会在类的对象初始化时进行加载。
枚举类:
枚举类的特点:
1.枚举类时final修饰的,不能被继承;
2.枚举类默认继承了枚举类型:java.lang.Enum;
3.枚举类的第一行罗列的是枚举类的对象,而且是用常量存储的;
4.所以枚举类第一行写的都是常量名称,默认是存储了枚举类型;
5.枚举类的构造器默认是私有的;
6.枚举类相当于多例设计模式。