访问控制权限

访问控制权限

  之前学到的private就是一种访问控制权限,这种访问控制全是只是我们封装的一部分

在java中提供4种访问控制权限:private default protected public 而这四种访问控制权限,定义如下:

no范围privatedefaultprotectedpublic
1同一包中的同一类
2同一包中的不同类 
3不同包中的子类  
4不同包中的非子类   

  实际上public永远都可以访问,对于封装而言有三个权限:private defualt protected

范例:观察protected访问权限

1 package cn.gl.demo.a;
2 public class Info{
3     //此时出现的是protected访问权限
4     protected String str="www.CSDN.com4";
5 }

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

1 package cn.gl.demo.b;//不同包
2 import cn.gl.demo.a.Info;
3 public class SubInfo extends Info{//Info的子类
4     public void print(){
5         System.out.println(super.str);//在父类中属于protected权限
6     }
7 }

范例:定义测试程序类

1 package cn.gl.testab;
2 import cn.gl.demo.b.SubInfo;
3 public class TestInfo{
4     public static void main(String args[]){
5         new SubInfo().print();
6     }
7 }

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

范例:错误程序

1 package cn.gl.testab;
2 import cn.gl.demo.a.Info;
3 public class TestInfo{
4     public static void main(String args[]){
5         System.out.println(new Info().str);
6     }
7 }

 str是protected权限,所以此处一定无法访问

结论:关于权限的选择

  对于封装90%使用private,有一些情况下也会使用protected,这两种都叫封装;

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

java中的封装性就是使用 private protected defualt三个权限的使用,

 

转载于:https://www.cnblogs.com/Tony98/p/10427131.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值