Редактировать: Последующая рекомендация из комментариев и ответа ниже. Я узнал некоторую полезную информацию и исправил проблему; это была комбинация неправильной компиляции и использования моего имени класса вместо объявления переменной. Код обновляется ниже.Использование другого класса в том же пакете, но отдельный файл
Это мой первый раз, когда я использовал пакеты в java, и это меня сбивает с толку. Я полностью потерян; как я могу создать объект из класса, определенного в другом файле? Я искал переполнение и другие источники, но пока ничего не помогло.
Это моя лучшая попытка до сих пор (большая часть кода не указана): Однако в Advisor.java мой компилятор говорит, что не может найти Symbol (Student) ИЛИ (Student []). Каждый экземпляр упоминается, хотя я ясно определенный ученик в Student.java. Мой конструктор в Student.java должен быть общедоступным.
Student.java
package bookKeeping;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Scanner;
import java.util.Date;
final class Majors {
public static String[] majors = null;
}
public final class Student {
private static String fName;
private static String mName;
private static String lName;
private static String classYear;
private static String major;
private static String ID;
public Student() {
this.fName = "First_Name";
this.mName = "";
this.lName = "Last_Name";
this.classYear = "00/0000";
this.major = "Undefined";
this.ID = "0000-0000";
}
public static String ToString() {
}
public static String SetNames(String name) {
}
public static String SetID(String id) {
}
public static String SetMajor(String m) {
}
public static String SetClassYear(String date) {
}
}
Advisor.java
package bookKeeping;
import bookKeeping.Student;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
class Construct {
public static String[] names(String fileName) {
String[] studentInfo = null;
Student[] studentName = null;
BufferedReader reader = null;
int a = 0, position = 0, lineSafe = 0;
try {
String line;
reader = new BufferedReader(new FileReader(new File(fileName)));
System.out.println("\nThis program assumes MM/dd/YYYY and MM/YYYY");
line = reader.readLine();
a = Integer.parseInt(line);
studentInfo = new String[a];
studentName = new Student[a];
studentName[lineSafe] = new Student();
while ((line = reader.readLine()) != null) {
String kappa = null;
switch (position) {
case 0: kappa = studentName[lineSafe].SetNames(line);
break;
case 1: kappa = studentName[lineSafe].SetID(line);
break;
case 2: kappa = studentName[lineSafe].SetMajor(line);
break;
case 3: kappa = studentName[lineSafe].SetClassYear(line);
break;
}
if (kappa != null) {
System.out.println(kappa);
System.exit(0);
}
if (position == 3) {
position = 0;
studentInfo[lineSafe] = studentName[lineSafe].ToString();
studentName[++lineSafe] = new Student();
} else {
position++;
}
}
} catch (IOException e1) {
System.out.println("\nIOEXCEPTION\n");
System.exit(0);
} finally {
try {
reader.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
return studentInfo;
}
}
public class Advisor {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("\nError: Files missing from Command Line\n");
System.exit(0);
}
String[] studentInfo = Construct.names(args[0]);
}
}
Как вы компилируете? –
Проблема заключается в следующем: 'Student [lineSafe] = new Student();' не является допустимым оператором –
Я просто пытался скомпилировать каждый отдельно (например, javac Student.java и javac Advisor.java). Дайте мне знать, если вы знаете, как это правильно скомпилировать! Хорошо, я пойму, почему это неправильно. Спасибо. – user3834916