2013-10-08 2 views
0

привет им проблемы добавив имя строки инструктору существующего класса я сделал для coursename вы можете мне помочь исправить ошибки - это дает мне 8 ошибокНевозможно добавить новую переменную строку экземпляра существующего кода

import java.util.Scanner; 

общественности класс Gradebook {

private String courseName, instructorName; 

public GradeBook (String name) 
{ 
    courseName = name; 
} 

public GradeBook (String name) 
{ 
    instructorName = name; 
} 

public void setCourseName (String name) 
{ 
    CourseName = name; 
} 

public void setInstructorName (String name) 
{ 
    InstructorName = name; 
} 

public void getCourseName (String name) 
{ 
    return courseName; 
} 

public void getInstructorName (String name) 
{ 
    return instructorName; 
} 

public void displayMessage(); 
{ 
    System.out.printf("Welcome to the grade book for\n%s!\n\n", 
     getCourseName()); 
    System.out.printf("Your instructor for this course is\n%s!\n\n", 
     getCourseName()); 
} 

}

+0

класс является Gradebook. но он не позволит мне вставить весь код. вы можете помочь мне с полным кодом, пожалуйста, im at my whits end – user2850549

+0

Измените свой вопрос и добавьте оставшийся код. –

+0

вот другая часть публичную Gradebook (имя String) \t \t { \t \t \t \t \t \t \t \t courseName = имя; \t \t \t \t \t \t } \t \t \t общественного недействительными setInstructorName (Строка nameIns) \t \t {\t \t \t \t \t \t \t \t InstructorName = nameIns; \t \t \t \t \t \t } \t \t \t общественного недействительными setCourseName (имя String) \t \t {\t \t \t \t \t \t \t \t courseName = имя; \t \t \t \t \t \t} \t \t \t общественного Строка getInstructorName() \t \t { \t \t \t \t \t \t \t \t возвращение instructorName; – user2850549

ответ

4

From the Java Language Specification

Ошибка компиляции, чтобы объявить два конструктора с эквивалентными эквивалентами (§8.4.2) в классе.

и

Два метод [или] Конструкторы имеют ту же сигнатуру, если они имеют такое же имя и типов аргументов.

В вашем случае у вас есть два конструктора, которые принимают один параметр типа String. Другими словами, у вас есть два конструктора, которые имеют одну и ту же подпись, и компилятор этого не допустит.

Либо используйте один конструктор, который принимает два параметра String или использует сеттеры.

+0

спасибо, чувак, им действительно ничего нового, только в главе 3. не могли бы вы показать мне, как сделать 1 конструктор взять 2 строки? то я могу завершить программу. поскольку книга не охватывает этого. также сеттеры? Я добавил setCourseName в код, это то же самое? – user2850549

+0

@ user2850549 [Пройдите этот официальный учебник.] (Http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html) –

+0

Я действительно не хочу делать другой учебник, пока я делаю учебник : \ вы можете просто помочь мне без меня, чтобы пройти все это, иначе я просто потеряю трек – user2850549

0
public GradeBook (String name) 
{ 
    courseName = name; 
} 

public GradeBook (String name) 
{ 
    instructorName = name; 
} 

Хотя вы назначили значения двум переменным экземпляра внутри конструктора, для JVM он имеет такую ​​же подпись. У вас не может быть 2 конструктора с одинаковой подписью. Либо вы должны создать конструктор, запрашивающих 2 параметра или назначить одинаковые значения для обоих переменных экземпляра

public GradeBook (String cName, String iName) 
    { 
     courseName = cName; 
     instructorName = iName; 
    } 
Смежные вопросы