私はJava言語のベストプラクティスを理解しようとするC++プログラマーです。それに応じてあなたの応答を調整してください:)メンバーがプライベートクラスインスタンスの場合、クラスが別のクラスのパブリックメンバーを表示する方法
私は例を演習しましたが、私が観察した振る舞いがなぜ/どのように理解できるのか分かりません。 Test
ので
//HelloWorld.java
public class HelloWorld{
public static void main(String []args){
Newfile nf = new Newfile();
nf.setTest(5);
System.out.println(Integer.toString(nf.test.i));
System.out.println("Hello World");
}
}
//Newfile.java
class TEST {
public int i;
}
public class Newfile{
public TEST test = new TEST();
public int setTest(int i) {
return test.i = i;
}
}
// THIS WORKED
/*
5
Hello World
*/
は(ウェルIが推定)次にどのHelloWorld
もTEST
(即ちi
部材)の内容を操作することができるプライベートですか?今
奇妙な部分、私は上記の実験は、動作するように期待ただろうと私が得たとして、それは今振る舞うNewfile
のプライベート内部クラスへTEST
を移動:
i in Newfile.TEST is defined in an inaccessible class or interface
'Test'はpackage-privateであり、完全にprivateではありません。つまり、同じパッケージ内のコンテンツからアクセスできます。 (私はそれらが1つのパッケージにあると仮定します) – SomeJavaGuy
Downvoter、説明するように気をつけますか?ダウン投票は、その価値を失ったほどランダムになっています。質問は、明確で簡潔であり、宿題(明らかに)ではありません。あなたが簡単な質問を見つけたら、それは悪いことではありません。 – Kam
しかし、あなたはダウンレビュアーではないと主張することができます。あなたはそれが事実であるかどうかを研究せずにそれが私有であると仮定します。 – SomeJavaGuy