一、特征修饰符:
一种修饰符,可以修饰类,方法,属性等;
二、常用的特征修饰符有
final,static,abstract
三、final(最终的,最后的):可以修饰类,方法,属性,形参。
final 类名:表示最终类,不能被继承;
final 方法名:表示最终方法,不能被重写;
final 属性,形参,变量:表示最终的,不能被重新赋值,是常量;
四、static(静态):可修饰属性,方法,内部类;
(1)
stactic 属性名: 表示静态属性,不需要创建对象访问(即不需要先运行构造方法),直接通过 类名.属性 来直接访问,如 Preson.history;
注意:被static修饰的属性和方法是属于类的,而不是属于对象的,储存在内存中的方法区,是创建对象的模板。
属性:属性是属于类的,而不是属于对象的,即使不创建对象也能访问。
(2)
static 方法名:表示静态方法,可以不创建对象直接访问(即可以不运行构造方法),如array.toString(),system.out.println等,静态方法中不能直接引用非静态成员,也不能使用this,super关键字;
static 属性名:表示静态属性,可以被赋值一次,不能再修改;
(3)
static块,即静态块
static{
}
五、原理:当我们创建一个对象时,都做了哪些工作;
Person p = new Person();
执行顺序
1.将Persone类文件加载到虚拟机中,作为一块模板,一个类只进行一次此操作,往后再调用该类不再进行此操作;
2.执行静态代码块,即static{},一个类只执行一次,往后再调用该类不再执行;
3.执行类的匿名初始化块
4.static静态方法
5.调用构造方法
六、类中都可以定义什么?
1.属性
2.方法
3.构造方法:每个对象创建时自动执行一次,子类调用父类时是先执行父类的构造方法,再调用自身的构造方法,倘若子类构造方法无参则寻找父类无参构造方法,不满足则出错,同样有参找有参,类自身运行时也会先执行一次构造方法;
4.匿名块
5.静态块
七、abstract(抽象的):即只有定义,没有实现,可修饰类,方法;
1.抽象方法:只有方法的定义,没有方法的实现,即没有方法体;
2.访问修饰符 特殊修饰符 返回值类型 方法名(参数列表){
方法体;}
3.定义抽象方法的语法
访问修饰符 abstract 返回值类型 方法名(参数列表);
4.作用:让子类来重写,如果子类不重写,那么子类还是一个抽象类;
注意:抽象方法只能在抽象类中定义,普通类有抽象方法报错;
注意:不能用abstract修饰私有方法,构造方法,静态方法;
5.抽象类
概念:抽象类不能被实例化,即不能创建对象,只能作为其他类的父类;
应用:用来模型化那些父类无法确定全部实现,而由其子类提供具体实现的对象的类;
注意:类中只要有一个抽象方法,那么这个类就是抽象类;
注意:abstract与final的作用相反;
abstract class 类名{
}
优点:扩展性高;