Java 클래스 배열 선언 및 for문 리팩토링해보기
주어진 코드를 가지고 리팩토링을 진행한다.
Student.class
public class Student {
String name;
int age;
int grade;
}
- Student 의 기본 클래스를 정의
Main.class
리팩토링 대상이 되는 코드
public class Main {
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "홍길동";
student1.age = 18;
student1.grade = 90;
Student student2 = new Student();
student2.name = "김철수";
student2.age = 15;
student2.grade = 80;
// 배열 선언 및 초기화
Student[] students = new Student[2];
students[0] = student1;
students[1] = student2;
// for문
for (int i = 0; i < students.length; i++) {
System.out.println("이름: " + students[i].name + ", 나이: " + students[i].age + ", 성적: " + students[i].grade);
}
}
}
배열 생성과 선언
Student[] students = new Student[2];
students[0] = student1;
students[1] = student2;
- 배열을 생성과 선언을 동시에 할 수 있다.
Student[] students = new Student[] { student1, student2 };
- 코드 수를 줄여서 최적화하면 다음과 같이 작성할 수 있다.
Student[] students = { student1, student2 };
for문 개선하기
for (int i = 0; i < students.length; i++) {
System.out.println("이름: " + students[i].name + ", 나이: " + students[i].age + ", 성적: " + students[i].grade);
}
println
코드가 너무 길어서 줄여보도록 한다.
for (int i = 0; i < students.length; i++) {
Student s = students[i];
System.out.println("이름: " + s.name + ", 나이: " + s.age + ", 성적: " + s.grade);
}
- 향상된 for문 iter 처럼 사용할 수 있다.
for (Student s : students) {
System.out.println("이름: " + s.name + ", 나이: " + s.age + ", 성적: " + s.grade);
}
전체 코드 보기
public class Main {
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "홍길동";
student1.age = 18;
student1.grade = 90;
Student student2 = new Student();
student2.name = "김철수";
student2.age = 15;
student2.grade = 80;
// 배열 선언 및 초기화
Student[] students = { student1, student2 };
// for문
for (Student s : students) {
System.out.println("이름: " + s.name + ", 나이: " + s.age + ", 성적: " + s.grade);
}
}
}