Доброе утро! Я пытаюсь понять классы на Java. Моя задача - создать класс Employee, класс Name и класс Address и использовать их для хранения информации в массиве. Очевидно, что мой код ниже по-прежнему работает, но я не понимаю, как использовать класс Name и класс Address, чтобы поместить значения в массив.Использование вложенных классов и массивов
В частности, в моем коммутаторе (случай 1) я привязываю, чтобы назначить вход для каждого атрибута в массив, но я не понимаю, как действительно работают экземпляры классов. Я пробовал читать в Интернете и в своем учебнике, но ни одно из объяснений на самом деле не щелкает со мной.
Это мое первое знакомство с Java-классами, поэтому любые объяснения, которые помогут мне применить эти концепции в будущем (и не только в этом коде), будут высоко оценены. Я действительно пытаюсь это изучить, а не просто завершить HW-задание. Заранее благодарю за ваше время и задуматься!
import java.util.Scanner;
class Employee {
String fName = " ";
String lName = " ";
String city = " ";
String state = " ";
public static void main(String [] args) {
int choice; //For Menu option
Scanner input = new Scanner(System.in);
boolean looping = true; //Loop the menu
while(looping == true) {
System.out.println("1. Add New Employee");
System.out.println("0. Exit");
System.out.print("Choice: ");
choice = input.nextInt();
switch(choice) {
case 0: {
System.out.println("Goodbye.");
looping = false;
break;
}
case 1: {
Employee [] employeeInfo = new Employee[9];
for(int i = 0; i < employeeInfo.length ; i++) {
Scanner info = new Scanner(System.in);
System.out.print("Enter the Employee's First Name: ");
employeeInfo[i].fName = info.nextLine();
System.out.print("Enter the Employee's Last Name: ");
employeeInfo[i].lName = info.nextLine();
System.out.print("Enter the Employee's City: ");
employeeInfo[i].city = info.nextLine();
System.out.print("Enter the Employee's State: ");
employeeInfo[i].state = info.nextLine();
break;
}
default:
System.out.println("Invalid option.");
}
}
}
class Name {
private String fName;
private String lName;
//Constructors
Name() { //no parameters
fName = " ";
lName = " ";
}
Name(String fName, String lName) { //parameters
this.fName = fName;
this.lName = lName;
}
@Override
public String toString() {
return "The employee's name is: " + fName + " " + lName;
}
}
class Address {
private String city;
private String state;
//Constructors
Address() {
this.city = " ";
this.state = " ";
}
Address(String city, String state) {
this.city = city;
this.state = state;
}
@Override
public String toString(){
return "The employee's residence is " + city + ", " + state;
}
}
}
Прочтите https://docs.oracle.com/javase/tutorial/java/javaOO/. У ваших трех классов нет причин быть вложенными. Если вы еще не понимаете классы и объекты, их вложение сделает вещи еще более запутанными. Поместите каждый класс в свой собственный файл. –
Класс имени и адреса должен, вероятно, иметь такие поля, как: «Адрес адреса» и «Имя имени». Прежде чем назначить свой ввод экземпляру каждого сотрудника в вашем массиве, вы должны сначала создать экземпляр, например 'employeeInfo [i] = new Employee()'. –
Спасибо, @JBNizet, похоже, у него много отличных примеров. Я рассматриваю этот пример велосипеда под ссылкой на классы, и все начинает иметь смысл. – mellerlite