• 締切済み

クラスの使い方が分からない

文字列を返すというクラス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;  } }

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

クラスと、そのクラスのオブジェクトと、そのオブジェクトのメソッドの、正しい使い方を勉強してください。コンストラクタは、値を返せません。 ------------------------------------------- /* 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;  } } --------------------------------------------

noname#119918
noname#119918
回答No.1

文法に誤りがあります。 この記述ではそもそもコンパイルが通らないと思いますが。 コンストラクタは返り値を持たないので このような記述はできません。 与えられた文字列の前に"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; } }