类中的数据成员和成员函数据具有的访问权限包括:public、private、protect、friendly(包访问权限)。

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

作用域 当前类 同一package 子孙类 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

不写时默认为friendly ,也即是“包访问权限”。

protected权限:

往往在初学Java的时候,都不会提访问权限和修饰符的问题,在Java的学习中一般都要到包的概念学完才会涉及访问控制:

priavte 本类可见

public 所有类可见

protected 本包和所有子类都可见(本包中的子类非子类均可访问,不同包中的子类可以访问,不是子类不能访问)

friendly 本包可见(即默认的形式)(本包中的子类非子类均可访问,不同包中的类及子类均不能访问)12345678

类的访问权限包括: 包访问权限和public。

1.私有权限 private

private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部 类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在 其他类中不能调用。

2.默认权限 (default)

类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关 键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包 的类中被调用。

3.受保护权限protected

protected可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外 部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包 的类中被调用。如果有不同包的类想调用它们,那么这个类必须是定义它们的类 的子类。

4.公共权限 public

public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员 ,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。

有关Java语言的修饰符,需要注意的问题有如下几个:

1.并不是每个修饰符都可以修饰类(指外部类),只有public和default可 以。

2.所有修饰符都可以修饰数据成员,方法成员,构造方法。

3.为了代码安全起见,修饰符不要尽量使用权限大的,而是适用即可。比如 ,数据成员,如果没有特殊需要,尽可能用private。

4.修饰符修饰的是“被访问”的权限。

5.其他类要访问一个类的private成员,在其他类中实例化该类的对象,再用该对象调用该类的public方法,public方法就可以访问该类的private成员了。

6.基础自父类的子类,不能访问父类的private成员,也就相当于private成员没有被子类基础,换句话说,子类不能继承父类的private成员。

java中的权限修饰符_Java的权限修饰符的区别和用法总结相关推荐

  1. java中implements是什么意思_Java:extends和implements的区别+用法

    Java代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { int ID ...

  2. java中switch多分支语句_java switch确多分支选择语句的用法

    switch语句是多分支选择语句.常用来根据表达式的值选择要执行的语句 switch (expression) { case value_1 : statement (s); break; case ...

  3. java中容易混淆的方法_java中容易混淆的概念

    java中容易混淆的概念 1. 谈谈 final, finally, finalize 的区别final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不 能作为父类被 ...

  4. java中修饰常量的事_浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰.结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" ...

  5. java中implements是什么意思_Java中implements和extends的区别

    看到java中很多类有使用implements和extends,那么这两种用法有哪些区别呢,今天我们来分析一下. 简单说:1.extends是继承父类,只要那个类不是声明为final或者那个类定义为a ...

  6. Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?

    Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别? Java 中访问数据库的步骤 1)注册驱动: 2)建立连接: 3)创建Statement: 4)执 ...

  7. JavaScript中for、for...in、for...of、forEach的区别和用法

    JavaScript中for.for...in.for...of.forEach的区别和用法 for循环 forEach循环 for...in循环 for...of循环 总结 for循环 基本语法格式 ...

  8. java平台类成员访问修饰符_JAVA类的修饰符及访问权限

    1.类 外部类      class前的修饰符只能有public final abstrct 无(默认) :同包可见  (Eclipse中选择package) 内部类      class前的修饰符有 ...

  9. java的修饰符_java默认的修饰符是什么

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

最新文章

  1. mysql入门到跑路_MySQL 24小时入门笔记(3),插入和删除,删库到跑路
  2. python读音播报-用Python写一个语音播放软件
  3. springboot之websocket集成
  4. spm_预处理实验记录
  5. python excel 饼图_通过python xlsxwriter模块生成EXCEL柱状图、饼图
  6. 计算机上缺少vsix安装程序,vsix - Vsix安装程序在Visual Studio 2017(15.3)中失败 - 堆栈内存溢出...
  7. Android平台语言支持状态(MTK6589)
  8. 【047】Testyourvocab-五分钟测试你的英语词汇量
  9. 十二星座物语,女生最喜欢的星座性格【1】
  10. 硅谷性能服务器介绍,美国RAKsmart服务器优势特点介绍
  11. matlab模糊度函数,模糊函数 matlab 模糊度
  12. 数据结构——顺序表的实现
  13. 百度文库 -3ds max
  14. ios(苹果)设备直播流媒体 服务搭建
  15. Mysql数据库备份(一)
  16. 程序员过完年第一天上班被公司劝退!得知原因后,网友:被安排了
  17. Invalid namespace
  18. Instructional Technology Notes at random
  19. ARCGIS做好的模型工具,已经设置为相对路径,拷贝后工具显示叉叉不可用的原因
  20. 名编辑电子杂志大师教程 | 导入、导出主题模板设置

热门文章

  1. EIRP/ERP(有效辐射功率)基本概念
  2. Zynq器件XADC模块介绍
  3. ads1115寄存器操作
  4. 云上人替代方案训练代码
  5. 安装librosa遇到LLVM问题原因是numba问题
  6. SSH项目的简单table及其分页框架
  7. linux 手动释放buff/cache
  8. RHEL6.1 安装 Oracle10gr2 (图文、解析)
  9. Angular - - ngHref、ngSrc、ngCopy/ngCut/ngPaste
  10. Hibernate笔记——9.关联映射(下)