java中没有括号
我正在学习Java,我已经了解到方法使用括号来传递参数。然而,我也注意到,有时我看到的代码在我看来像是一个方法,但它没有括号java中没有括号,java,parentheses,Java,Parentheses,我正在学习Java,我已经了解到方法使用括号来传递参数。然而,我也注意到,有时我看到的代码在我看来像是一个方法,但它没有括号 MyObject.something() MyObject.somethingElse 其中有些东西没有括号。我假设这类似于arrayList使用size方法获取其大小: myList.size() 而数组有长度来获取其大小,但没有括号: myArray.length 我的假设正确吗?如果没有,区别是什么? 这可能是一个基本的问题,但由于我需要解释这个问题的字数太
MyObject.something()
MyObject.somethingElse
其中有些东西没有括号。我假设这类似于arrayList使用size方法获取其大小:
myList.size()
而数组有长度来获取其大小,但没有括号:
myArray.length
我的假设正确吗?如果没有,区别是什么?
这可能是一个基本的问题,但由于我需要解释这个问题的字数太多,所以我很难找到它
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;
}
}
如果创建Foo
对象:
Foo f = new Foo();
…您可以访问属性栏
,无需参数:
System.out.println(f.bar); // "42"
…您可以使用参数调用方法getBlarg
:
System.out.println(f.getBlarg()); // "67"
调用getBlarg
时,getBlarg
方法中的代码将运行。这与访问数据成员foo
myList.size()
调用列表类中定义的方法(公共定义)有根本不同
myArray.length
调用数组类中的属性而不是方法
public class MyClass{
public int length;
public int size(){
....
}
}
MyClass mc =new MyClass();
mc.length;
mc.size();
这是名为someObject的实例化对象的触发方法
someObject.something();
这是访问名为someObject的对象的属性(最有可能是公共属性)
这是一个类字段,它不是
私有
字段(通常它可以是受保护的、包或公共的),因此您可以直接从类中获取它。通常字段是私有的,因此您不能在类定义之外这样对待它。它可以打包或保护+1以使用正确的术语“字段”,而不是不正确的术语“属性”,就像其他一些答案一样。
someObject.name