ホームページ  >  記事  >  Java  >  Javaのプライベート

Javaのプライベート

WBOY
WBOYオリジナル
2024-08-30 15:22:241080ブラウズ

Java のキーワード「private」は、Java コード ブロック内のクラス、メソッド、または変数のアクセシビリティの制限を確立するために使用されます。クラス、メソッド、または変数がプログラム内でプライベートとして許可されている場合、パブリック メソッドとは異なり、特定のクラス、メソッド、または変数にクラスまたはメソッドの外部からアクセスできないことを意味します。 Private キーワードは通常、Java の完全にカプセル化されたクラスで使用されます。

Java でのプライベート キーワードはどのように機能しますか?

Java のプライベート キーワードは、特定のクラス内で機能します。クラス外からはアクセスできません。クラスやインターフェイス、インターフェイスの外では機能しません。 Private Keyword は、クラスのメンバーが PRIVATE である場合、および完全にカプセル化されたクラスでも適切に機能します。プライベート キーワード、変数、またはメソッドは、クラス外で PRIVATE METHOD を呼び出すアクセス修飾子を使用してサブクラスにオーバーライドすることもできます。これにより、Private Keyword は Private Access Modifier を使用する場合にのみクラスの外でも機能します。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

プライベート修飾子の例をいくつか示します。

例 #1

ここでは、クラス AB からアクセスするプライベート データ メンバーによるコンパイル エラーを示す Private Access Modifier の例を示します (以下の例を参照)。プライベート メソッドまたはプライベート メンバーは、特定のクラス内でのみアクセスできます。

コード:

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 をクラスの外で呼び出したり呼び出すことができないことを示しています。ここでは、クラスのランタイム動作を変更することで、プライベート メソッドが Outside クラスから呼び出されています。

コード:

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 のプライベート コンストラクターに関する規則と規制

ここでは、プライベートに関する知っておくべきいくつかのルールと規制を示します。

  • クラスに PRIVATE CONSTRUCTOR が含まれている場合、外部クラスからその特定のクラスのオブジェクトを作成することはできません。
  • クラス外のプライベート キーワードにアクセスしないでください。試行すると、その証書のコンパイル エラーが発生します。そのためには、コードを変更する必要があります。
  • この Java 言語ではトップレベルのクラスをプライベートにすることはできません。

結論

メイントピックの終わりに近づいて、Java でプライベート キーワードを使用することがいかに便利で簡単であるかを知ってうれしく思います。この記事では、プライベート キーワード、プライベート変数、アクセス修飾子、プライベート コンストラクター、およびこれらのプライベート キーワードをプログラムで使用する方法を理解していただければ幸いです。

以上がJavaのプライベートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。