什么是权限修饰符
- 权限修饰符:是用来控制一个成员能够被访问的范围的。
- 可以修饰成员变量,方法,构造器,内部类,不同权限修饰的成员能够被访问的范围将受到限制。
权限修饰符的分类和具体作用范围
- 权限修饰符:有四种作用范围由小到大(private->缺省->protected->public)
final
final修饰变量,变量有且仅能被赋值一次。
ps:变量有几种?
局部变量
成员变量:1.静态成员变量。2.实例成员变量
final的作用
- final关键字时最终的意思,可以修饰(方法,变量,类)
- 修饰变量:表示该变量第一次赋值后,不能再次被复制(有且仅能被赋值一次)
- 修饰类:表明该类时最终类,不能被继承
final修饰变量的注意 - final修饰的变量时基本类型:那么变量存储的数据值不能发生改变。
- final修饰的变量时引用类型:那么变量存储的地址值不能发生改变,但是地址指向的对象内容时可以发生变化的
//final修饰变量的注意事项
//1.final修饰基本类型变量,其数据不能在改变
final double rate=3.14;
//rate=3.2;//第二次赋值报错
//2.final修饰引用数据类型的变量,变量中存储的地址不能被改变,但是地主只想的对象内容可以改变。
final int[] arr={10,20,30};
System.out.println(arr);
arr=null;//属于第二次赋值,arr中的地址不能被改变
arr[1]=200;
System.out.println(arr);
System.out.println(arr[1]);
常量
常量时使用了public static final修饰的成员变量,必须有初始化值,而且执行过程中其值不能被改变
乘凉的作用和好处:可以用于做系统的配置信息,方便程序的维护,同时也能提供可读性
**常量的命名规范:**英文单词全部大写,多个单词下划线连接起来
常量执行原理
- 在编译阶段会进行"宏替换",把使用常量大的地方全部替换成正式的字面量。
- 这样做的好处是让使用常量的程序的执行性能与直接使用字面量是一样的
枚举
- 枚举三十Java中的一种特殊类型
- 枚举的作用:"是为了做信息的标志和信息的分类
定义枚举的格式
修饰符 enum 枚举名称{
第一行都是枚举类实例的名称
}
enum Season{
SPRING,SUMMER,AUTUMN,WINTER;
}
反编译后观察枚举的特征
枚举的特征
- 枚举类都是继承了枚举类型:java.lang.Enum
- 每局都是最终类,不可以被继承
- 构造器的构造器都是私有的,枚举对位不能创建对象
枚举信息标志和分类:代码可读性好,入参约束严谨,代码优雅,是最好的信息分类计数,建议使用