java类权限有四种,分别是public,protected,private和默认的权限。其中前三个权限是有明确定义的修饰符的,而默认的权限没有明确的修饰符(我们可以称之为default),在定义类,方法或者属性时,不用写任何修饰符。其中权限的作用域如下面表格所示:类权限作用域

Public权限

看下面一段代码

//在altsd.test包下有一个类Father

package altsd.test;

public class Father {

public int age;

int legs;

protected int eyes;

private int hhh;

private int getHhh(){

return hhh ;

}

}

//另一个包altsd.test1下有个Luren,与Father没有任何关系

package altsd.test1;

import altsd.test.Father;

public class Luren {

Father father = new Father();

public int getAge(){

return father.age;

}

}

我解释一下上面的代码,在Luren类中我们只返回了Father.age成员,不是说我不想返回Father的其他成员,是因为Luren和Father在不同的包,又不是父子关系,所以在Luren类中只能有访问Father的age成员,因为age的权限是public的。

总结:public权限的作用域是任何包下任何类都可以访问

protected权限

看下面的代码

另一个包altsd.test1下有个Child1,继承Father类

package altsd.test1;

import altsd.test.Father;

public class Child1 extends Father {

public int getAge(){

return super.age;

}

public int getEye(){

return super.eyes;

}

}

在这个类中,我们只能访问到父类的age和eyes成员,age的权限是public,这个在上面的代码中已经解释过了;eyes成员的权限是protected,因为Child1继承Father,虽然不在同一个包中,但也能访问eyes成员。

总结:protected权限的作用域是在只要有继承关系,就可以访问父类中的protected成员

default成员

看下面的代码

//在altsd.test包下有一个类Ancle,没有集成Father类

package altsd.test;

public class Ancle {

Father father = new Father();

public int getAge(){

return father.age;

}

public int getEye(){

return father.eyes;

}

public int getLegs(){

return father.legs;

}

}

在这个类中,Ancle可以访问Father中的age,eyes,legs成员,age是public,eyes是protected,legs是default。public和protected上面已经讲过。因为Ancle和Father是属于同一个包的,所以Ancle中可以访问Father的legs成员。

总结:默认权限(default)权限的作用域是同一个包下。

private权限

现在就只剩pravate权限了,只是我们所有的情况下都无法访问到hhh这个成员。我们看上面的权限作用域表格对private权限的定义:类本身。返回去看Father类中有一个getHhh()方法,这个方法中成功访问了hhh成员。现在应该能明白了吧。出去类本身可以访问private成员,一切引用类对象的作用域都访问不到private成员。

java类的讲解_【java 基础】java类的权限讲解相关推荐

  1. java 线程 操作系统线程_线程基础:线程(1)——操作系统和线程原理

    1.概述 我在写"系统间通信技术专栏"的时候,收到很多读者的反馈.其中有一部分读者希望我抽空写一写自己关于对Java线程的使用经验和总结.巧的是,这个月我所在的技术团队也有很多同事 ...

  2. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  3. java h5在线音频_[语音技术]java+H5的录音类实例(1)

    看了某位仁兄的分享的关于C#的window平台的录音分装,有兴趣同学请访问楼下地址 https://ai.baidu.com/forum/topic/show/492634 于是,我也整理了自己项目中 ...

  4. java 电池类类代码举例_教案:Java第7章 类的方法

    授课教师:牟勇 课时:100分钟 l 本章技能目标 n 会定义和使用类的方法 n 理解变量作用域 n 会创建包组织Java工程 n 会添加类方法的JavaDoc注释 n 会阅读JavaSE6文档 l ...

  5. 没有基础的人学java开发难吗_零基础的人怎么学习Java

    编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...

  6. 饥荒时用java写的吗_【图片】类与对象面向对象编程【饥荒mod制作吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------深入饥荒的类 上一节讲完了基本概念,如果还心存疑虑可以百度搜索"类与对象"以获取更多信息 本节将深入研究饥荒代码中 ...

  7. java unsafe获取指针_【实战Java高并发程序设计 1】Java中的指针:Unsafe类

    是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

  8. java uml 类图 加号_UML建模基础 UML类图的组成元素和关系解析

    本文和大家重点讨论一下在UML建模中UML类图的java代码表现,主要包括UML类图元素和关系两大部分内容,相信通过本文的介绍你对UML类图的概念一定会与明确的认识. 在UML建模中UML类图的jav ...

  9. 深入理解Java虚拟机知乎_深入理解Java虚拟机(类文件结构)

    深入理解Java虚拟机(类文件结构) 欢迎关注微信公众号:BaronTalk,获取更多精彩好文! 之前在阅读 ASM 文档时,对于已编译类的结构.方法描述符.访问标志.ACC_PUBLIC.ACC_P ...

  10. java报错空指针异常_夯实基础:认识一下这10 个深恶痛绝的 Java 异常

    异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 什么是异常及异常的分类请看这篇文章:异常小结:上一张图搞清楚 ...

最新文章

  1. Oracle 12C -- 清空audit记录
  2. codevs 1376 帕秋莉•诺蕾姬
  3. 他89岁,拿下人生第3个博士学位,横跨医学物理学,只为“实现儿时梦想”
  4. Ajax技术的基本原理
  5. SHA-1算法的C语言实现(源码来自网络)
  6. 黑洞照片背后的女人:她的算法让数据“拼”成了照片
  7. [转]面向对象的三个基本特征
  8. java获取连接池方式_java – 如何测试连接池
  9. DSP实验报告四:GMSK 调制与解调
  10. 和最好的朋友,创最好的事业|巴菲特与芒格的绝世友情
  11. 中职学校计算机大赛方案,中等职业学校电子技能赛的活动策划方案参考
  12. android backtrace,高通android q 通过backtrace使用addr2ine工具定位crash问题记录
  13. 商业模式分析——3W2H分析法
  14. 如何在CAD中加载卫星地图并作街道与建筑绘制
  15. 转型经验分享|我为什么放弃做VC投资,去做自媒体?
  16. rcs仿真matlab,雷达截面积(Radar Cross Section,RCS)(MATLAB部分仿真+Code)
  17. 什么是数据指标管理,如何建立指标管理体系
  18. 自己建服务器 语音盒子_自建语音服务器
  19. 是利用计算机技术实现,计算机技术在智慧交通建设中的应用
  20. 阿里巴巴收买美国电子商务效劳商warkey

热门文章

  1. python常考题_Python语言基础考察点:python语言基础常见考题(一)
  2. Java tate只要年月日,Java初學者入門必須掌握的30個基本概念
  3. python怎么调用方法_python中怎么调用自己的方法
  4. ubuntu系统如何切换到root用户登录
  5. why在重写equals时还必须重写hashcode方法
  6. 终于可以摆脱 Pipenv 这坑货了
  7. 卸载 PyCharm!这才是 Python 小白的最理想的 IDE
  8. 一文看懂Python的控制结构:for、while、if…都有了
  9. java实现dvd租赁系统_Java编写汽车租赁系统
  10. 虚拟机当作设置服务器,虚拟机当作设置服务器