Java 在类中设置值无效
我有一门课叫货币Java 在类中设置值无效,java,class,methods,Java,Class,Methods,我有一门课叫货币 public class Monetary { double value; String type; public Monetary() { value = 0; type = ""; } public double getValue() { return value; } public void setValue(double x) {
public class Monetary
{
double value;
String type;
public Monetary()
{
value = 0;
type = "";
}
public double getValue()
{
return value;
}
public void setValue(double x)
{
x = this.value;
}
我正在测试get和set方法,所以我制作了一个测试类,如下所示
public class test
{
public static void main(String [] args)
{
double test = 5000;
Monetary testM = new Monetary();
testM.setValue(5000);
System.out.println(testM.getValue());
}
}
问题是java打印的结果不是5000.0,而是0。我不明白为什么会这样。这些方法是否正确?在代码中,您将
值
分配给参数x
,它应该是相反的
public void setValue(double x){
this.value = x;
}
问题出在
setValue
方法中:
public void setValue(double x) {
x = this.value;
}
如果要为参数指定属性的当前值,则该值应为向后:
public void setValue(double x) {
this.value = x;
}
请注意,即使这样做,您也会得到类似于5000.0000000…
的输出。为了修复结果,您可以使用或:
或
试试这个:
public void setValue(double x)
{
this.value = x;
}
您正在为传递的参数
x
指定值的默认值。你一定做了完全相反的事。用传递的x
值分配值
因此,这种情况不是发生在this.value=5000
,而是发生在x=0
您正在为参数(双x)分配int-value的值,该值不起任何作用,因为您是返回值,所以您要做的是
public class Monetary
{
double value;
String type;
public Monetary()
{
value = 0;
type = "";
}
public double getValue()
{
return value;
}
public void setValue(double x)
{
value = x;//change this
}
哇,一个愚蠢的错误,现在很尴尬。非常感谢。
public void setValue(double x)
{
this.value = x;
}
public void setValue(double x){
this.value = x;
}
public class Monetary
{
double value;
String type;
public Monetary()
{
value = 0;
type = "";
}
public double getValue()
{
return value;
}
public void setValue(double x)
{
value = x;//change this
}