访问控制权限

在之前所学到的private就属于一种访问控制权限,而这种访问控制权限只是封装的一部分,

在java里面提供有四种访问控制权限

private、default、protected、public.而四种访问控制权限定义如下:

no

范围

private

default

protected

public

1

 同一包中的同一类

2

同一包中的不同类

 

3

不同包中的子类

 

 

4

不同包中的非子类

 

 

 

实际上public永远都可以访问,但是对于封装而言主要是由三个权限:private、default、protected

范例:观察protected访问权限。

定义一个Info类 放在 cn.mldn.demo.a包中
package cn.mldn.demo.a;
public class Info{
//此时出现的是一个protected访问权限
protected String str="123";
}

范例:定义另外一个包进行该类的继承

package cn.mldn.demo.b;//不同包
import cn.mldn.demo.a.Info;
//不同包的子类
public class SubInfo extends Info{//Info的子类
public void print(){
System.out.pirntln(super.str);//在父类中属于protected的权限
}
}

范例:定义测试程序类

package cn.mldn.testab;
import cn.mldn.demo.b.SubInfo;
public class TestInfo{
public static void main(String args[]){
new SubInfo().print();
}
}

现在SubInfo虽然与Info属于不同的开发包,但是毕竟是其子类,所以可以访问,但是反过来,如果想要在TestInfo中使用Info类(非子类)则就会出现错误。

范例:错误的程序

package cn.mldn.testab;
import cn.mldn.demo.a.Info;
public class TestDemo{
public static void main(String args[]){
System.out.println(new Info().str)}}

str是protected是权限,所以此处一定无法访问 因为protected权限无法在非同包非子类中使用。

结论:关于权限选择

 ·对于封装的描述90%使用的是private、只有10%的情况下会使用protected,这两种都会叫封装;

·属性都使用private,方法都使用public。


封装性就是指private、default、protected三个权限的使用。

熟记上面的表即可






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值