現在Javaを勉強し始めて2週間ほどです。
クラス名を入力し、その名前に応じた値を返すようにしたいと思ったのですが、クラスのインスタンス名を入力するにはどうすればいいんでしょうか。
String name = "インスタンス名"//ここで標準入力したい。
こうして、squareのgeArea()にアクセスしようと
double area = name.getArea();
としてもエラーでシンボルが見つからないといわれます。
いくつかクラスはあって、今回はそのうちの一つのSquareをもらっています。
以下がメインのコードです。
public class TestFigures{ public static void main(String[] args){ Shape shape = new Shape("Square"); Square square = new Square("Square",4); //以下数値を入力してく場所 String str = square.toString();//ここで任意のクラスを指定したい double area = square.getArea(); System.out.println(str+" "+area); } }
コードブロックはファイル毎に分けてください。
承知いたしました。
質問がわかってないのですが、標準入力から内部のインスタンス変数の名前(ここでは、shape、square)
を指定してオブジェクトにアクセス(getAreaを呼ぶ)したいってことでしょうか?
単に、標準入力からStringを受け取りたいってこと?
String name = "インスタンス名";は、エラーにならないんじゃ?
大変失礼しました。質問文に不備がありました。
質問の意図に関してですが、全くその通りです!
nameに標準入力からの(今回はsquare)を受け取って、name.gatArea()とするとシンボルが...、という状況です。
真っ当な方法では無理です
ただの興味なのか、練習問題なのかどちらでしょう?
ozwk
リフレクションはまっとうな方法ですが
リフレクションでもできますが、ファクトリーメソッドでいいんじゃないかという気もします。
回答3件
あなたの回答
tips
プレビュー