补充:
1、数据(成员变量)私有化(private),行为(方法)大部分公开化(public)
2、getter/setter:行业标准
3、接口中成员的默认权限为public,重写方法时要求访问权限必须大于或等于超类
4、成员变量分两种:
实例变量:(int a;)没有static修饰,属于对象的,存储在堆中,有几个对象就有几份, 通过引用/对象打点来访问
静态变量:(static int a;)由static修饰,属于类的,存储在方法区中,只有一份
通过类名打点来访问
一、访问控制修饰符
作用:
保护数据的安全(隐藏数据、暴露行为),实现封装
设计:
数据(成员变量)私有化(private)
行为(方法)大部分公开化(public)
共四种:
public:公开的,任何
protected:受保护的,本类,派生类,同包类
默认的(default):什么也不写,本类,同包类
private:私有的,本类
类的访问权限:
只能是public和默认的
类中成员的访问权限如上四种就可以
二、static
表示静态的
可以设计:
静态变量:由static修饰的成员变量即为静态变量
特点:属于类,存储在方法区中,只有一份
常常通过类名打点来访问
应用:对象所共享的数据
静态块:
由static修饰的语句块即为静态块
特点:属于类,在类被加载期间自动执行
因一个类只被加载一次,所以静态块也只执行一次
应用:初始化/加载静态资源/静态变量(给静态变量做初始化)
静态方法:
由static修饰的方法即为静态方法
特点:属于类,存储在方法区中,只有一份
常常通过类名打点来访问
应用: 方法的操作与对象无关(不需要访问对象的属性/方法)
三、static final常量
由static和final修饰的成员变量,即为常量
特点:
必须声明同时初始化
常常通过类型点来访问,不能被改变
建议:
常量名所有字母都大写,多个单词之间用_来访问
编译器在编译时,会将常量直接替换为具体的数,所以效率高
应用:
在程序运行过程中数据永远不变,并且经常使用
四、枚举
是一种引用数据类型
特点:
枚举类型的对象数目是固定的,常常用于定义一组常量
例如:季节、星期、月份、订单状态、性别....
所有枚举默认都继承自Enum类,其中提供了一组方法供我们使用
枚举的构造方法都是私有的