• 締切済み

Javaのクラスについて質問です。

class test{ private static int sum=1; となっていた場合にtestクラスの外からsumの値を取得し testクラスの外から出力するには、testクラス内と外のクラスにどのような記述をすればいいでしょうか?

みんなの回答

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.6

OOPの原則なので出来ません というのが模範解答ですが、デバッグの都合で取得したい場合も有りますね セキュリティ設定がなされていない素のJava環境なら、以下で可能です Test test = new Test(); Field field = Test.class.getDeclaredField("sum"); field.setAccessible(true); // ここが肝 int num = field.getInt(test); ただし危険なコーディングとなりますので、 使用上の注意をよく読み、用法・用量を守り正しくお使い下さい。

回答No.5

クラス名は大文字で始めるのが慣習なので、あえて大文字で書きますね。 すでに解答されている内容を実際にコーディングしただけですが、 ↓こんなところでしょうか・・・・ //利用される側 class Test{ private static int sum=1; public static int getSum(){ return sum; } } //利用する側 class Test2{ public static void main(String args[]){ System.out.println(Test.getSum()); } } これで、Test2クラスで出力できますよ。「カプセル化」の基本です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

努力と根性のリフレクション (<悪い見本).

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

1.testクラスにpublicでstaticなメソッドを用意し、sumをreturnする 2.testクラスの外から、そのメソッドをstatic参照する こんなとこかしら

回答No.1

とりあえずプライベートをパブリックにしましょう

関連するQ&A

専門家に質問してみよう