欢迎光临散文网 会员登陆 & 注册

java封装详解

2022-06-15 21:21 作者:虚云幻仙  | 我要投稿

package a.a1;
/**
* 测试封装 四个访问控制符 private default protected public
*/

public class B1 {

    //B1在a1包中
   private int pri;
   //private 私有 只能在同一类内使用
   int def;
   //不标注修饰默认default 默认 同一个包内都可调用
   protected int pro;
   //受保护的 包内可用&子类可用 *子类对象不可用
   public int pub;
   //公共 完全可用
   //方法的封装效果同属性

}

package a.a1;
public class B2 {
   //B2和B1在同一个包a1内
   {
       B1 b1 = new B1();
       //b1.pri报错 private不能在类外使用
       b1.def =0;
       b1.pro = 1;
       b1.pub =2;
   }
}

package a.a2;
public class C1 {
   //C1在a2包 与a1.B1 不在一个包内
   {
       a.a1.B1 b1 = new a.a1.B1();
       //不在一个包内需要import导入或者写完整路径
       //b1.pri报错 不在同一类内
       //b1.def报错 不在同一包内
       //b1.pro报错 不在同一包内且不是子类

       b1.pub = 1;
       //public完全开放使用
   }
}

class C2 extends a.a1.B1 {
   {
       super.pro =1;
       //不在同一包内的父类的protected属性可以调用
       pub =2;
       //默认super.pub
       //super.pri super.def 报错 不在同一包内无法使用

       a.a1.B1 b1 = new a.a1.B1();
       //b1.pro报错 子类中生成的父类B1的对象b1不能使用 不在同一包内的 父类的protected内容
       b1.pub =2;

       C2 c2 = new C2();
       c2.pro =1;
       //子类C2生成的对象c2可以用子类继承来的c2.protected内容
       c2.pub =2;
   }
}

java封装详解的评论 (共 条)

分享到微博请遵守国家法律