Я очень запутался, потому что как можно получить ArrayList из другого метода и распечатать его другим методом? Итак, моя проблема здесь в том, что мой код касается системы регистрации студентов, в которой есть 2 метода: admin и student, поэтому из метода администратора мы можем добавлять массивы, которые мы хотим, и когда мы распечатываем их в методе администратора, он работает нормально. Но когда я пытаюсь распечатать это в студенческом методе, кажется, что это не работает. Вот код:
import java.util.*;
public class myStudent {
boolean logins = false;
int myId;
String addCourse="No Record";
String NewCourse;
String removeCourse="No Record";
int modifyCourse;
String password = null;
ArrayList test = new ArrayList();
public static void main(String[] args){
myStudent obj0 = new myStudent();
obj0.login();
}
void login(){
myStudent obj1 = new myStudent();
Scanner myScanner = new Scanner(System.in);
System.out.println(" **Student Registration**");
System.out.println("\t--LOGIN--");
System.out.println("\n1)Login as student \n2)Login as admin \n3)Exit");
System.out.print(">");
int optionMenu = myScanner.nextInt();
if(optionMenu == 1){
obj1.showMenuStudent();
}
else if(optionMenu == 2){
obj1.showMenuAdmin();
}
else if(optionMenu == 3){
System.out.println("THANK YOU!");
System.exit(0);
}
}
void showMenuAdmin(){
if (!logins) {
//String myPass;
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--LOGIN--");
try{
System.out.print("Admin ID : ");
myId = myScanner.nextInt();
}
catch(Exception e){
System.out.println("INVALID ID!");
System.exit(0);
}
System.out.print("Admin Password : ");
password = myScanner.next();
logins = true;
}
char option;
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--WELCOME--");
System.out.println("A. Create Course");
System.out.println("B. Drop Course");
System.out.println("C. Modify Course");
System.out.println("D. Display Course");
System.out.println("E. Logout");
do
{
System.out.print("Enter An Option > ");
option = myScanner.next().charAt(0);
System.out.print("\n");
switch(option){
case 'A':
System.out.print("Create Course(Maximum is 6) :");
addCourse = myScanner.next();
test.add(addCourse);
System.out.println("\nCourse Added Successfully!");
display();
break;
case 'B':
Object[] myArray = test.toArray();
System.out.println("Current Courses List: ");
int k=1;
for(int i=0; i < myArray.length; i++){
System.out.println(k + ". " + myArray[i]);
k++;
}
System.out.println("Enter course name you want to remove :");
System.out.println("Enter 'back' to cancel");
System.out.print(">");
removeCourse = myScanner.next();
if(removeCourse!="back"){
test.remove(removeCourse);
System.out.println("\nSucceed");
display();
}else
display();
break;
case 'C':
Object[] myArray2 = test.toArray();
System.out.println("Current Courses List: ");
int m=1;
for(int i=0; i < myArray2.length; i++){
System.out.println(m + ". " + myArray2[i]);
m++;
}
System.out.println("Select course you want to modify :");
System.out.print(">");
modifyCourse = myScanner.nextInt();
try{
if(modifyCourse==1){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(0, NewCourse);
System.out.println("Succeed!");
display();
}
else if(modifyCourse==2){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(1, NewCourse);
System.out.println("Succeed!");
display();
}else if(modifyCourse==3){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(2, NewCourse);
System.out.println("Succeed!");
display();
}else if(modifyCourse==4){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(3, NewCourse);
System.out.println("Succeed!");
display();
}else if(modifyCourse==5){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(4, NewCourse);
System.out.println("Succeed!");
display();
}else if(modifyCourse==6){
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(5, NewCourse);
System.out.println("Succeed!");
display();
}
else{
System.out.print("Invalid!");
display();
}
}
catch(Exception e){
System.out.print("Invalid, Course not available!");
display();
}
break;
case 'D':
Object[] myArray3 = test.toArray();
System.out.println("Courses List: ");
int j=1;
for(int i=0; i < myArray3.length; i++){
System.out.println(j + ". " + myArray3[i]);
j++;
}
display();
break;
}
}while(option != 'E');
System.out.println("Logged Out Successfully.Thank You!");
login();
}
void showMenuStudent(){
if (!logins) {
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--LOGIN--");
try{
System.out.print("Student ID : ");
myId = myScanner.nextInt();
}
catch(Exception e){
System.out.println("INVALID ID!");
System.exit(0);
}
System.out.print("Student Password(Default is IC Number) : ");
password = myScanner.next();
logins = true;
}
Object[] myArray4 = test.toArray();
int n=1;
for (Object myArray41 : myArray4) {
System.out.println(n + ". " + myArray41);
n++;
}
}
void display(){
showMenuAdmin();
}
}
Я очень надеюсь, что кто-то поймет мою проблему и попытается ее исправить .. Пожалуйста :( и спасибо
Вот результат от начала до результата:
ВЫВОД:
Регистрация студента
- ВХОД -
1) Войти как студент
2 ) Войти как admin
3) Выйти
2
- ВХОД -
Admin ID: 123
Пароль администратора: 321
- ДОБРО ПОЖАЛОВАТЬ -
A. Создать курс
B. Курс падения
C. Изменить курс
D. Показать курс
E. Выход
Введите параметр> A
Создать курс (максимум 6): CS123
Курс успешно добавлен!
- ДОБРО ПОЖАЛОВАТЬ -
А. Создать курс
B. Курс падения
C. Изменить курс
D. Курс дисплея
E. Выйти
Введите параметр> E
Выполнен выход из системы. Спасибо!
Регистрация учащихся
- ВХОД--
1) Войти как студент
2) Войти как admin
3) Выход
1
--ВХОД -
Идентификатор студента: 123
Пароль студента (по умолчанию I C Число): 321
[] Введите параметр>
// в этот момент, я знаю, почему он так запущен, я просто хочу распечатать то, что администратор ввел в массив, но это похоже на метод студента, просто повторно запустите метод администратора снова, даже если я никогда его не вызываю, и он Также показано, что массив пуст. В чем моя ошибка? или мне что-то здесь не хватает? : (