**

Java中public,private,protected以及default的访问权限区别

**

  1. 首先,从public的字面意思上就能够知道public所指的是公共的,从而我们可以知道public的访问权限是最为宽松的,它可以在同一个包内访问,也可以在不同的包内进行访问,其作用:它对任何地方的类都是可见的,换言之,就是所有其他的类都可以访问它,它对任何地方的类都是可见的。
    如图:

  2. 其次,从private的字面上看就能知道它是表示私有的,从而我们可以知道它的访问权限是比较严格的。它表示是除了类型的创作者和类型的内部方法之外的任何人都没有权限访问,当有人试图去访问它时,就会在编译的时候得到错误信息的。换言之,它只对本类是可见的。
    如图:

  3. protected从字面上的意思我们知道是受保护的,它的作用其实是和private的作用相当,唯一的差别仅在继承的类可以访问protected成员,但是不能够去访问private成员的。换言之,除了对自己所在的包内所有类是可见的,还对其他包内的本类的子类是可见的。
    如图:

  4. 最后一种就是,Java默认的访问权限,即default,当你没有使用前面所讲的任何访问指定的权限时,它将发挥作用,这种权限通过被称之为包访问权限,因为在这种权限下,类可以访问在同一个包中的其他类的成员,但是在包之外,这些成员如同指定了private一样的,换言之,它只对在自己包内的所有类可见。
    如图:

  5. 综上所述,一般我们定义工具类的时候通常会使用public去修饰,因为显然工具类是要提供给所有人去使用的,所以必须定义public。而在其他一些不想让别人随便就可以new出的类,我们通常可以使用privateprivate修饰符可在代码中实现类的封装,而对于public实例变量,其他类可以用圆点运算符随意存取,可能会造成合法但是很荒谬的数据,而定义变量为private后,其他类被强制采用settergetter进行存取,因此我们可以采取在setter中加入逻辑判断来保证数据的合理性。各种的访问情况总结见下图:

Java中public,private,protected以及default的访问权限区别相关推荐

  1. java中public、protected、default、private权限问题

    同一个类 同一个包 不同包的子类 不同包的非子类 Private √ Default √ √ Protected √ √ √ Public √ √ √ √

  2. PHP Class中public,private,protected,static的区别

    PHP Class中public,private,protected,static的区别 public:权限是最大的,可以内部调用,实例调用,可以被继承. protected:受保护类型,用于本类和继 ...

  3. php class中public,private,protected的区别以及实例分析

    本篇文章是对php class中public,private,protected的区别以及实例进行了详细的分析介绍,需要的朋友参考下 一,public,private,protected的区别 pub ...

  4. java中public,private,protect,default区别

    Java中访问修饰符public.private.protect.default范围 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lvdairy.blogbus.c ...

  5. java基础-public/private/protected的具体区别

    在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友 ...

  6. C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨

     原文: http://blog.csdn.net/zgjxwl/article/details/4804233 1.public继承方式下 #include <iostream>   ...

  7. public/private/protected/默认 的各种理论上的区别

    public class myClass { int id; public string name; protected int age; private string something; } 上面 ...

  8. Java中一种容易被忽视的访问权限问题

    package com.middle.test;public class Test {public static void main(String[] args) {A a = new A();a.c ...

  9. (转)Java中的private、protected、public和default的区别

    1 访问修饰符 1.1 理解 默认什么都不加,就是default(不用把default写出来).意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多. ...

最新文章

  1. python简单编程例子-Python入门 —— 用pycharm写一个简单的小程序3
  2. 从数组中取出n个元素的所有组合(递归实现)
  3. 第三章 学习ICE 3.0--Slice语言
  4. 用开源的人工标注数据来增强RoFormer-Sim
  5. Oracle查找Web执行SQL
  6. laravel 5.1 php版本号,发行版本说明 | 序言 | Laravel 5.1 中文文档
  7. Android 各控件的使用 - 按钮(Button)
  8. 基于主特征空间相似度计算的切分算法及切分框架
  9. P7 P8:训练神经网络
  10. Universal Link 用企业证书build包,可以通过链接拉起绑定的App(客户端)
  11. 八大排序算法-java实现
  12. 【IoT】创业指南:智能硬件产品原型设计指南
  13. GigabitEthernet和Ethernet接口的区别
  14. 阿里的数据分析技术有多强?从优酷的大数据架构中,我学到了这些
  15. 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。
  16. 那些容易被忽视却很常见的安全问题
  17. XP SP3桌面IE图标不见了,如何找回?
  18. 网易云音乐与QQ音乐的评测分析
  19. 视频监控迈入深度智能时代
  20. javaee【计算机工作原理】

热门文章

  1. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件
  2. 大学毕业想要转行学软件测试,怎样入门比较好?
  3. 13、Kubernetes核心技术Helm
  4. linux的dns的转发域,Linux DNS服务器子域授权、转发器和转发域配置实例(三)
  5. python yield用法_Python中迭代器和生成器的区别?
  6. excel两个指标相关性分析_Excel实操分析函数,投资决策指标的假设分析,就是那么简单...
  7. freebsd mysql删_FreeBSD 下 mysql 的相关问题
  8. python生产和消费模型_python queue和生产者和消费者模型
  9. 利用python安装opencv_Linux下安装OpenCV+Python支持
  10. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第2课2.6节隐藏和锁定对象...