新用户注册入口 老用户登录入口

java中受保护和友好的区别

文章作者:键盘勇士 更新时间:2023-05-18 18:06:08 阅读数量:370
文章标签:访问控制修饰符Javapublicprivate包访问权限继承
本文摘要:Java中有四种访问控制修饰符:public、protected、default和private。其中,protected和default分别代表受保护和友好访问权限。在Animal类中,name为public类型,age为protected类型,color为default类型,type为private类型。子类Dog可以访问父类Animal的protected和非private成员变量。友好访问控制(default)允许同一包内类访问,而protected则允许同一包内或子类访问。Cat类与Animal在同一包内,故可访问其default和public成员变量,但不能访问protected和private成员变量。
Java

Java中的访问权限修饰符有四种,分别为public、protected、default和private。其中,protected和default被称为保护和默认访问权限修饰符。

public class Animal {
public String name;
protected int age;
String color;
private String type;
}


上述代码中,Animal类中定义了四个属性,分别是public种类的name、protected种类的age、default种类的color和private种类的type。其中protected种类的age和default种类的color就是我们涉及的保护和默认访问权限修饰符。

保护访问权限修饰符


protected访问权限修饰符只能在相同包内或子类中访问,其他类不允许访问。使用protected修饰的属性或函数可以被派生类继承并在派生类内访问。

public class Dog extends Animal {
public void bark() {
System.out.println("汪汪汪");
System.out.println("我叫" + name);
System.out.println("我今年" + age + "岁");
System.out.println("我的皮毛颜色是" + color);
//System.out.println("我的种类是" + type); //引发错误,不允许访问基类内private属性
}
}

在上述代码中,Dog类从...继承Animal类,能够访问Animal类中保护种类的age属性,同时也能够访问Animal类中的public和default种类的属性。

默认访问权限修饰符


default访问权限修饰符就是无明确修饰符,即其他访问控制符都没有写。使用default修饰的属性或函数可以在相同包内访问,但不同包内的类不允许访问。

package com.example;
public class Cat {
public void meow() {
Animal animal = new Animal();
System.out.println("喵喵喵");
System.out.println("我叫" + animal.name);
//System.out.println("我今年" + animal.age); //引发错误,不允许访问基类内protected属性
System.out.println("我的皮毛颜色是" + animal.color);
//System.out.println("我的种类是" + animal.type); //引发错误,不允许访问基类内private属性
}
}

在上述代码中,Cat类和Animal类在相同包内,可以访问Animal类中的default和public属性,但不允许访问Animal类中的protected和private属性。

相关阅读
文章标题:java中模块和类模块的区别

更新时间:2023-01-11
java中模块和类模块的区别
文章标题:java中char和ch区别

更新时间:2023-01-16
java中char和ch区别
文章标题:你知道吗,访问你的服务器的用户很可能是爬虫,如何识别它们呢

更新时间:2024-01-26
你知道吗,访问你的服务器的用户很可能是爬虫,如何识别它们呢
文章标题:java中异步和同步的问题

更新时间:2023-05-04
java中异步和同步的问题
文章标题:计算机领域分词词汇表,点这里免费下载txt,内有java的IKAnalyzer示例

更新时间:2024-01-26
计算机领域分词词汇表,点这里免费下载txt,内有java的IKAnalyzer示例
文章标题:java中T和object的关系

更新时间:2023-11-01
java中T和object的关系
名词解释
作为当前文章的名词解释,仅对当前文章有效。
访问控制修饰符在Java编程语言中,访问控制修饰符是一系列关键字,用于定义类、接口、方法或变量的访问权限。它们包括public、protected、default和private四种级别,分别对应公开访问、受保护访问、包访问(友好访问)和私有访问。通过使用这些修饰符,开发者可以限制类内外部代码对特定成员的访问,从而实现封装性,提高代码的安全性和可维护性。
受保护访问控制修饰符(protected)在Java中,protected是一个访问控制修饰符,它允许子类以及同一包中的其他类访问被该修饰符标记的类成员(如字段或方法)。这意味着如果一个类A声明了一个protected成员变量或方法,那么在同一包内的其他类可以直接访问,而不同包但继承自类A的子类也能访问这个protected成员。
包访问控制修饰符(default或友好访问)在Java中,默认或友好访问控制是指没有明确指定任何访问控制修饰符的情况。在这种情况下,类的成员(字段或方法)只允许在同一个包内的其他类访问,而在不同包中的类则无法直接访问这些默认访问级别的成员。这种机制有助于实现内部模块间的信息隐藏与封装,避免非必要暴露,从而增强代码的安全性和稳定性。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入理解Java访问控制修饰符的基础上,我们可以通过以下实际应用场景和最新技术动态进一步探究其重要性和影响力。
近期,随着Spring框架5.x版本的广泛采用以及模块化编程的日益流行,访问控制权限的重要性更加凸显。在大型企业级项目中,开发者必须精确控制类、接口和成员变量的可见性,以保证代码的封装性和安全性。例如,在微服务架构中,每个服务模块内部定义的核心业务逻辑通常会被设置为private或package-private(default),以避免被外部模块随意访问,从而降低耦合度和潜在的安全风险。
同时,protected访问控制在面向对象设计中的角色也愈发关键。在实现组件复用和继承时,父类通过protected成员变量和方法向子类提供了一种安全而灵活的扩展机制。如在JDK新特性记录中,有开发者利用protected修饰符优化了框架内部组件的设计,使子类可以方便地重写和扩展特定功能,而不影响原有框架结构的稳定性。
此外,对于开源社区而言,public API的设计直接关系到库的易用性和兼容性。许多开源库在迭代更新过程中,会严格限制新增API的访问级别,尽量减少对外暴露的public接口,转而推荐使用protected或默认访问权限的方法来指导用户按照最佳实践进行扩展开发。
综上所述,掌握Java中的访问控制修饰符并合理运用,不仅有助于编写出更安全、高效、易于维护的代码,更能顺应现代软件工程的发展趋势,适应复杂多变的技术生态。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
du -sh * - 显示当前目录下所有文件和目录大小。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
jQuery和CSS3手风琴样式分步向导特效 09-29 逼真的js打字机效果插件 09-05 [转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo 03-11 谷歌sitemap不收录显示无法抓取怎么处理 01-26 绿色响应式课程教育机构企业网站模板 01-20 [转载]node重命名文件名_node文件批量重命名 12-30 Spring Cloud微服务架构中注册中心的必要性与服务间通信实践:服务发现、API契约与高可用性考量 11-23 vue及时通讯 10-25 docker扩展屏黑屏(openwrt扩展docker空间) 09-04 本次刷新还10个文章未展示,点击 更多查看。
响应式中文后台管理系统HTML5模板 08-30 Shell编程入门:精选Linux系统学习资源与Bash实践教程,实例演示自动化任务及文本处理提升效率 08-29 Etcd中HTTP/GRPC服务器内部错误的根源与应对:基于工作原理、Raft算法和配置更新实践 07-24 java中构造函数和方法 05-03 python正数求和为负 04-28 Gradle构建工具中依赖管理与打包:在build.gradle文件中正确包含依赖包及分组实践 04-09 Consul 中服务实例健康状态误报:网络中断影响与API修复实践 03-02 css段落首行怎么缩进字符 02-27 Datax在数据迁移中遇到HDFS NameNode不可达错误的排查与解决:服务状态、网络连接和防火墙设置详解 02-22 红色响应式美食餐饮店铺外卖网站html模板 02-17 [转载]小白鼠的逆袭 01-02
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"