やりたいこと
- あるjavaファイルから、別のjavaファイルにあるクラスで定義したクラス変数(下記
unit
)を呼び出し、出力したいと考えています。
状況
ファイル
- Sect6_3.java(実行して出力するファイル)
java
1public class Sect6_3{ 2 public static void main (String[] args){ 3 System.out.println(FixedPhone.units); //unitsの初期値「0」をプリントしたい 4 } 5}
- FixedPhone.java(呼び出す先のファイル)
public class FixedPhone extends Telephone{ String iS; static int units = 0; //呼び出したい中身 public FixedPhone(String telNum, String site){ tN = telNum; iS = site; units++; } public void receiveCall(String caller){ System.out.println("rrrrrrrrrrrrrrr"); System.out.println("Calling" + caller + "->" + tN + "(site" + iS + ")"); } }
- Telephone.java(FixedPhoneのスーパークラス)
public class Telephone{ String tN; public void receiveCall(String caller){ System.out.println("rrrrrrrrrrrrrrr"); System.out.println("Calling" + caller + "->" + tN); } public void talkSomething(String msg){ System.out.println("[" + msg + "]"); } public void hungUp(){ System.out.println("bye"); } }
実行内容とエラー文
cmd
1C:\path>javac Sect6_3.java 2 3C:\path>java Sect6_3.java 4Exception in thread "main" java.lang.IllegalAccessError: class Sect6_3 tried to access field FixedPhone.units (Sect6_3 is in unnamed 5module of loader com.sun.tools.javac.launcher.Main$MemoryClassLoader @5204062d; FixedPhone is in unnamed module of loader 'app') 6 at Sect6_3.main(Sect6_3.java:3)
確認済み事項
- 上記全てのファイルは同じディレクトリにあり、最新の状態で
javac
実行済みです。 - 公式ドキュメントも確認しました。
環境
- win10
- java 13.0.1
お願い
- どこをどのように直したらよいのか分からないので、共有いただけると幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/23 06:41