搜索
首页Javajava教程Java中的公共(public)与受保护(protected)访问修饰符的区别
Java中的公共(public)与受保护(protected)访问修饰符的区别Sep 17, 2023 pm 08:49 PM
公共(public)受保护(protected)访问修饰符(access modifier)

Java中的公共(public)与受保护(protected)访问修饰符的区别

public 和 protected 访问修饰符决定如何访问类或方法的成员。修饰符在声明时附加到成员上。我们知道这些访问修饰符在 Java oops 概念(如封装、多态性和继承)中发挥着重要作用。它有助于防止滥用会员提供的功能。我们将尝试通过示例程序来理解 Java 中的 public 和 protected 访问修饰符。

Java 中的访问修饰符

公共访问修饰符

Java 不限制公共成员的可访问性。任何声明为 public 的东西都可以在任何地方访问,这意味着我们可以在类内、类外、包内和包外访问它们。您可能已经注意到,Java 中的 main() 方法始终定义为公共方法,以便当前程序任何范围之外的 JVM 都可以调用它。

公共访问修饰符的一些示例 -

public int i1 = 108;
public double d2 = 6.55;

这里,变量被声明为公共。

示例

以下示例说明了包成员在 Java 中的工作原理。

class Pack {  
   public void prnt() { 
      // method declared as public 
      String msg = "I am inside a public method";
      System.out.print(msg);
   }  
}  
public class ClassShow extends Pack { 
   // public child class
   public static void main(String args[]) { 
      // creating object of child class
      ClassShow obj = new ClassShow();  
      // method calling through object of child class
      obj.prnt();
   }  
}  

输出

I am inside a public method

在上面的代码中,“Pack”类是“ClassShow”的父类。在父类中,我们声明了一个名为“prnt()”的公共方法来打印一条简单的消息。在子类的main()方法中,我们定义了子类“ClassShow”的对象来调用公共方法“prnt()”。在这里,子类也是公共的。

受保护的访问修饰符

多用于继承的情况下,控制父类成员和对应子类成员的访问。它允许在当前包之外访问元素,但只能访问类的直接子类。在这里,包是保存一组类的容器。

受保护访问修饰符的一些示例 -

protected int data1 = 5;
protected double data2 = 5.55;

这里,变量被声明为受保护的。

示例

以下示例说明了 Java 中受保护方法的使用。

class Pack {  
   protected void prnt() {
      String msg = "Tutorials Point!!";
      System.out.print("Welcome to " + msg);
   }  
}  
public class ClassShow extends Pack {  
   public static void main(String args[]) { 
      // creating object of child class
      ClassShow obj = new ClassShow();  
      // method calling through object of child class
      obj.prnt();  
   }  
}  

输出

Welcome to Tutorials Point!!

在上面的代码中,“Pack”类是“ClassShow”的父类。在父类中,我们声明了一个名为“prnt()”的受保护方法来打印一条简单的消息。在子类的main()方法中,我们定义了子类‘ClassShow’的对象来调用受保护的方法‘prnt()’。

公共与受保护的访问修饰符

从上面的讨论中,我们可以得出公共和私有访问修饰符之间的以下区别 -

公开

受保护

我们需要使用关键字“public”来指定成员公开。

我们使用“protected”关键字来指定成员受到保护。

我们可以将任何类定义为公共类。

类不能被定义为受保护的。

公共成员可以被包内和包外的任何类访问。

受保护的成员可以在包内以及其他包中访问。但对于其他包,它只能被继承的类访问。

顶级和会员均适用。

仅适用于会员级别。

结论

我们首先定义了 public 和 protected 访问修饰符,在后面的部分中,我们通过各自的示例详细解释了它们。最后,我们讨论了它们之间的一些差异。

以上是Java中的公共(public)与受保护(protected)访问修饰符的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除
2025年的前4个JavaScript框架:React,Angular,Vue,Svelte2025年的前4个JavaScript框架:React,Angular,Vue,SvelteMar 07, 2025 pm 06:09 PM

本文分析了2025年的前四个JavaScript框架(React,Angular,Vue,Susve),比较了它们的性能,可伸缩性和未来前景。 尽管由于强大的社区和生态系统,所有这些都保持占主导地位,但它们的相对人口

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

Node.js 20:关键性能提升和新功能Node.js 20:关键性能提升和新功能Mar 07, 2025 pm 06:12 PM

Node.js 20通过V8发动机改进可显着提高性能,特别是更快的垃圾收集和I/O。 新功能包括更好的WebSembly支持和精制的调试工具,提高开发人员的生产率和应用速度。

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Java的类负载机制如何起作用,包括不同的类载荷及其委托模型?Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

冰山:数据湖桌的未来冰山:数据湖桌的未来Mar 07, 2025 pm 06:31 PM

冰山是用于大型分析数据集的开放式桌子格式,可提高数据湖的性能和可伸缩性。 它通过内部元数据管理解决了镶木quet/orc的局限

Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复Spring Boot Snakeyaml 2.0 CVE-2022-1471问题已修复Mar 07, 2025 pm 05:52 PM

本文介绍了SnakeyAml中的CVE-2022-1471漏洞,这是一个允许远程代码执行的关键缺陷。 它详细介绍了如何升级春季启动应用程序到Snakeyaml 1.33或更高版本的降低风险,强调了依赖性更新

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

如何在Java中实施功能编程技术?如何在Java中实施功能编程技术?Mar 11, 2025 pm 05:51 PM

本文使用lambda表达式,流API,方法参考和可选探索将功能编程集成到Java中。 它突出显示了通过简洁性和不变性改善代码可读性和可维护性等好处

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具