封装的构造函数错误

Constructor error with encapsulation

我的代码使用封装(数据隐藏)在 3 个不同的文件中,当我尝试调用 类 来自其他 2 个文件。我将把第一个文件中的代码放到第三个文件中。对我做错了什么有什么建议吗?

// FIRST DOCUMENT
public class CollegeCourse { //class name

//variables
String deptName;
int courseNum;
int credits = 3;
double fee;

  //constructor
  public CollegeCourse(String department, int course, int Credits) {

     deptName = department;
     courseNum = course;
     credits = Credits;
     fee = credits * 120;
  }

  //getters setters
  public String getdepartment() {
     return deptName;      
  }
  public String setdepartment(String dept) {
     return dept = deptName;      
  }
  public int getcourse() {
     return courseNum;      
  }
  public int setcourse(int c) {
     return c = courseNum;      
  }
  public int getCredits() {
     return credits;      
  }      
  public int setCredits(int cred) {
     return cred = credits;      
  }

  public void display()
  {
  System.out.println("Department: " + deptName);
  System.out.println("Course Number: " + courseNum);
  System.out.println("Credits: " + credits);
  System.out.println("Fee: $" + fee);
  }
}
//SECOND DOCUMENT
public class LabCourse extends CollegeCourse { //polymorphism extending         CollegeCourse class into LabCourse class. 

//constructor
public LabCourse(String department, int course, int Credits){
//add 50 dollars to the fee 
  super(department, course, Credits);
  fee = fee + 50;
}
//display the course
  public void display(){
  System.out.print("This course is a lab course" + fee);
  System.out.println("Department: " + deptName);
  System.out.println("Course Number: " + courseNum);
  System.out.println("Credits: " + credits);
  System.out.println("Fee: $" + fee);
  }
}    
//THIRD DOCUMENT MAIN HEADER
import java.util.Scanner;
public class UseCourse {

public static void main(String[] args){ 

  String s, c, cd;

  Scanner input = new Scanner(System.in);
  System.out.print("Enter: BIO, CHEM, ENG, MATH: ");
  s = input.nextLine();   

  System.out.print("What is the course number: ");
  c = input.nextLine();      

  System.out.print("How many credits: ");
  cd = input.nextLine();      

  if(s.equals ("BIO") || s.equals ("CHEM")){
     LabCourse lc = new LabCourse(department, course, Credits); //here is my problem, it  can't find the CollegeCourse class department, course,//and credits...
     lc.display();       
  }

  else {
     CollegeCourse cc = new CollegeCourse(department, course, Credits); //here is my problem, it  can't find the CollegeCourse class department, course,//and credits...
     cc.display();
  }

   }  
 }

这是我遇到的错误。

UseCourse.java:24: error: cannot find symbol
     LabCourse lc = new LabCourse(department, course, Credits);
                                  ^

它会针对每个错误重复 "department, course, Credits"

UseCourse.java:29: error: cannot find symbol
     CollegeCourse cc = new CollegeCourse(department, course, Credits);
                                                      ^

你的构造函数调用中的参数都是错误的。 departmentcourseCredits 均未定义,因此您需要使用 sccd,因为它们是您用于输入的变量。

此外,您需要将 ccd 读取为整数并将它们传递给您的构造函数,如下所示:

System.out.print("What is the course number: ");
int c = input.nextInt();

System.out.print("How many credits: ");
int cd = input.nextInt();

// ...

LabCourse lc = new LabCourse(s, c, cd);