我正在学习Java,并且我已经知道方法使用括号来传递参数.但是,我也注意到有时候我看到代码对我来说看起来像一个方法,但它没有括号.
MyObject.something()
MyObject.somethingElse
Run Code Online (Sandbox Code Playgroud)
whereElse没有括号.我假设这类似于arrayList具有size方法来获取其大小:
myList.size()
Run Code Online (Sandbox Code Playgroud)
而数组的长度可以得到它的大小,而没有括号:
myArray.length
Run Code Online (Sandbox Code Playgroud)
我的假设是否正确?如果没有,有什么区别? 这可能是一个基本问题,但由于我需要解释这个问题的数量,我在搜索它时遇到了麻烦.
somethingElse是属性(数据成员),而不是方法.访问该成员时,不会运行类中的代码,这与运行类中的代码的方法不同.
这是一个例子:
public class Foo {
public int bar;
public Foo() {
this.bar = 42;
}
public int getBlarg() {
// code here runs when you call this method
return 67;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您创建一个Foo对象:
Foo f = new Foo();
Run Code Online (Sandbox Code Playgroud)
...你可以在没有parens的情况下进入酒店 bar:
System.out.println(f.bar); // "42"
Run Code Online (Sandbox Code Playgroud)
...你可以使用parens 调用该方法getBlarg:
System.out.println(f.getBlarg()); // "67"
Run Code Online (Sandbox Code Playgroud)
当您调用时getBlarg,getBlarg方法中的代码将运行.这与访问数据成员根本不同foo.
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |