一.访问控制修饰符:
1.public:公共的,任何类
2.protected:受保护的,本类、子类、同包类
3.default(默认的):什么也不写,本类、同包类
4.private:私有的,本类
外部类(包括接口)只能用public和default来修饰(用public修饰的是主类)
接口常量跟方法默认用public修饰
一般应用:数据(变量)私有化(private),行为(方法)公开化(public)
但父类变量用protected来修饰
二:abstract:抽象的
1.修饰类:
(1)包含抽象方法的类必须声明为抽象类
不包含抽象方法的类也可以声明为抽象类
(2)抽象类不能被实例化
(3)抽象类是需要被继承的,子类:重写所有的抽象方法------变不完整为完整
2.修饰方法:只有方法的定义,没有具体的实现(连{}都没有)
如:public abstract void step() ;(父类)
接口默认用abstract修饰(包括方法)
三.static:静态的
1.修饰变量
(1)属于类的,存储在方法区中,只有一份
(2)常常通过类名点来访问
(3)何时用:所有对象所共享的数据(图片、音频、视频)
2.修饰方法
(1)属于类的,存储在方法区中,只有一份
(2)常常通过类名点来访问
(3)静态方法没有隐式的this传递,
静态方法中不能直接访问本类中非静态成员变量和方法
(4)何时用:方法的操作仅与参数相关而与对象无关
3.静态块
(1)属于类的,在类被加载期间自动执行,
因为类只被加载一次,所以静态块也只执行一次
(2)何时用:加载/初始化静态资源(图片、音频、视频等)
四.final:最终的——>单独应用的几率很小
1.修饰变量:变量不能改变
2.修饰方法:方法不能被重写
3.修饰类:类不能被继承
4.匿名内部类中访问外部的变量,该变量必须是final
五.static final常量(位置可以互换):应用率高
1.必须声明同时初始化
2.通过类名来访问,不能被改变
3.建议:常量名所有字母都大写,多个单词用下划线分隔
4.编译器在编译时将常量直接替换为具体的值,效率高
5.某个数据永远不会改变,并且还经常使用
6.接口中默认只有常量用(static final)来修饰