Java中的Set,Get和Constructors

dww*_*n66 2 java constructor

尽管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)其他一些类/方法?

第三个问题有点深奥,但会帮助我设想更大的图景......这是我的学习风格,有利于我在调试时跟踪程序流的能力.这些getset方法表明了与我的"来"和"来自"的关系.例如,将值"传递给"构造函数,从get方法接收结果.在我看来,"to"和"from"会根据你的观点而改变.我认为,任何setMethod被一个对象设置参数,即使可变来自另一个类或方法,并且GetMethodget婷生成的对象(比如this.foo)用适当set的参数.没有其中物质getset被使用的,在主方法或与单个构造,"设置"独立类总是与发送参数和相关联的get总是与接收的对象与该参数相关联.那是一个很好的理解吗?还是我错过了一个重要的部分?

Jon*_*eet 8

问题1:

我认为这是四个构造函数......对吗?

不,该类有两个构造函数和两个方法.(getLong并且getString是方法.)

问题2:

为什么我不能这样做:

public class getFoo(int fooValue){
    foo=fooValue;
}
Run Code Online (Sandbox Code Playgroud)

好吧,那是试图用参数声明一个,并且你在get方法中设置一个值,这将是非常奇怪的.目前还不清楚你要在这里实现什么,但是这段代码完全无效.

问题3:

get和set方法表明了与我的"to"和"from"关系.

嗯,这不是真正的IMO 关系.关系建议比这些方法中的任何一种都更长远.setter通常以某种方式改变对象的状态,而getter通常只返回对象状态的某些方面.你的解释其余部分的含义并不是很清楚,因为你的术语有点快而且松散.例如:" get总是与接收具有该参数的对象相关联"对我来说真的没有意义.对象没有参数,方法/构造函数没有 - 并且getter可以获取原始值或引用...

我怀疑你会从阅读Java教程"类"部分中受益,该教程讨论了构造函数和方法.

  • @Downvoter:关注评论?(看起来有人只是简单地贬低*所有*这些答案,没有给出任何理由.这很有趣.) (6认同)