尽管有 Java 教程、Wikipedia 搜索、stackoverflow 巨魔以及数小时的代码示例阅读,但构造函数仍然让我感到困惑。我一直在尝试回答三个相关的问题,以帮助我更好地理解构造函数。
首先,我一直认为构造函数的名称需要与其类相同。考虑:
public class Money {
public Money(long l) {
this.value = l;
}
public Money(String s) {
this.value = toLong(s);
}
public long getLong() {
return this.value;
}
public String getString() {
return toString(this.value);
}
}
我认为这是四个构造函数……对吗?因此,似乎构造函数的名称与包含它们的类的名称不同。有人可以确认吗?
其次,我似乎对理解 set 和 get 方法有障碍。考虑:
public class GetSetSample {
public int getFoo() {
return int Foo;
}
public void setFoo(int fooValue) {
int Foo = fooValue;
}
}
为什么我不能这样做:
public class getFoo(int fooValue){
foo=fooValue;
}
并foo = getFoo(12)
从其他类/方法中使用?
第三个问题有点深奥,但会帮助我构想更大的图景……这是我的学习方式,有利于我在调试时跟踪程序流程的能力。get
and方法暗示了我的set
“to”和“from”关系。例如,将值“传递给”构造函数,“从”get 方法接收结果。在我看来,“to”和“from”会根据你的观点而改变。我认为 anysetMethod
正在为一个对象设置参数,即使该变量来自另一个类或方法,并且GetMethod
正在使用适当的参数get
对结果对象(例如)进行设置。无论在哪里或this.foo
set
get
set
在具有单个构造函数的主方法或独立类中使用时,“set”始终与发送参数相关联,并且get
始终与接收具有该参数的对象相关联。这是一个很好的理解吗?还是我错过了一个重要的部分?