权限修饰符:是用来控制一个成员能够被访问的范围的。
可以修饰成员变量,方法,构造器,内部类,不同权限修饰符修饰的成员能够被访问的范围将受到限制。
自己定义成员(方法,成员变量,构造器等)一般满足如下要求:
1.成员变量一般私有。
2.方法一般公开。
3.如果该成员只希望本类访问,使用
private
修饰。
4.如果该成员只希望本类,同一个包下的其他类和子类访问,使用
protected
修饰。
final关键字
final可以用来修饰类,方法,成员变量
final修饰的类,这个类不能被继承
/**
* final修饰类,类不能被继承了
*/
final class Animal{
}
class Cat extends Animal{//报错
}
final修饰的方法,这个方法不能被重写
/**
* final修饰方法,方法不能被重写了
*/
class peoole{
//该方法不能被重写
public final void run(){
System.out.println("人跑得快");
}
}
class Student extends peoole{
public void run(){//报错
// }
final修饰变量,这个变量被赋值一次后不能被再次赋值
变量分类:局部变量和成员变量 成员变量又可以分为静态成员变量和实例成员变量
final修饰基本数据类型变量,其数据不能改变
final修饰引用数据类型变量,变量中的存储的地址值不能被改变,但是地址指向的对象的内容是可以发生改变的。
public static void main(String[] args) {
//final修饰基本类型变量:其数据不能在改变
final int a = 10;
//a = 20;
//final修饰引用类型变量:变量中存储的地址不能改变,但是地址指向的对象内容可以改变
final int[] arr = {10,20,30};
System.out.println(arr);
arr[2] = 50;
System.out.println(arr);
//把地址改成null 报错
//arr = null;
}