2

我是 Java 语言的新手,我对这两种方法调用之间的不同感到困惑(我不知道它到底是不是方法调用)


但是如果我需要调用方法来计算我称之为的东西

salary obj=new salary();

 obj.bonus(45000);

但是当我们调用 String length 方法时,我们将其称为

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

这两种方法有什么不同。请帮助我克服这个问题。
谢谢

4

6 回答 6

3
String name="Java lovely";

您可能会与字符串文字混淆。

字符串在java中很特殊

如果我写了你会明白的

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

字符串是一个类。 String 类表示字符串。Java 程序中的所有字符串文字,例如“abc”,都是作为此类的实例实现的。

字符串是常量;它们的值在创建后无法更改。字符串缓冲区支持可变字符串。因为 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");

并且您正在字符串对象“名称”上调用长度方法。

两者都是相同的,但一个区别是字符串是恒定的(不可变的)意味着一旦你创建了它,你就不能改变它,但你的薪水等级不是恒定的,你可以改变它。

为了更好地理解java,你可以阅读这本书。首先是Java

于 2013-08-06T07:37:30.020 回答
0

完全一样。obj 和 name 都是它们的类的实例。BUt 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 回答
0

你们男人有什么区别?第一个电话在 () 之间有什么?而name.length不是吗?那是因为方法红利是带参数的方法。它需要一个值,在这种情况下是一个整数或 int 来做一些事情。但 Name.length 并不意味着任何值,它只是返回字符串的保存长度。

或者你在哪里看到了不同之处?

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

其实是一样的……

对不起,如果这不是你的问题。

编辑:或者你的意思是构造函数?这是因为string在java中比较特殊,实际上是new String("lalala"); 是正确的。

于 2013-08-06T07:11:27.700 回答
0
 salary obj=new salary(); // You are initializing salary class

 obj.bonus(45000); // Your salary class contains bonus method and it takes
                      int argument

因此,您调用了红利方法并将 45000 解析为该方法。

 String name="Java lovely";  // You are define a String
 name.length(); // this will return the length of name String, no need input 
                argument and return int length 
于 2013-08-06T07:13:42.037 回答