내 Java 코드에서 학생 유형의 개체를 몇 개 만듭니다. --- 객체 Student에는 문자열 이름과 int 그레이드가 포함되어 있습니다 --- 메소드로 생성 된 모든 객체를 나열 할 수 있습니까?내 개체를 관리/나열하는 방법?
또는 하나씩 추가하지 않고 내 개체의 모든 이름을 나열 하시겠습니까?
내 Java 코드에서 학생 유형의 개체를 몇 개 만듭니다. --- 객체 Student에는 문자열 이름과 int 그레이드가 포함되어 있습니다 --- 메소드로 생성 된 모든 객체를 나열 할 수 있습니까?내 개체를 관리/나열하는 방법?
또는 하나씩 추가하지 않고 내 개체의 모든 이름을 나열 하시겠습니까?
내 생성 된 모든 개체를 메서드로 나열 할 수 있습니까?
예, 클래스의 toString
메소드를 오버라이드 (override), 다음
List<Student> myList = new ArrayList<Student>();
학생들의 목록을 만든 다음이를 System.out.println(myList);
물론 전화 인쇄, 일부 컬렉션 그들 모두를 넣어 배열이나리스트와 같이, 루프를 반복하면서 루프를 통해 학생의 이름을 반환하는 메서드에서 print를 호출합니다.
코드 예제 :
List<Student> students = new ArrayList<>();
students.add(student1);
...
for (Student s : students) {
System.out.println(s.getName());
}
입니다. 편집 해 주셔서 감사합니다. 내 전화에서 레이아웃을 엉망으로 만든 오타를 찾을 수 없었습니다. –
당신은 학생이 컬렉션/배열로 당신이 좋아하는 중 컬렉션/배열하고 인쇄를 통해 다음 루프를 개체에 추가 할 수 있습니다.
public class Student {
private String name;
private int grade;
public Student(String name , int grade){
this.name = name;
this.grade = grade;
}
public int getGrade() {
return grade;
}
public String getName() {
return name;
}
}
메인 클래스 예 :
import java.util.ArrayList;
public class Main
{
public static void main(String[] args) {
//Creating a list of Student Objects
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("John",10));
students.add(new Student("Ahmed",100));
students.add(new Student("Jonny",10));
//Printing the name of each student
for(Student student:students){
System.out.println(student.getName());
}
//Printing the grade of each student
for(Student student:students){
System.out.println(student.getGrade());
}
}
}
비 최종, 비공개 필드를 사용하는 것에 대해 조언하지 않겠습니다. 일이 조금 더 복잡 해지면 모든 종류의 문제가 발생하고 게터를 쓰는 것은 그렇게 많은 일이 아닙니다. –
감사합니다. 나는 캡슐화를 적용하는 것이 좋은 방법이라는 것에 동의하지만, 어떤 상황에서는 과잉이라고 생각합니다. 특히 문제가되지 않는 범위에서 그렇습니다. 어쨌든, 좋은 연습이 필요합니다. 특히 대부분의 IDE에는 getter 및 setter 용 자동 생성 기능이 있습니다. –
캡슐화 할 답변을 업데이트했습니다 :) –
예, 당신이 그렇게 할 수 여기에
은 예입니다. 이것은 완전한 예로서 제공되어야합니다.import java.util.Scanner;
public class StudentDemonstration {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("How many student records to create : ");
int numberStudents = in.nextInt();
in.nextLine();
Student students[] = new Student[numberStudents];
for (int i=0; i<students.length; i++){
students[i] = new Student();
System.out.println("Enter name for student " + i + " : ");
String name = in.nextLine();
students[i].setName(name);
System.out.println("Enter grade for student " + i + " : ");
int grade = in.nextInt();
in.nextLine();
students[i].setGrade(grade);
}
System.out.println("Printing student details : ");
for (int i=0; i<students.length; i++){
System.out.println("Student details " + i);
System.out.println("Name : " + students[i].name);
System.out.println("Grade : " + students[i].grade);
}
in.close();
}
}
class Student{
String name;
int grade;
public Student(){
this.name = null;
this.grade = 0;
}
public Student(String name, int grade){
this.name = name;
this.grade = grade;
}
public void setName(String name){
this.name = name;
}
public void setGrade(int grade){
this.grade = grade;
}
}
나에게 답을 주신 모든 분들께 감사드립니다. 너는 매우 도움이되었다. – Tobi
개체를 컬렉션/배열에 넣고 반복하여 인쇄 할 수 있습니다. 우리는 문제를 더 잘 이해할 수있는 코드를 찾아야합니다. – Kent
[mcve]를 포함하십시오. –
@ Kent의 답변에 추가하면, Student 클래스에서 원하는 방식으로 출력 할 수 있도록'toString()'메소드를 추가해야합니다. – Ian