我們使用Java在包中使用我們正在使用2個文件。 第一個說StudentModel.java第二個說StudentView.java。在另一個編譯時未識別的一個類的對象
studentModel.java的基本結構是:
package student;
public class StudentModel{
private String name;// name of student
private int roll; // roll of student
private String date;
private int marks[]=new int [6];
private String sub[]=new String[6];
private int total;
/*to get the details of a student*/
public int getRoll();
public String getDate();
public String getName();
public void setDate(String dat);
public void setName(String nam);
public void setRoll(int roll);
public void setSubjectAndMarks(int [] mar,String [] subject){
for(int i =0;i<6;i++) {
marks[i]=mar[i];
sub[i]=subject[i];
}
}
public void displaySubjectAndMarks(){
for(int y=0;y<5;y++) {
System.out.println(sub[y]+"\t \t\t "+marks[y]);
}
}
public int getTotal();
}
和StudentView.java的基本結構是:
package student;
import java.util.*;
public class StudentView {
/*displaying the marksheet of a particular student*/
public void display(StudentModel Obj) {
System.out.println("-------------------MARKSHEET---------------");
System.out.println("\nName:"+Obj.getName()+"\tDate : "+Obj.getDate());
System.out.println("------------------------------------");
System.out.println("ROLL NO :\t\t" +Obj.getRoll());
System.out.println("-------------------------------");
System.out.println("SUBJECT \t\t MARKS");
Obj.displaySubjectAndMarks();
System.out.println("TOTAL"+Obj.getTotal());
}
}
然後開始我編譯StudentModel.java沒有給出任何錯誤。然後我編譯StudentView.java由此引發此錯誤:
StudentView.java:18: error: cannot find symbol
public void display(StudentModel Obj) {
symbol: class StudentModel
location: class StudentView
1 error
我從終端編譯和,即使添加了類路徑之後,我得到這個錯誤:
你是如何編譯的(命令行,來自IDE內部;如果你不使用IDE,那麼你會使自己的生活變得更加困難)。如果從命令行編譯,則必須向javac添加「-classpath」,其中「-classpath」包含'studentModel'類所在的目錄。順便說一句,請了解關於類名的Java約定(以Capital開頭),方法(camelCase)等等。它將使其他Java人員更容易閱讀您的代碼。 – KevinO
你聽起來像一個語法錯誤。請提供給出錯誤的實際代碼。 public void display(studentModel Obj);'''是無效的java。 –
我從Ubuntu 14的命令行編譯。04,正如你所建議@KevinO我添加了-classpath到javac,儘管如此,我收到了同樣的錯誤。您可以使用我已包含的圖片進行驗證。 –