尽管Java教程,维基百科搜索,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);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是四个构造函数......对吗?因此,它似乎是构造不是命名一样包含它们允许类.有人可以证实吗?
其次,我似乎有一个阻止理解集合和获取方法的块.考虑:
public class GetSetSample {
public int getFoo() {
return int Foo;
}
public void setFoo(int fooValue) {
int Foo = fooValue;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做:
public class getFoo(int fooValue){
foo=fooValue;
}
Run Code Online (Sandbox Code Playgroud)
并使用foo = getFoo(12)其他一些类/方法?
第三个问题有点深奥,但会帮助我设想更大的图景......这是我的学习风格,有利于我在调试时跟踪程序流的能力.这些get和set方法表明了与我的"来"和"来自"的关系.例如,将值"传递给"构造函数,从get方法接收结果.在我看来,"to"和"from"会根据你的观点而改变.我认为,任何setMethod被一个对象设置参数,即使可变来自另一个类或方法,并且GetMethod是get婷生成的对象(比如this.foo)用适当set的参数.没有其中物质get或set被使用的,在主方法或与单个构造,"设置"独立类总是与发送参数和相关联的get总是与接收的对象与该参数相关联.那是一个很好的理解吗?还是我错过了一个重要的部分?
问题1:
我认为这是四个构造函数......对吗?
不,该类有两个构造函数和两个方法.(getLong并且getString是方法.)
问题2:
为什么我不能这样做:
Run Code Online (Sandbox Code Playgroud)public class getFoo(int fooValue){ foo=fooValue; }
好吧,那是试图用参数声明一个类,并且你在get方法中设置一个值,这将是非常奇怪的.目前还不清楚你要在这里实现什么,但是这段代码完全无效.
问题3:
get和set方法表明了与我的"to"和"from"关系.
嗯,这不是真正的IMO 关系.关系建议比这些方法中的任何一种都更长远.setter通常以某种方式改变对象的状态,而getter通常只返回对象状态的某些方面.你的解释其余部分的含义并不是很清楚,因为你的术语有点快而且松散.例如:" get总是与接收具有该参数的对象相关联"对我来说真的没有意义.对象没有参数,方法/构造函数没有 - 并且getter可以获取原始值或引用...
我怀疑你会从阅读Java教程的"类"部分中受益,该教程讨论了构造函数和方法.
| 归档时间: |
|
| 查看次数: |
16496 次 |
| 最近记录: |