gpt4 book ai didi

java - Java 中的设置、获取和构造函数

转载 作者:行者123 更新时间:2023-12-03 20:29:43 26 4
gpt4 key购买 nike

尽管有 Java 教程、维基百科搜索、stackoverflow trolling 和数小时的代码示例阅读,构造函数仍然让我感到困惑。我一直在尝试回答三个相关问题,以帮助我更好地理解构造函数。

首先,我的印象是构造函数需要与它们的类同名。考虑:

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)

第三个问题有点深奥,但会帮助我构思大局……这是我的学习风格,有利于我在调试时跟踪程序流程的能力。 getset 方法向我暗示了一种“to”和“from”的关系。例如,将值“传递给”构造函数,从 get 方法“接收”结果。在我看来,“到”和“从”会根据您的观点而改变。我认为任何 setMethod 都是为对象设置参数,即使变量来自另一个类或方法,并且 GetMethodget结果对象(例如,this.foo)和适当的 set 参数。无论在何处使用 getset,在 main 方法或具有单个构造函数的独立类中,“set”始终与发送参数和 get 始终与接收具有该参数的对象相关联。这样理解好吗?还是我错过了一个重要的部分?

最佳答案

问题一:

I see this as four constructors...correct?

不,那个类有两个构造函数和两个方法。 (getLonggetString 是方法。)

问题二:

Why can't I just do this:

public class getFoo(int fooValue){
foo=fooValue;
}

好吧,这是在尝试声明一个带有参数的,并且您还在get 方法中设置一个值,这将非常奇怪。目前尚不清楚您要在此处实现的目标,但该代码完全无效。

问题三:

The get and set methods suggest a "to" and "from" relationship to me.

嗯,这不是真正的关系 IMO。一段关系意味着比这两种方法中的任何一种都更长期。 setter 通常以某种方式更改对象的状态,而 getter 通常只返回对象状态的某些方面。您的其余解释的含义并不是很清楚,因为您在使用术语时有点松懈。例如:“get 始终与接收具有该参数的对象相关联”对我来说真的没有意义。对象没有参数,方法/构造函数有 - getter 可以获取原始值或引用...

我想您会从阅读 "Classes" part of the Java tutorial 中受益,其中讨论了构造函数和方法。

关于java - Java 中的设置、获取和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com