gpt4 book ai didi

java - 构造函数 ValueChanger() 未定义

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

我是 Java 新手,遇到了一些问题,如果这是一个显而易见或经常回答的问题,我很抱歉,但我已经查看了大约 10 个此类类型的其他错误,但无法找出我的问题。我在主程序中的标记行上收到错误,表示构造函数未定义。如有任何帮助,我们将不胜感激。

public class ValueChanger {

private static int myInt1;
private static int myInt2;
private static int myInt3;
private static int myIntSum;

public static void main(String[] args)
{
ValueChanger constructor = new ValueChanger(); //error here
ValueChanger changeValues = new ValueChanger(); //and here
changeValues.changingValues(myInt1, myInt2, myInt3, myIntSum);
}

public ValueChanger(int myInt1, int myInt2, int myInt3, int myIntSum)
{
myInt1 = 1;
myInt2 = 2;
myInt3 = 3;
myIntSum = myInt1 + myInt2 + myInt3;
}

public int changingValues(int myInt1, int myInt2, int myInt3, int myIntSum)
{
myInt1 = myInt2;
myInt2 = myInt3;
myInt3 = myInt1;
myIntSum = myInt1 + myInt2 + myInt3;
return myIntSum;
}

}

最佳答案

仔细阅读:

  1. 如果您不在类中编写任何构造函数,则编译器会提供默认的无参构造函数。
  2. 当您没有为类显式编写无参构造函数时,只要构建的对象不带参数构造函数,编译器就不会提示。因为编译器允许默认构造函数创建对象,而它本身就是一个无参构造函数。
  3. 如果您只编写带有参数的构造函数并且没有定义无参构造函数,则编译器不会提供默认构造函数,在这种情况下,如果您尝试使用无参构造函数创建对象,它会在您的类中查找无参构造函数。你的情况中不存在这种情况。所以你会得到一个错误,说默认构造函数不可用。如果您想阻止创建没有任何数据的对象,这是一个很好的方法。

示例:认为学生对象必须有与其关联的学号。为了实现这一点,请定义一个单参数构造函数,并且不要定义无参数构造函数。

错误的解决方案:添加默认构造函数-

public ValueChanger()
{
}

有关更多详细信息,请参阅here

关于java - 构造函数 ValueChanger() 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749044/

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