親クラスの変数にその子からアクセスしようとしていますが、使用方法はわかりません。親から子へのパブリック変数の使い方は?
親クラスはATempSensor
です:
public abstract class ATempSensor { // abstract=can have children inherit
// from this class, but no instantiation.
static String cmd ; // command to send to shell.
static String cmd_result ; // Line returned by command.
static int cmd_number ; // if command just returned a number, here it is.
public void runCmd() {
try {
Runtime run = Runtime.getRuntime(); // get runtime shell.
Process pr = run.exec(cmd); // start command.
pr.waitFor() ; // wait for command to finish.
BufferedReader buf = new BufferedReader // get output from command.
(new InputStreamReader(pr.getInputStream()));
cmd_result = buf.readLine();
cmd_number = Integer.parseInt(cmd_result);
}
catch (Exception e) { // can get exceptions for exec, waitfor, parseInt
}
}
}
子クラスSwitchTempSensor
です:
どちらのjavaファイルが "tempsensor" と呼ばれる同じディレクトリにある、Mymain.javaは外tempsensorです。子クラスで
Mymain.java
|
tempsensor
|----------SwitchTempSensor.java
|----------ATempSensor.java
like- ディレクトリを見て、私はcmd
と呼ばれる文字列を使用しようとしています。私はstatic String
の再宣告によって使用しました、それは必要ですか?私はまた、子供にrunCmd()
を使用したいと思います。子クラスでrunCmd()を使用すると、「エラー:無効なメソッド宣言、戻り値の型が必要」というエラーが表示されます。
子クラスで変数とクラスを使用する適切な方法は何ですか(SwitchTempSensor
)?
子クラスで 'runCmd()'を使用するのを止めることはありませんが、親クラスが子クラスの変数をオーバーライドのように使用するように思えます。しかし、Javaでは変数のオーバーライドはありません。おそらく 'cmd'と他の変数は、コンストラクタによって初期化されたインスタンス変数でなければなりませんか?あなたが何を求めているのか不明です。 – EJP
子クラスでrunCmd()を使用すると、「エラー:無効なメソッド宣言、戻り値の型が必要です」というエラーが表示されます。 –
コンパイルエラーが発生しましたか?あなたはそれらを自分で修正できると期待されています。あなたは実際に投稿を明確にしていません。 – EJP