- 締切済み
クラスの使い方が分からない
文字列を返すというクラスbを作りました。 bは引数が1つあって、引数に与えられた文字の手前に"f"を挿入した文字を返します。 結果は"fh"となることを期待しました。 期待通りになるように修正していただけませんか? public class a { public static void main (String args[]) { String g = b("h"); System.out.println("Hello World!!"); } } public class b { b(String c){ d(c); } private String d(String c) { String e = new String("f" + c); return e; } }
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- _ranco_
- ベストアンサー率58% (126/214)
クラスと、そのクラスのオブジェクトと、そのオブジェクトのメソッドの、正しい使い方を勉強してください。コンストラクタは、値を返せません。 ------------------------------------------- /* save and compile as a.java */ public class a { public static void main (String args[]) { b Myb = new b(); String g = Myb.d("h"); System.out.println(g); System.out.println("Hello World!!"); } } class b { public String d(String c) { String e = new String("f" + c); return e; } } --------------------------------------------
文法に誤りがあります。 この記述ではそもそもコンパイルが通らないと思いますが。 コンストラクタは返り値を持たないので このような記述はできません。 与えられた文字列の前に"f"を挿入した文字列を返す関数を持つクラス、 ならば下記のようにコーディングできます。 public class a { public static void main(String [] args) { b g = new b("h"); System.out.println(g.result()); } } class b { private String s; public b(String c) { s = "f" + c; } public String result() { return s; } }