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变量相关推荐

  1. 关于java的public,private,protect,以及默认权限的理解

    2019独角兽企业重金招聘Python工程师标准>>> 关于java的public,private,protect,以及默认权限的理解 1.private 只允许在本类中使用 方法或 ...

  2. java变量前加private_类中private变量真的private么?

    内容简介 利用反射机制修改类中的private修饰的变量(当然,在没有提供setter的情况下). 本篇主要讲述了如何利用反射机制修改类中的一个private变量.下一篇将会展示利用反射机制来违反或者 ...

  3. 深入探索 Java 热部署

    转载自  深入探索 Java 热部署 简介 在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重 ...

  4. 64位 java 数据类型_全面解析Java支持的数据类型及Java的常量和变量类型

    基本数据类型变量就是用来储存值而保留的内存位置.这就意味着当你创建一个变量时就会在内存中占用一定的空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分 ...

  5. JAVA8常量池监控_深入探索Java常量池

    Java的常量池通常分为两种:静态常量池和运行时常量池 静态常量池:class文件中的常量池,class文件中的常量池包括了字符串(数字)字面值,类和方法的信息,占用了class文件的大部分空间. 运 ...

  6. java 调用父类的变量_java创建子类对象设置并调用父类的变量操作

    通过子类调用父类的变量,有两种方法: 1.把父类的变量设置成public: package triangle.opengl.wlz.stu.childusefathervariable; import ...

  7. java中的静态变量的作用域_Java基础学习03-变量、常量、作用域

    在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; Java语言支 ...

  8. java的数据类型、变量类型笔记总结

    1. 引用类型 在Java中,引用类型的变量非常类似于C/C++的指针.引用类型指向一个对象,指向对象的变量是引用变量.这些变量在声明时被指定为一个特定的类型,比如 Employee.Puppy 等. ...

  9. 非静态方法可以访问Java中的静态变量/方法吗?

    "非静态方法可以访问静态变量或调用静态方法"是Java中有关静态修饰符的常见问题之一,答案是, 是的 ,非静态方法可以访问静态变量或调用静态方法. Java中的方法. 这没有问题, ...

最新文章

  1. c#去掉html样式,C# 清除HTML格式
  2. 实例14:python
  3. Hibernate初始化创建SessionFactory,Session,关闭SessonFactory,session
  4. 智能音箱扎堆的技术红海,Rokid 如何杀出一条血路?
  5. php调用jssdk转发_php一个文件搞定微信jssdk配置
  6. 慎重!物联网时代情趣用品真的适合联网么?
  7. 范围管理之创建WBS
  8. 2.5寸移动硬盘盒改装 驱动3.5寸台式机硬盘
  9. STM32单片机驱动L298N
  10. 测试网络连接速度 http://www.phoenixtv.com.cn/home/fhkp/testspeed.htm
  11. Windows64Adobe2019/2019全家桶
  12. php 微信定位源码_微信活码模块源码 - WEB源码|PHP源码|源代码 - 源码中国
  13. 达人评测 r7 7730u和i5 12500h差距 锐龙r77730u和酷睿i512500h对比
  14. 还在期待安卓9.0吗?Android 10.0要来了
  15. 利用Python根据模板生成Word文档
  16. bat中rar压缩命令
  17. 【windows密码查看】在windows系统中保存的windows凭据如何方便地查看?network_password_recovery
  18. 新code为aadb010476_【AACA建筑师评估】职业评估说明
  19. Java 读书笔记1
  20. 小暑将至,一起来看看品牌小暑海报吧

热门文章

  1. 别人家的键盘--机械键盘
  2. 开发一款抓取Android系统Log的APP(logcat, kernel, Memory, cpu)
  3. 焊接过程计算机模拟研究,焊接过程的数值模拟
  4. 写博客,轻松拿大奖!博客征文第二期:那些年我们一起写过的代码
  5. 基于WT2003H语音芯片在LCD屏幕驱动的应用实例解析
  6. 一阶微分方程的物理意义_微分方程建模课堂讨论之一_利用导数的几何及物理意义建模....
  7. 火遍全球家喻户晓的小游戏——开心消消乐
  8. 语言-英语翻译(edx-datascientist _A Very Short History Of Data Science)
  9. 利用WPF建立自己的3d gis软件(非axhost方式)(二)基础状态切换
  10. 数据库:完整性,断言,触发器,存储过程,函数