まず、PrivateShirt1
という名前のクラスを作成し、同じクラスファイル内でそのクラスのオブジェクトを作成した後でプライベートフィールド名を呼び出しました。クラス内で作成されたオブジェクトはプライベートフィールドにアクセスできますが、別のクラスで作成されたオブジェクトはなぜですか?
public class PrivateShirt1{
private String name;
public static void main(String args[]){
PrivateShirt1 s1=new PrivateShirt1();
s1.name="hi";
System.out.println(s1.name);
}
}
次の私はPrivateShirt1
のmainメソッドを入れてコンパイルし、それを呼び出す機能を実行しているPrivateShirt2
と呼ばれる別のファイルを作成しました。変更後のファイルPrivateShirt1
とPrivateShirt2
は、次のようになります。
public class PrivateShirt2{
public static void main(String args[]){
PrivateShirt1 s1=new PrivateShirt1();
s1.name="hi";
System.out.println(s1.name);
}
public class PrivateShirt1 {
private String name;
}
を、私はPrivateShirt2
ファイルをコンパイルするとき、それは私が呼び出そうとした属性がプライベートであることを示すエラーを与えました。
しかし、なぜこれは前の例では起こりませんでしたか?つまり、オブジェクトは両方のケースで作成されたため、両方のルールが同じである必要があります。だからなぜこの部分的な治療?誰かが精緻化できますか?
カプセル化:オブジェクトのコンポーネントの一部へのアクセスを制限するための言語メカニズム。 http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 –
申し訳ありません私は一日中jsを書いています。グッドキャッチ –
javascript?ああ..... – Gabe