当前位置: 首页 > 知识库问答 >
问题:

程序未看到重载的构造函数

韶云瀚
2023-03-14

我的代码中出现了一个错误(这是我作业的最后一行,我似乎无法解决它),这是addStudent方法中的错误。它说我试图访问一个重载的构造函数实际上是试图访问默认的构造函数,并且没有可供我通过的变量。所以,简单来说:

“StudentArray[i]=新学生(firstname,lastname,gender,sClass,sID);”

谢谢你的帮助!

--安德烈尔

public void Student() 
{
    setFirstName("Unknown");
    setLastName("Unknown");
    setGender("Unknown");
    setClass("Freshman");
    setID("0000");
}

public void Student(String firstname, String lastname, String gender, String sClass, String sID) 
{
    setFirstName(firstname);
    setLastName(lastname);
    setGender(gender);
    setClass(sClass);
    setID(sID);
}

public static boolean addStudent(String firstname, String lastname, String gender, String sClass, String sID)
{
    for (int i=0; i<studentArray.length; i++) 
    {
        if (studentArray[i] == null)
        {
            studentArray[i] = new Student(firstname, lastname, gender, sClass, sID);
            totStudent++;
        }else {JOptionPane.showMessageDialog(null, "Max students reached.");}
    }
    return true;
}

共有1个答案

糜昌胤
2023-03-14

您使用void声明“构造函数”,实际上使它们成为void方法,而不是构造函数。因此,编译器只能使用默认构造函数,这就是您收到那个错误的原因。所以:您应该在试图定义构造函数的任何地方删除void关键字。

 类似资料:
  • null 我不太确定如何处理我的代码,以下是我得到的: 我只是不知道我应该打什么。我相信我已经完成了第一个重载构造函数,但我对此还是新手。 那么,我应该做些什么来使重载构造函数工作呢? 我对Java和面向对象编程非常陌生。

  • 本文向大家介绍C++中构造函数重载,包括了C++中构造函数重载的使用技巧和注意事项,需要的朋友参考一下   当类中没有定义构造函数时,C++编译器自动提供无参构造函数和拷贝构造函数   当类中定义了任意的拷贝构造函数,C++不提供无参构造函数。 系统自动提供的构造函数   无参构造函数      函数体为空   拷贝构造函数      简单的进行成员变量的值复制      Test t1;    

  • 假设我们有以下简单的代码: 这段代码使用clang编译并打印“T”,但使用gcc我们有以下错误: 我的问题是哪个编译器有bug,gcc还是叮当声?

  • 本文向大家介绍解析C++中构造函数的默认参数和构造函数的重载,包括了解析C++中构造函数的默认参数和构造函数的重载的使用技巧和注意事项,需要的朋友参考一下 C++构造函数的默认参数 和普通函数一样,构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。 【例】 程序运行结果为: 程序中对构造函数的定义(第12-16行)也可以改写成参数初始化

  • Spring靴和jpa给出了错误 项目的github链接https://github.com/dishankgoyal/springsBoot/tree/master/faculty_project