文章目录
修饰符是用于限定类型以及类型成员的声明的一种符号,可用于修饰类、变量、方法。Java中修饰符分为两类: 访问修饰符、 非访问修饰符。
一、访问修饰符
- 访问修饰符控制访问权限,把不同的访问修饰符有不同的权限范围。
- 访问修饰符有四个,权限从大到小为:public、protected、default(friendly)、private。
1、public
访问权限不受控制,pubic修饰的类、变量、方法,在任何位置都可以被访问。
- 访问修饰符中,只有public和default(默认)可以修饰类,protected、private不可修饰类,一般修饰类中成员变量和方法,protected控制继承关系的父子间可见性。
2、protected
protected修饰的变量不可以在外部包中被访问,可以在子类中被访问。
- protected不修饰类。
- protected一般修饰类中成员变量,子类可访问父类的protected修饰的变量,控制继承关系的父子间可见性。
- 当子类和父类在同一个包内: 被声明为protected的变量、方法能被同一个包中的任何类访问。
- 当子类和父类在不同包内: 在子类中,子类实例可以访问从父类继承的protected方法,而父类实例不能访问protected方法。
public class A1 {
protected void test() {
System.out.println("A1.test");
}
}
public class A2 extends A1 {
public static void main(String[] args) {
A1 a1 = new A1();// 父类实例
// a1.test();
A2 a2 = new A2();// 子类实例
a2.test();
}
public void test1() {
test();
}
}
3、default
default修饰的类、变量、方法只能在本包内被访问。
- default是默认的访问修饰符,当类、变量、方法没有任何访问修饰符时,Java中默认修饰符为default,即只可在本包内被访问,对同一个包内的类是可见的。