Java中的关键字“private”用于建立java代码块中类、方法或变量的可访问性限制。如果一个类、方法或变量在程序中被称为私有,则意味着特定的类、方法或变量不能被该类或方法的外部访问,这与公共方法不同。 Private 关键字通常在 Java 中完全封装的类中使用。
私有关键字在 Java 中如何工作?
Java 中的私有关键字在特定类中工作。在课堂之外无法访问它。它在类/类和接口/接口之外不起作用。如果类的成员是 PRIVATE 并且在完全封装的类中也是如此,则 Private 关键字效果很好。 Private 关键字或变量或方法也可以使用某些访问修饰符来覆盖子类/类,以调用类外部的 PRIVATE METHOD。这样,私有关键字也可以仅使用私有访问修饰符在类之外工作。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
示例
下面是一些私有修饰符的示例,如下:
示例#1
这里我们以 Private Access Modifier 为例,由于从类 AB 访问私有数据成员,该示例显示编译错误,如下例所示。私有方法或私有成员只能在特定类中访问。
代码:
class AB{ private double number = 100; private int squares(int a){ return a*a; } } public class Main{ public static void main(String args[]){ AB obj = new AB(); System.out.println(obj.number); System.out.println(obj.squares(10)); } }
输出:
示例#2
这是说明在以下程序中使用 PRIVATE 关键字的示例:
代码:
class Emp{ private int id1; private String name14; private int age14; public int getId1() { return id1; } public void setId(int id1) { this.id1 = id1; } public String getName14() { return name14; } public void setName14(String name14) { this.name14 = name14; } public int getAge14() { return age14; } public void setAge14(int age14) { this.age14 = age14; } } public class Main{ public static void main(String args[]){ Emp e=new Emp(); e.setId(1473); e.setName14("Pavan Kumar Sake"); e.setAge14(24); System.out.println(e.getId1()+" "+e.getName14()+" "+e.getAge14()); } }
输出:
示例 #3
在此示例中,您可以看到如何使用默认的访问修饰符将 PRIVATE METHOD 覆盖到子类。我们甚至不允许从子类调用父类方法。
代码:
class ABC{ private void msg() { System.out.println("Hey Buddy this is the parent class method"); //Output of the Private Method } } public class Main extends ABC{ // Private method is overridden using the access modifier void msg() { System.out.println("Buddy this is the child class method"); } public static void main(String args[]){ Main obj=new Main(); obj.msg(); } }
输出:
示例#4
在此示例中,我说明不能在类外部调用/调用 PRIVATE METHOD。现在,私有方法通过更改类运行时行为从外部类调用。
代码:
import java.lang.reflect.Method; class ABC { private void display() { System.out.println("Hey Now private method is invoked/Called"); } } public class Main{ public static void main(String[] args)throws Exception{ Class d = Class.forName("ABC"); Object p= d.newInstance(); Method n =d.getDeclaredMethod("display", null); n.setAccessible(true); n.invoke(p, null); } }
输出:
示例#5
这是 Java 编程语言中私有方法和字段的示例。这里私有方法在编译时使用静态绑定,甚至不能被覆盖。不要与 Private 变量输出混淆,因为 Private 变量实际上可以在内部类内部访问。如果在类外部调用 PRIVATE 变量,编译器肯定会产生错误。
代码:
public class Main { private String i_m_private1 = " \n Hey Buddy I am a private member and i am not even accessible outside of this Class"; private void privateMethod1() { System.out.println("Outer Class Private Method"); } public static void main(String args[]) { Main outerClass = new Main(); NestedClass nestc = outerClass.new NestedClass(); nestc.showPrivate(); //This syntax shows private method/methods are accessible inside the class/inner class. outerClass = nestc; nestc.privateMethod1(); //It don't call/invoke private method from the inner class because // you can not override the private method inside the inner class. } class NestedClass extends Main { public void showPrivate() { System.out.println("Now we are going to access Outer Class Private Method: " + i_m_private1); privateMethod1(); } private void privateMethod1() { System.out.println("Nested Class's Private Method"); } } }
输出:
优点
下面我们将解释在 Java 中使用私有方法/字段的优点。
- 它也可以应用于Java编程语言中的方法、字段和内部类。
- 我们不能将 private 分配给外部接口或类。
- 在 Java 编程语言中,顶级类始终不能是 Private。
- 当然,我们知道私有变量或私有方法不能在 java 类之外访问,但可以通过使用 setAccessible(true) 的反射并通过更改 PRIVATE 可见性以另一种方式访问它们。
- 在 Java 编程语言中,此方法不能被重写,即使不在内部类中也是如此。
- PRIVATE 成员允许 Java 虚拟机和编译器对其进行优化以获得更好的性能。
Java 私有构造函数的规则和规定
以下是您应该了解的一些私人规则和规定。
- 如果类包含私有构造函数,则无法从外部类创建该特定类的任何对象。
- 您不应该在类之外访问私有关键字。如果您尝试,它将产生该行为的编译错误。为此,您必须修改代码。
- 在该 java 语言中顶级类不能是私有的。
结论
主题即将结束,我们实际上很高兴知道在 Java 中使用 Private Keyword 是多么有用和简单。在本文中,我希望您了解 private 关键字、私有变量、访问修饰符、私有构造函数,以及如何在程序中使用这些私有关键字。
以上是Java 中的私有的详细内容。更多信息请关注PHP中文网其他相关文章!

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

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

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

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),