首页 > 编程语言 >肖sir__java__Java访问控制修饰符详解(public、 private、protected 和 friendly)

肖sir__java__Java访问控制修饰符详解(public、 private、protected 和 friendly)

时间:2022-10-15 00:45:06浏览次数:57  
标签:__ sir 修饰符 private 访问 包中 该类 public

1、

 

 

1. private

用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。例如,设 PhoneCard 是电话卡类,电话卡都有密码,因此该类有一个密码域,可以把该类的密码域声明为私有成员。

2. friendly(默认)

如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性(package private)。

同样,类内的成员如果没有访问控制符,也说明它们具有包访问性,或称为友元(friend)。定义在同一个文件夹中的所有类属于一个包,所以前面的程序要把用户自定义的类放在同一个文件夹中(Java 项目默认的包),以便不加修饰符也能运行。

3. protected

用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。

4. public

当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。

类中被设定为 public 的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,实际就是数据封装思想的体现。每个 Java 程序的主类都必须是 public 类,也是基于相同的原因。

标签:__,sir,修饰符,private,访问,包中,该类,public
From: https://www.cnblogs.com/xiaolehong/p/16793410.html

相关文章

  • 基本类型拓展知识
    浮点数拓展浮点数分为float和double浮点数所表示出来的数是有限的,是接近数但是不等于数;所以浮点数是不能用来作比较的作比较可以用BigDecimal(教学工具类)publicclassS......
  • Codeforces Round #747 (Div. 2) D // 扩展域并查集
    题目来源:CodeforcesRound#747(Div.2)D-TheNumberofImposters题目链接:Problem-D-Codeforces题意有\(n\)个人,每个人拥有\(imposter\)或\(crewmate\)的身份......
  • Jedis(五大数据类型,事务)
    简介Jedis是Redis官方推荐的Java连接开发工具。要在Java开发中使用好Redis中间件,必须对Jedis熟悉才能写成漂亮的代码测试联通打开window下的redis-server,1、新建一个普......
  • 2020CCPC绵阳L. Lottery(组合数学)
    题意:给出你n个箱子,每个箱子有一个对应的指数ai,和数量xi代表这个箱子内的大小为2^ai的彩票有xi张。然后想问你,用这些箱子中的彩票随意选择,最多能组成多少种和不重复的彩票......
  • Ubuntu如何搭建Jenkins
    前言:由于我通过aptinstall的方式安装未能成功启动,还没有查清楚原因。所以目前我只提供下载资源包的方式。另提供Jenkins通过aptget安装的官方文档:https://pkg.jenkins.......
  • 缓存穿透和雪崩
    缓存穿透缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候......
  • Windows安装Redis的流程
    1.下载下载地址:https://github.com/tporadowski/redis/releases 2.解压新建一个文件夹为redis-5.0.10,然后将下载好的zip包解压到新建的redis-5.0.10文件夹中。 3......
  • tomcat配置中出现的问题
    1.在ecplise运行过程当中反复出现Could not publish server configuration for Tomcat v8.5 Server at localhost.此项报错,原因是因为    在server文......
  • mac系统下配置Sencha环境变量
    还原:开始安装了SenchaSDKTools-2.0.0-beta3,然后设置环境变量,之后执行sencha时报出<WARN>。。。isnotaSenchaSDKorapplication。。上网查资料发现此版本需要安装Sen......
  • CentOS7脚本安装GitLab
    #!/bin/bashyuminstall-ycurlpolicycoreutils-pythonopenssh-serverperlsystemctlenablesshdsystemctlstartsshdfirewall-cmd--permanent--add-service=httpfi......