以下代码基于Java 这里,着名的方法“toUpperCase()”可以这样调用:
String s = new String("abc");
String ss = s.toUpperCase();
//result: ss = "ABC"
对于此:s.toUpperCase()
我们没有向方法传递值,因此此方法不能具有有意义的返回值。
为了解释所谓的无意义返回值,这里有一个例子:
//not pass a value to the method
String toUpperCase(){
...
return ???;
}
如上所述,返回值与名为“s”的对象无关。 (调用非参数方法通常独立于对象)。如果我调用这个非参数方法:String ss = s.toUpperCase();
如何返回与对象“s”有任何关系的值
以下称为有意义:
//pass a value to the method
static String toUpperCase(String str){
.... //to change the "str" into uppercase
return str;
}
现在我可以像这样调用方法toUpperCase():
String ss = String. toUpperCase(s);
由于我将“s”(它的地址)传递给方法,我可以做任何我希望更改对象并返回有意义的返回值的内容。
s.toUpperCase()
有一个合理的怀疑。因为它无法返回有意义的返回值。
答案 0 :(得分:1)
首先,术语。 s
是一个实例。
如何返回与对象“s”具有任何关系的值
你明白this
吗?例如,dog.getName()
如何返回该dog
实例名称的“有意义的值”?
The char[]
of the String
object named s
is stored within that instance,非常类似于String name
对象的Dog
。
class Dog {
String name;
public String getName() { return name; } // or 'return this.name;'
}
加分:Source code of toUpperCase()
implementation,它会调用Character.toUpperCase(c)
,因为char
基元本身没有toUpperCase
方法。