概述
package myPack; /* * Author:LiuXueYi * Date:2021-10-18 14:29 * Description:测试 protect、private变量的权限范围 */ public class BaseClass { public String myPublic = "aaaaaaaa" ; private String basePrivate = "bbbb"; protected String baseProtected = "ccccc"; public void myPrint(){ System.out.println("-------类的成员函数可以访问同类的所有成员---------"); System.out.println("myPublic = " + myPublic); System.out.println("basePrivate = " + basePrivate); System.out.println("baseProtected = " + baseProtected); } public static void main(String[] args){ BaseClass baseClass = new BaseClass(); baseClass.myPrint(); System.out.println("-------类中的main函数可以访问同类的所有成员"); System.out.println("myPublic = " + baseClass.myPublic); System.out.println("basePrivate = " +baseClass.basePrivate); System.out.println("baseProtected = " + baseClass.baseProtected); } } /** * 本包中类外部实例化: * 1、在类的外部(本包中)可以通过实例化的对象访问 类的 protect 变量,不能访问 private 变量 */ class OutMain { public static void main(String[] args) { BaseClass baseClass = new BaseClass(); System.out.println("-------在类的外部通过实例化对象访问 public 变量---------"); System.out.println("myPublic = " + baseClass.myPublic); System.out.println("-------本包中在类的外部也可以通过类的实例访问 protect 变量---------"); System.out.println("baseProtected = " + baseClass.baseProtected); System.out.println("-------在类的外部(本包中),不能通过实例化对象访问 private 变量---------"); //System.out.println("basePrivate = " + baseClass.basePrivate); } } /** * 派生类: * 1、(本包中)派生类可以访问父类的 protect 变量,不能访问 private 变量 */ class DeriveClass extends BaseClass { private String dPrivate = "派生类的私有变量"; public void derivePrint() { System.out.println("-------派生类中可访问基类的 public 变量---------"); System.out.println("myPublic = " + myPublic); System.out.println("-------派生类中可访问基类的 protect 变量---------"); System.out.println("baseProtected = " + baseProtected); System.out.println("-------派生类中不能访问基类的 private 变量---------");// //System.out.println("basePrivate = " + basePrivate); } } /** * 派生类实例化对象: * 1、可以通过派生类的实例化对象访问基类的 protect 变量,不能访问基类的 private 变量; * 2、可以通过派生类的实例化对象访问派生类的 protect 变量,不能访问派生类的 private 变量; */ class TestDeriveMain { public static void main(String[] args) { DeriveClass deriveClass = new DeriveClass(); System.out.println("n=======通过派生类的实例对象调用其方法 derivePrint() --- start ========="); deriveClass.derivePrint(); System.out.println("=======通过派生类的实例对象调用其方法 derivePrint()---- end =========n"); System.out.println("-------通过派生类的实例对象访问基类的 public 变量---------"); System.out.println("myPublic = " + deriveClass.myPublic); System.out.println("-------通过派生类的实例对象访问基类的 protect 变量---------"); System.out.println("baseProtected = " + deriveClass.baseProtected); System.out.println("-------不能通过派生类的实例对象访问基类的私有成员变量 basePrivate---------"); //System.out.println("basePrivate = " + deriveClass.basePrivate); System.out.println("-------不能通过派生类的实例对象访问派自己类中的私有成员变量---------"); //System.out.println("dPrivate = " + deriveClass.dPrivate); } }
/*****************************************包2*************************/
package myPack2; import myPack.BaseClass; /* * Author:LiuXueYi * Date:2021-10-18 14:20 * Description:<描述> */ public class testPrivate { public static void main(String[] args){ System.out.println("-------调用外部包的派生类-------------"); MyDeriveClass myDeriveClass = new MyDeriveClass(); myDeriveClass.deriveClassPrint(); BaseClass baseClassNew = new BaseClass(); System.out.println("n-------外部包通过实例化对象可访问基类的 public 变量 ----------"); System.out.println("myPublic = " + baseClassNew.myPublic); System.out.println("n-------外部包不能通过实例化对象访问 protect 变量 ----------"); //System.out.println("myProtected = " + baseClassNew.myProtected); System.out.println("n-------外部包实例化对象始终不能访问私有变量 ----------"); //System.out.println("myPrivate = " + baseClassNew.myPrivate); } } /** * 在包的外部继承类 */ class MyDeriveClass extends BaseClass { public void deriveClassPrint(){ System.out.println("-------外部包的派生类可访问基类的 public 变量---------"); System.out.println("myPublic = " + myPublic); System.out.println("-------外部包的派生类可访问基类的 Protected 变量---------"); System.out.println("myProtected = " + baseProtected); System.out.println("-------外部包的派生类不可访问基类的 Private 变量---------"); //System.out.println("myPrivate = " + basePrivate); } }
最后
以上就是超级啤酒为你收集整理的探索java的 protect/private变量的全部内容,希望文章能够帮你解决探索java的 protect/private变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复