Member 14637431 Ответов: 1

Как избавиться от ошибки не удается найти символ


У меня возникли проблемы с программой, над которой я работаю. Я продолжаю получать не может. найдите ошибку символа, и я не могу понять, почему. Любая помощь была бы очень кстати.

Вот такие ошибки
Course.java:43: error: cannot find symbol
				if(residency.equals("IC")){
				   ^
  symbol:   variable residency
  location: class Course
Student.java:64: error: cannot find symbol
	for(int i=0;i<courses.tuition();i++){
	                     ^
  symbol:   method tuition()
  location: variable courses of type ArrayList<Course>
Student.java:69: error: cannot find symbol
		tuition=c.getTuition()+tuition;
		         ^
  symbol:   method getTuition()
  location: variable c of type Course


а вот и код

public class Course{

	//attributes
	private String courseName;
	private String courseId;
	private int creditHours;

	public Course(String argcourseName, String argcourseId, int argcreditHours){
		courseName=argcourseName;
		courseId=argcourseId;
		creditHours=argcreditHours;

	}


	public void setCourseName(String arg){

		courseName=arg;
	}
	public void setCourseId(String arg){
		courseId=arg;
	}
	public void setcreditHours(int arg){

		creditHours=arg;
	}

	public String getCourseName(){
		return courseName;
	}

	public String getCourseId(){
		return courseId;
	}

	public int getCreditHours(){
		return creditHours;
	}

	public double calculateTuition(){
			double tuition=0;

				if(residency.equals("IC")){
    			tuition=139.04;
    		}

    		if(residency.equals("OOC")){
    			tuition=164.22;
    		}

    		if(residency.equals("OOS")){
    			tuition=315.79;
    		}

			return tuition;
		}

	}

и
<pre>import java.util.ArrayList;

public class Student{
	private String name;
	private String studentnumber;
	private String residency;

	private ArrayList<Course> courses = new ArrayList<Course>();

	public Student(String argName, String argStudentNumber, String argResidency){
		name=argName;
		studentnumber=argStudentNumber;
		residency=argResidency;
	}

	public void setName(String arg){
		name=arg;
	}

	public String getName(){
		return name;
	}

	public void setStudentNumber(String arg){
		studentnumber=arg;
	}

	public String getStudentNumber(){
		return studentnumber;
	}

	public void setResidency(String arg){
		residency=arg;
	}

	public String getResidency(){
		return residency;
	}

	public void addCourse(Course arg){
		courses.add(arg);

	}

	public double calculateCreditHours(){
	double creditHours=0;

	for(int i=0;i<courses.size();i++){
		//grabs next pizza on list
		Course c=courses.get(i);

		//adds that pizza's price to running total
		creditHours=c.getCreditHours()+creditHours;

		//price=pizzas.get(i).calculatePrice()+price;

	}
	return creditHours;
}

public double calculateTuition(){
	double tuition=0;

	for(int i=0;i<courses.tuition();i++){
		//grabs next pizza on list
		Course c=courses.get(i);

		//adds that pizza's price to running total
		tuition=c.getTuition()+tuition;

		//price=pizzas.get(i).calculatePrice()+price;

	}


	return tuition;

}

}


Что я уже пробовал:

я пытался убедиться, что нет никаких логических ошибок и что у меня нет никаких опечаток

gggustafson

В рамках метода calculateTuition в классах курсов, где определяется резидентство? Я бы также предложил посмотреть на геттеры/сеттеры для части вашего решения.

1 Ответов

Рейтинг:
2

OriginalGriff

residency это не часть класса курса, это часть класса студента:

public class Student{
   private String name;
   private String studentnumber;
   private String residency;
   ...

Таким образом, вы не можете получить доступ к нему внутри класса курса, если у вас нет экземпляра класса Student для работы.

Подумайте об этом: когда вы рассчитываете стоимость обучения на курс в реальном мире, вы применяете скидки в зависимости от ситуации студента. Не зная, на какого студента вы рассчитываете, вы не можете применять никаких скидок!

Что вам нужно сделать, так это передать экземпляр Student в calculateTuition метод, так что он должен использовать это, чтобы применить скидки.

Другие ваши проблемы связаны с тем, что вы используете неправильные имена методов: courses.tuition вместо courses.calculateTuition и тому подобное.