四种访问权限修饰符
Java权限修饰符public,protected,(缺省),private用来修饰类成员,用来限定对象对该类成员的访问权限
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
---|---|---|---|---|
private | yes | |||
缺省 | yes | yes | ||
protected | yes | yes | yes | |
public | yes | yes | yes | yes |
对于class的权限修饰符只可以使用public和default来修饰
同一个类中,四种权限都可以使用
package com.itguigu;
public class Order {
private int orderPrivate;
int orderDefault;
protected int orderProtected;
public int orderPublic;
private void methodPrivate(){
orderPrivate=1;
orderDefault=2;
orderProtected=3;
orderPublic=4;
}
void methodDefault(){
orderPrivate=1;
orderDefault=2;
orderProtected=3;
orderPublic=4;
}
protected void methodProtected(){
orderPrivate=1;
orderDefault=2;
orderProtected=3;
orderPublic=4;
}
public void methodPublic(){
orderPrivate=1;
orderDefault=2;
orderProtected=3;
orderPublic=4;
}
}
同一个包不同类,private不可以访问
public class OrderTest {
public static void main(String[] args) {
Order order=new Order();
order.orderProtected=1;
order.orderProtected=2;
order.orderPublic=3;
order.methodDefault();
order.methodProtected();
order.methodPublic();
}
}
不同包,子类可以访问protected,其他类不可以访问protected和缺省
import com.itguigu.Order;
public class SubOrder extends Order {
public void method(){
orderProtected=1;
orderPublic=2;
methodProtected();
methodPublic();
}
}
import com.itguigu.Order;
public class OrderTest {
public static void main(String[] args) {
Order order=new Order();
order.orderPublic=2;
order.methodPublic();
}
}