java语言中有四种不同的限定词,提供了四种不同的访问权限。

1) private

类中限定为private的成员,只能被这个类本身访问。

如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。

2) default

类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。

3) protected

类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。

4) public

类中限定为public的成员,可以被所有的类访问。

表3-1列出了这些限定词的作用范围。

【表3-1】 java中类的限定词的作用范围比较

=============================================================

||              同一个类  同一个包的类 不同包的子类  不同包非子类    ||

|| private     *                                                                                              ||

|| default     *                   *                                                                         ||

|| protected *                   *                              *                                        ||

|| public      *                   *                              *                        *              ||

=============================================================

说明:上面这个表,看起来很简单,而且也很容易记忆,但是却蕴含着极为丰富的信息,可以从不同的角度来理解上面的这个表。

比如在同一个类里面时,四个关键词都相当于是public,可以不在乎限定词是什么;在同一个包里面时,除了private限定词外,所有的限定词的作用都完全等同于public。我们经常会思考这样一个问题:一个类的属性和方法是否对外可见?这个问题描述中提到的“可见”二字,当环境为“非子类”时,说白了就是我们能否通过实例化这个类后,用一个对象把这个类的这些字段或者方法给“点”出来,即“某对象.某属性(或某方法)”。因为通常我们都是在不同包的环境下操作的,比如我们会import很多系统的包中的类,诸如“import java.awt.*;”这样的语句,因此我们使用这些包中的类时,它们对我们的可见也就仅仅局限在使用“public”限定词修饰的属性或方法上了,因此大家往往会误以为只有public的东西才能点出来,实则不然,当我们在同一个包中的非子类中也可以把除了private修饰的东西之外的所有属性和方法给“点”出来。其实对于“点”这个运算,可以分两个角度去理解,既然能用到“点”操作,那就代表了我们使用的环境应该是“非子类”,非子类又可以分为“包内”和“非包内”,对于“包内”,只要不是private修饰的东西都能点出来;对于“非包内”则只能是public的东西才能点出来;;;如果是在“子类”中操作时,大家可以思考一下,我们还用“点”操作吗?显然不用了,因为在子类中,父类中定义的东西只要可见的话都可以被你拿过来用,因此根本就用不到点操作,当然这里也要分“包内”和“非包内”。对于default限定词,我们不能显示的使用它来定义属性或方法,只要我们在定义属性或方法的前面什么限定词都不加,就默认的使用了default限定词。

java中类成员的限定词_Java类中的限定词相关推荐

  1. java中类定义修饰符_Java 中类和方法修饰符

    Java 中类和方法修饰符 类的修饰 访问修饰符 修饰符 class 类名 extends 父类名称 implements 接口名称(notes: 访问修饰符符与修饰符的位置可以互换) 访问修饰符 名 ...

  2. 关于“只有静态常量整型数据成员才可以在类中初始化”

    关于"只有静态常量整型数据成员才可以在类中初始化" 关于类中的静态成员变量, 在类中只能声明,不能定义 注意在类的内部只是声明,不是定义 类中的静态变量是属于类的,不属于某个对象! ...

  3. 创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周长和面积

    创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 编程利用Rectangle输出一个矩形的周长和面积 publi ...

  4. 90页第三题,创建一个 Rectangle类,添加width和lenght两个成员变量 在 Rectangle类中添加两种方法分别计算矩形的周长和面积 ,编程利用Rectangle输出一个矩形的

    //90页第三题,创建一个 Rectangle类,添加width和lenght两个成员变量 //在 Rectangle类中添加两种方法分别计算矩形的周长和面积 //编程利用Rectangle输出一个矩 ...

  5. java中类的修饰符_Java中的类修饰符

    之前每次写小测试程序的时候,总是把一个类放在一个Java文件中,按理说这样比较规范,可主要原因是我是在不知道怎么在一个文件里放多个类,可见java基础有多差了...只要把类的属性改成默认的就可以了,也 ...

  6. java 类成员访问权限_Java类成员访问权限控制知识总结

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...

  7. java 类的域_Java类中对象域的初始化

    java中,一个类的域(或者说类的属性,类的数据成员)可以是基本数据类型,也可以是对象的引用.对象域如果没有被初始化,会被置为null,如果在置为null的引用上调用方法,我们就会得到一个运行时错误. ...

  8. java中static的用法_Java类中static的用法

    关于Java中static的使用有以下四种情况: 1.静态成员变量        被static修饰的成员变量,叫静态成员变量或类变量:没有被static修饰的变量,叫实例变量. 两者的区别是: 静态 ...

  9. java类的封装_Java类中的封装

    1.Java类中的封装 学习了访问权限修饰符后,应该可以理解封装性的概念和含义.封装性是面向对象三大特征之一 封装性是一种信息隐藏技术 2.封装的概念 在面向对象程式设计方法中,封装(英语:Encap ...

最新文章

  1. VTK:vtk布尔运算隐式函数BooleanOperationImplicitFunctions用法实战
  2. linux 怎么添加path环境变量,Linux下怎么添加和查看PATH环境变量
  3. maven 在pom.xml 中指定仓库位置
  4. 西瓜书+实战+吴恩达机器学习(四)监督学习之线性回归 Linear Regression
  5. 对于SQL注入的理解
  6. php中connect,PHP中的ftp_connect()函数
  7. 利用cookie爬取QQ邮箱的python脚本
  8. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
  9. 解决vmware“二进制转换与此平台长模式不兼容.....”的问题
  10. 详解窗口句柄,进程ID,进程句柄,窗口与进程之间的关系
  11. 笔试算法题(17):奇偶数分置数组前后段 反序访问链表
  12. c语言程序由哪三个部分组成部分,C语言程序的组成部分
  13. kafka与zookeeper下载安装及kafka常用命令
  14. 【机器学习】DBSCAN聚类算法
  15. 初中学校计算机机房管理制度,学校机房管理制度
  16. ​在Windows 10 下安装 Vmware 时遇到的问题和解决​方法
  17. PC端实现微信支付功能(Vue2.0)
  18. 【360补天计划】记第一次漏洞提交
  19. quartus ModelSim executable not found.
  20. Kotlin之身份证阅读器(华视)二次开发

热门文章

  1. 【气象水文】WRF示例运行与后处理软件
  2. OC7141 PWM 调光的线性降压 LED恒流驱动IC
  3. 使用Docker Swarm,Docker Compose和Consul扩展到无限(第3/4部分)–蓝绿色部署,自动化和自我修复过程...
  4. Android10 修改音量级别和默认音量
  5. 罗德里格斯(Rodrigues)旋转公式及其推导
  6. 题目78----根据日志时间先后顺序对日志进行排序
  7. 三角肌中束(02):单臂哑铃侧平举
  8. MotionNet: 基于鸟瞰图的自主驾驶联合感知与运动预测
  9. 矩阵分析之 实矩阵分解(2)LU,PLU分解
  10. ChatGPT fine tune微调+prompt介绍