我理解Java中方法的基本概念。你调用它,它的代码被执行,它返回一个值。
String对象的 length()
方法(比如str
)会返回int
值,因此我们将其称为:int x = str.length();
,for(int i = 0; i < str.length(); i++)
,等
substring(int)
和substring(int, int)
方法(也属于String类)返回一个String值,我们使用它,如String s = str.substring(3, 5);
,String removed = str.substring(0, i)+str.substring(i+1);
等。
所有这些示例都是Java中的有效语句。
但是,这些不是:5;
或"Hello there!";
或'@';
或add(2, 3);
其中add()
返回int值。
这是非常基本的。但我的问题是:str.length();
,str.charAt(0);
和直接调用的几乎所有String方法都是有效语句,即使它们的返回类型没有void
。
即使是Scanner对象也可以像scannerObject.nextLine();
一样直接调用方法,并且是一个有效的语句。
为什么?为什么5;
无效,str.length()
有效,即使它也可能等同于5;
?什么构成Java语句,为什么本地方法无效语句,为什么允许对象方法调用,即使它们的功能相似并返回相同的东西?