1)static final 常量
static final 修饰的成为常量,应用率高,有如下特点:
1.声明的同时必须初始化
2.由类名点来访问,不能被改变
3.建议:常量名的所有字母都大写,多个单词用下划线分隔
4.编译器再编译时自动将常量替换为具体的数,效率高
5.何时用:数据永不变,并且经常使用
案例:
class Aoo{
public static int num = 5; //静态变量
public static final int COUNT = 5; //常量
}
class Boo{
public class StaticFinalDemo{
public static void main(String[] args){
System.out.println(Aoo.PI); //通过类名点来访问
//Aoo.PI = 3.1415926; //编译错误,常量不能被改变
//1)加载Boo.class到方法区中
//2)静态变量num——并存储到方法区中
//3)到方法区中获取num的值并输出
System.out.println(Boo.num);
//编译器再编译时自动将常量替换为具体的值,效率高
//相当于System.out.println(5);
System.out.println(Boo.COUNT);
}
}
2)抽象类:
2.1)抽象方法:
1.由static修饰
2.只有方法的定义,没有具体的实现(连{}都没有)
2.2)抽象类
1.由static修饰
2.包含抽象方法的类必须是抽象类
3.抽象类不能被实例化
4.抽象类是需要被继承
重写抽象方法---------变不完整为完整
也声明为抽象类-----一般不这么做
5.抽象类的意义:
封装派生类所有共有属性和行为---------代码复用
为所有派生类提供统一的类型------------向上造型
可以包含抽象方法,为所有派生类提供统一的入口(能点出来)。派生类的具体行为不同,
但入口时一致的