搜索
首页Javajava教程Java 中的私有

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));
}
}

输出:

Java 中的私有

示例#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());
}
}

输出:

Java 中的私有

示例 #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();
}
}

输出:

Java 中的私有

示例#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);
}
}

输出:

Java 中的私有

示例#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 中使用私有方法/字段的优点。

  • 它也可以应用于Java编程语言中的方法、字段和内部类。
  • 我们不能将 private 分配给外部接口或类。
  • 在 Java 编程语言中,顶级类始终不能是 Private。
  • 当然,我们知道私有变量或私有方法不能在 java 类之外访问,但可以通过使用 setAccessible(true) 的反射并通过更改 PRIVATE 可见性以另一种方式访问​​它们。
  • 在 Java 编程语言中,此方法不能被重写,即使不在内部类中也是如此。
  • PRIVATE 成员允许 Java 虚拟机和编译器对其进行优化以获得更好的性能。

Java 私有构造函数的规则和规定

以下是您应该了解的一些私人规则和规定。

  • 如果类包含私有构造函数,则无法从外部类创建该特定类的任何对象。
  • 您不应该在类之外访问私有关键字。如果您尝试,它将产生该行为的编译错误。为此,您必须修改代码。
  • 在该 java 语言中顶级类不能是私有的。

结论

主题即将结束,我们实际上很高兴知道在 Java 中使用 Private Keyword 是多么有用和简单。在本文中,我希望您了解 private 关键字、私有变量、访问修饰符、私有构造函数,以及如何在程序中使用这些私有关键字。

以上是Java 中的私有的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?Mar 17, 2025 pm 05:46 PM

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

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)?Mar 17, 2025 pm 05:45 PM

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

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

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

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?Mar 17, 2025 pm 05:43 PM

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

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

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

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.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

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

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

DVWA

DVWA

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

mPDF

mPDF

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