プライベート変数のテスト ― 2008年07月02日 18時30分06秒
private 変数も、main 関数から参照、そして変更できる。
% cat Private.java
class Private
{
private int Private = 21;;
public static void main(String[] args)
{
Private p = new Private();
System.out.println(p.Private);
p.Private = 12;
System.out.println(p.Private);
}
}
こちらが実行結果。
% javac Private.java
% java Private
21
12
ただし、private の仕様上、他のクラスにある main 関数からは参照出来ない。
% cat Public.java
class Public
{
public static void main(String[] args)
{
System.out.println(new Private().Private);
}
}
% javac Public.java
Public.java:5: Private has private access in Private
System.out.println(new Private().Private);
確かに、仕様上は、
A private class member or constructor is accessible only within the class body in which the member is declared and is not inherited by subclasses.とあるので仕様違反ではないが、main 関数から、private 関数を呼びたい放題呼べ、private 変数を自由に変更できてしまうではないかと思うのは私だけだろうか。
前回。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/07/02/3606707/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。