- public: 具有最大的访问权限,对所有的类都可见。可以用来修饰类,方法,变量,接口。
- default:可以用来修饰类,方法,变量,接口。是默认的修饰符。任何处于同一个包的类和接口都可以访问。
- protected: 可以修饰变量和方法,不能修饰类和接口。相比与public,对于当子类和父类不再同一个包时,子类实例可以访问从父类继承的protected方法,不能访问父类实例的protected方法。
4.private: 具有最严格的访问权限,访问权限仅限于该类内部。当类的成员变量不想要被其他类访问时用private修饰,也是封装的一种体现。
比较public和protected:
父类:
package model;
public abstract class Animal {
public static String name;
protected static int age;
public Animal(String name,int age){
this.name = name;
this.age = age;
}
}
同一个包中的实例:
package model;
public class Actions {
public static void main(String[] args) {
Cats cat = new Cats("Molly", 4);
System.out.println(cat.name);
System.out.println(cat.age);
}
}
不同包中的实例:
import model.Cats;
public class NewPackageActions {
public static void main(String[] args) {
Cats cat = new Cats("Molly", 4);
System.out.println(cat.name);
System.out.println(cat.age);
//会报错 'age' has protected access in 'model.Animal'
}
}