(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。

(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。

(3)对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

(4)对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

下表为Java访问控制符的含义和使用情况

   类内部  本包  子类 外部包 
public    √  √  √  √
protected   √  √  √  ×
default    √  √  ×  ×
 private   √  ×  ×  ×

注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

区别:

(1)public:可以被所有其他类所访问。

(2)private:只能被自己访问和修改。

(3)protected:自身,子类及同一个包中类可以访问。

(4)default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

Java中的private、protected、public和default的区别相关推荐

  1. C++中的private protected public区别

    标签: c++ 2012-07-10 10:06 5805人阅读 评论(0) 收藏 举报 分类: C++ Primer笔记(4) 当private,public,protected单纯的作为一个类中的 ...

  2. 解析Visual C# 7.2中的private protected访问修饰符

    去年12月份,随着Visual Studio 2017 Update 15.5的发布,Visual C#迎来了它的最新版本:7.2. 在这个版本中,有个让人难以理解的新特性,就是private pro ...

  3. 解析java中方法的重载和重写之间的区别与联系

    解析java中方法的重载和重写之间的区别与联系 1 不同点 1.1 方法重写是在不同的类中(父子类),方法重载是在同一类中 1.2 方法重载最初的目的是构造方法的多样化,方法重写的目的是让重写的方法满 ...

  4. java堆和栈 常量池_GitHub - han-guang-xue/difference-of-stack-heap-pool: Java中堆、栈和常量池的区别...

    Java中堆.栈和常量池的区别 栈 堆 常量池的概念 首先我们先了解一下概念,Java把内存分成两种,一种叫做栈内存,一种叫做堆内存. 栈内存 存放基本类型的变量数据和对象类型的引用(请注意存放的是引 ...

  5. java中的NIO和IO到底是什么区别?20个问题告诉你答案

    摘要:NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多. 本文分享自华为云社区<jav ...

  6. Java中,一切皆是对象——java中的对象类型与基本数据类型的区别

    起因:取一个list给另一个list赋值,然后在另一个list中取出进行修改.list其中类型为对象时,String时,基本数据类型时. [java中的对象类型与基本数据类型的区别] #声明和实例化 ...

  7. Java中Array和ArrayList之间的9个区别

    array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用. 即使ArrayList在内部由数组支持,了解Java中的数组和ArrayList之间的差异对于成为一名优秀的 ...

  8. java中list,set,map集合的区别,及面试要点

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  9. java中*和**的作用 以及 /和/*和/**的区别

    一.java中*和**的作用 "*"就表示了所有的文件,但是"*"并不包括子目录下的文件: "**"匹配包含任意级子目录中所有的文件: 二. ...

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

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

最新文章

  1. 前端app调起摄像头 只显示在页面_猫也能看得懂的教程之一分钟使用Vue搭建简单Web页面...
  2. 洛谷.4245.[模板]任意模数NTT(MTT/三模数NTT)
  3. SharePoint 2007 Web Content Management 性能优化系列 前言
  4. 【译】Getting Started With Ethereum and Building Basic Dapp — Part 1
  5. LQR轨迹跟踪算法Python算法实现3
  6. xpath的基本使用
  7. 如何用jQuery获得select的值
  8. C/C++程序训练6—歌德巴赫猜想的证明
  9. php版给UEditor的图片在线管理栏目增加图片删除功能
  10. 不让登陆_梦幻西游:不让刷活动就直说,到下午3点的时候五开准时掉线
  11. MTK 刷机工具操作说明(多路)
  12. 微信答题小程序用时计算逻辑梳理
  13. 微信小程序上传图片到阿里云
  14. C++(18)——温度表达转化
  15. 两个cgi的莫名其妙的core dump问题的解决
  16. js阿拉伯数字转中文汉字小写 支持到12位
  17. python perl lisp_巴别塔-编程语言之旅【转】——C、C++、Lisp、Java、Perl、Ruby、Python核心比较...
  18. 向量的导数运算和向量叉乘以及点乘的导数运算
  19. 单线、双线、三线、BGP服务器在使用上的区别?
  20. android studio gradle 下载失败万能解决方案

热门文章

  1. 独家:XIV能否助IBM改变传统存储规则?
  2. dosubmit 成功不成功_什么是成功,不放弃!
  3. Android-7.0-Nuplayer-启动流程
  4. android service莫名启动问题
  5. mysql自助完成翻页代码_MySql实现翻页查询功能
  6. 唯一分解定理 详解(C++)
  7. 章节3.1和3.2----栈的表示、实现和应用
  8. find linux 目录深度_15种方法找出Linux系统中最大的N个文件,你懂几种?
  9. android页面跳转停止,android – Viewpager上的VideoView,切换页面时停止视频
  10. 商城购物车php代码,php实现商城购物车的思路和源码分析