0

プライベートアクセス指定子、プライベートを使用するタイミング、およびカプセル化に関してプライベートアクセス指定子に関してどのような利点があるかについての記事を読んでいました。プライベートアクセス指定子について

ただし、クラス外のプライベート変数へのアクセスに関して、この記事では明確ではなかったことが1つあります。プライベートメソッドまたは変数はクラス外ではアクセスできませんが、setAccessible(true)を使用してリフレクションを介してアクセスし、そこでプライベートに変更することでアクセスできます。可視性。

技術的にも理解できるように、ちょっとした例を教えていただけませんか。

4

1 に答える 1

0

クラスの「プライベート」メンバーは、プログラム内でのみアクセスでき、それも独自のオブジェクトを使用してアクセスできます。同じパッケージ内の継承されたクラスでさえ、構成によってアクセスすることはできません。コードを観察します。プライベート変数には、同じクラスメソッドからアクセスできます。

class Test
{
private int x = 10;
public void display()
{
       System.out.println(x);
}
}
public class Demo extends Test
{
public static void main(String args[])
{
   Demo d1 = new Demo();
   System.out.println(d1.x);   // error

   Test t1 = new Test();
   System.out.println(t1.x);   // error , it is composition (has-a relationship)     
   t1.display();                       // this works
}
}

私はこの答えをウェブで検索しました。way2java.comのトピック「パブリックメソッドとプライベート変数」で見つけました

于 2013-02-17T06:28:38.230 に答える