一,abstract(抽象的)
1.abstract可以修饰类:
(1)被abstract修饰的类被称为抽象类
(2)语法:
abstract class 类名{ }
(3)特点:只能声明引用,不能创建对象
(4)抽象中可以定义属性和成员方法、构造方法
(5)
2.abstract可以修饰方法
(1)被abstract修饰的被称为抽象方法
(2)语法:
访问修饰abstract返回值类型 方法名*(形参);
注意:访问修饰符和abstract没有先后顺序
(3)特点:抽象方法只有声明部分,没有方法的实现
3.抽象类可以定义子类
(1)语法:class 类名 extends 抽象类类名(){}
(2)特点:子类不想成为抽象类,则必须覆盖父类中的所有抽象方法
二,static(静态的)
1.static可以修饰属性的
(1)被static修饰的属性被称为静态属性或静态变量或者类变量
(2)语法:static 数据类型 变量名;
static 数据变量
(3)特点:静态变量基于类存在,被所有对象共享,和创建对象的多少无关
(4)使用:
a 可以通过对象 静态属性名
b 可以直接通过 类名 静态属性名 ——》建议
2.可以修饰方法
(1)被static修饰的方法被称为静态方法
(2)语法
访问修饰符 static 返回值类型方法名(形参){}
(3)使用:直接通过 类名.静态方法名(实参);
(4)注意:静态方法中只能访问本类的静态成员,不能直接访问本类的非静态成员
(5)静态方法中不能使用this和super关键字
3.可以修饰代码块
(1)被static修饰的代码块被称为静态代码块
(2)位置 定义在类以内,方法以外,被static修饰的{}
(3)语法
class 类名{
static {}
}
(4)作用:在类 加载的时候,静态代码块按照属性和定义的先后顺序完成对静态属性的初始化工作
(5)类加载:当JVM第一次使用一个类的时候,通过classpath找到对应类的。class文件,对文件进行读取,读取该类中包含的包名,类名,父类,属性,构造方法等信息,并将读取的信息保存到jvm内存中,一个类进行一次类加载
(6)jvm加载类的时机
a 第一次访问该类的静态成员
b 第一次创建该类对象:
先进行类加载,在完成对象的创建
c 子类类加载 先导致其父类类加载
三,final(最终的)
1.final可以修饰变量
(1)被final修饰的变量 作用范围内的常量
(2)final 数据类型 变量名;
(3)特点:只允许一次赋值不允许修改
(4)注意:引用一但被final修饰 代表储存中的引用对象不允许被更改
2.final可以修饰方法:允许被引用但不允许被修改
3.final可以修饰类:被final修饰的类不允许被继承 没有子类。例如:Systm Math