fianl
fianl:不可改变。 可用于修饰类、方法、变量
- 类:被修饰的类,不可被继承. final class 类名{}
- 方法:被修饰的方法,不可被重写. 修饰符 final 返回值类型 方法名(参数){ 方法体 }
- 变量:被修饰的变量,不可被重新复制 . final int count=5; final int[] arr = new int[3] ; 基础变量不可被重新复制,引用类型变量地址指向不可变(数组内值可变)
static
static:是静态修饰符,一般修饰成员变量,被static修饰的成员属于类,即类成员。可以被多个对象共享
public class Animal {
public static String name; // 类属性
public String color; // 成员属性
// 静态代码块
static{
System.out.println("随着类的创建而执行,只执行一次");
}
// 成员代码块 使用:String c = new Animal().color
{
System.out.println("随着对象的创建而执行,先于构造方法,有几个对象就执行几次");
}
// 静态成员方法 使用:Animal.show()
public static void show(){
System.out.println("类的静态成员方法");
}
// 成员方法 使用:new Animal().menber();
public void menber(){
System.out.println("对象的成员方法");
}
}
权限修饰符
权限修饰符用于限定控制java中代码的访问能力
- public 公共的
- protected
- 缺省 包私有【package-private】
- private 私有
public | protected | package-private | private | |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中(子类、无关类) | √ | √ | √ | X |
不同包中子类 | √ | √ | X | X |
不同包中无关类 | √ | X | X | X |
public>protected>package-private>private
同一包中(Student是HUman的子类、Demo0是无关类) 只有private不能访问(即private 只能在本类中访问)
非同一包中的可以将文件分包放置观察