2

私はJava言語が初めてで、これら2つのメソッド呼び出しの違いについて混乱しました(メソッド呼び出しかどうかは正確にはわかりません)


しかし、何かを計算するためにメソッドを呼び出す必要がある場合は、これを呼び出します

salary obj=new salary();

 obj.bonus(45000);

しかし、文字列長メソッドを呼び出すときは、これを次のように呼び出します

String name="Java lovely";
name.length();

これら2つの方法の違いは何ですか.この問題を克服するのを手伝ってください.
ありがとうございました

4

6 に答える 6

3
String name="Java lovely";

文字列リテラルと混同する可能性があります。

文字列はJavaで特別です

書いたらクリアする

String s = new String("Java Lovely");
s.lenght();
于 2013-08-06T07:07:55.597 に答える
1

文字列はクラスです。 文字列クラスは文字列を表します。「abc」など、Java プログラムのすべての文字列リテラルは、このクラスのインスタンスとして実装されます。

文字列は定数です。作成後に値を変更することはできません。文字列バッファーは可変文字列をサポートします。String オブジェクトは不変であるため、共有できます。例えば:

     String str = "Java lovely";

次と同等です。

     char data[] = {'J', 'a', 'v', 'a', ' ', 'l','o', 'v', 'e','l', 'y'};
     String str = new String(data);

length は String クラスのメソッドです。

上の部分は

      salary obj=new salary();
      obj.bonus(45000);

この給与ではクラスであり、この「obj」のオブジェクトを作成し、ボーナスは給与クラスで定義したメソッドであり、そのメソッドを呼び出しています

そしてその他は

     String name="Java lovely";
     name.length();

ここは同じです

     String name=new String("Java lovely");

そして、String オブジェクト 'name' で length メソッドを呼び出しています。

どちらも同じですが、違いの 1 つは、文字列が定数 (不変) であることです。つまり、一度作成すると変更できませんが、給与クラスは定数ではなく、変更できます。

Java をよりよく理解するには、この本を読むことができます。頭から Java

于 2013-08-06T07:37:30.020 に答える
0

あなたは違いによって何をしていますか?最初の呼び出しに () の間に何かがあること? name.length じゃない?これは、メソッドボーナスがパラメーターを持つメソッドであるためです。値が必要です。この場合、整数または int でこれを処理します。ただし、 Name.length は値を意味するものではなく、文字列の保存された長さを返すだけです。

または、他にどこに違いがありますか?

obj.bonus(number); and
name.length (); 

実は同じ…

これがあなたの質問ではない場合は申し訳ありません。

編集:またはコンストラクターを意味しますか?これは、文字列が Java では特別であるためです。実際には new String("lalala"); は正しい。

于 2013-08-06T07:11:27.700 に答える
0

まったく同じです。obj と name はどちらもそのクラスのインスタンスです。ただし、String は Java では例外的なクラスです。newキーワードなしで上記のように作成できます。

于 2013-08-06T07:09:05.133 に答える
0

Stringすぐに含まれる Java クラスと同じです。あなたが作ることができます:

String name = new String("dsdsd");

のようです

String name = new String();
name = "dsdsd";
name.length();
于 2013-08-06T07:09:48.027 に答える