您好,在Java中,我对在main方法中将构造函数调用到对象中感到有点困惑。下面是一个例子
当我试图在main方法中创建一个Course对象时,eclipse说构造函数Course是未定义的,我不知道它为什么会发生 这是我的课程班及其结构您好,在Java中,我对在main方法中将构造函数调用到对象中感到有点困惑。下面是一个例子,java,class,oop,constructor,Java,Class,Oop,Constructor,当我试图在main方法中创建一个Course对象时,eclipse说构造函数Course是未定义的,我不知道它为什么会发生 这是我的课程班及其结构 public class Course{ private String CourseCode; private String day; private int StudentCount; private int Capacity; private double averageGrade; public Course(String
public class Course{
private String CourseCode;
private String day;
private int StudentCount;
private int Capacity;
private double averageGrade;
public Course(String CourseCode, String day, int StudentCount, int Capacity, double averageGrade){
this.CourseCode=CourseCode;
this.day = day;
this.StudentCount =StudentCount;
this.Capacity = Capacity;
this.averageGrade =averageGrade;
}
主要方法是尝试创建一个名为Course的对象
Course c = new Course();
既然已经定义了构造函数,就需要使用它指定的所有参数调用它
Course c = new Course(
"CMSC-101",
"Wednesday",
/* student count */ 20,
/* capacity */ 25,
/* average grade */ 4.0);
通过在main方法的上面一行中写入,您正在调用一个默认构造函数,即没有作为参数传递的参数,在这种情况下,字段是根据这些默认值初始化的
而在代码中
public Course(String CourseCode, String day, int StudentCount, int Capacity, double averageGrade){
this.CourseCode=CourseCode;
this.day = day;
this.StudentCount =StudentCount;
this.Capacity = Capacity;
this.averageGrade =averageGrade;
}
是一个参数化contsructor,即传递一些参数值,并使用该参数设置变量的某些状态
在main中,方法会遇到编译问题,因为它在类上找不到默认构造函数
解决方案
要么通过Param-like
Course c = Course("ABC", "Monday", 23, 40, 2.30);
或者创建一个默认构造函数这两个构造函数都可以存在于类中,因为您正在创建参数化构造函数,并且它正在替换类的默认构造函数,并且在创建对象时,您没有传递任何参数 解决这个问题有两种方法 在类中创建一个非参数化构造函数以及参数化构造函数 公共课程{} 在构造函数中创建对象传递参数时。 课程c= 课程代码,星期一,10100,90.5
课程c=新课程//构造函数课程未定义您定义的构造函数以课程代码、日期、学生人数、容量和平均成绩为参数。与任何方法调用一样,您现在需要将一些值传递给构造函数,以匹配您定义的签名。Java仅在不定义任何其他构造函数的情况下为您生成默认构造函数。请看:请尽量使用正确的拼写,而不是你的。你建议我用引号来写,但我还是犯了一个错误。你犯了什么错误?
Course c = Course("ABC", "Monday", 23, 40, 2.30);