해당 내용은 인프런에 있는 [김영한의 실전 자바 기본편] 강의를 보고 참고하여 정리한 글이다.
혹시 문제가 된다면 꼭 알려주시길 바랍니도...😢
배열 도입
클래스와 객체를 이용하여 데이터를 구조적으로 이해하기 쉽게 변경함
System.out.println("이름: " + student1.name + " 나이: " + student1.age + " 성적: " + student1.grade);
System.out.println("이름: " + student2.name + " 나이: " + student2.age + " 성적: " + student2.grade);
하지만 학생 출력 부분이 아쉬움 / 새로운 학생 추가할 때 마다 같이 추가해 줘야하는 번거로움 발생
배열을 도입하여 특정 타입을 연속한 데이터 구조로 묶어 관리하면 편함
Student 클래스를 사용한 변수들이 Student 타입이기 때문에 배열을 사용하여 하나의 데이터로 묶어버리자
package class1;
public class ClassStart4 {
public static void main(String[] args) {
//Student 클래스를 기반으로 student1, student2 인스턴스를 생성 & 값을 채워 넣음
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
Student[] students = new Student[2];
students[0] = student1;
students[1] = student2;
System.out.println("이름: " + students[0].name + " 나이: " + students[0].age + " 성적: " + students[0].grade);
System.out.println("이름: " + students[1].name + " 나이: " + students[1].age + " 성적: " + students[1].grade);
}
}
메모리 상에 student 인스턴스 객체 두 개가 있음
배열에 참조값 대입
Student를 담을 수 있는 배열을 생성 & 해당 배열에 student1, student2 인스턴스를 보관
Student[] students = new Student[2];
Student 변수 2개를 보관할 사이즈 2의 배열을 만듦
Student타입의 변수(student1, student2)는 Student 인스턴스의 참조값(x001, x002)을 보관 / Student 배열의 각각의 항목([0], [1])도 Student 타입의 변수일 뿐 => 참조값을 보관함
배열엔 아직 참조값 대입을 하지 않았으므로 참조값이 없다는 의미인 null이 값으로 초기화 됨
students[0] = student1;
students[1] = student2;
//자바에서 대입은 항상 변수에 들어있는 값을 복사함
students[0] = x001;
students[1] = x002;
자바에서 대입은 항상 변수에 들어있는 값을 복사함
student1, student2에 각각 들어있던 참조값인 x001, x002를 복사하여 배열에 대입해주는 것임
배열은 참조값을 가지게 됨 // Student 인스턴스에 모두 접근할 수 있게 됨 // 학생1(x001), 학생2(x002)
배열에 들어있는 객체 사용
배열에 든 객체를 사용하려면 먼저 배열에 접근 -> 객체에 접근
위의 이미지를 참고하여 코드 보기
학생1 예제)
System.out.println(students[0].name); //배열 접근 시작
System.out.println(x005[0].name); //[0]를 사용해서 x005 배열의 0번 요소에 접근
System.out.println(x001.name); //.(dot)을 사용해서 참조값으로 객체에 접근
System.out.println("학생1");
배열 최적화
Student[] students = {student1, student2}; //배열 최적화
for문 최적화
for문 도입
for (int i = 0; i < students.length; i++) { //출력 for문
System.out.println("이름: " + students[i].name + " 나이: " + students[i].age + " 성적: " + students[i].grade);
}
for문 - 반복 요소 변수에 담아서 처리
for (int i = 0; i < students.length; i++) { //출력 for문 최적화
Student s = students[i];
System.out.println("이름: " + s.name + " 나이: " + s.age + " 성적: " + s.grade);
}
향상된 for문
변수에 담아서 사용할 경우 향상된 for문을 사용해주면 가장 깔끔해진다
* Tip) ITER 단축키 사용시 향산된 for문 자동 완성됨
for (Student s : students) { //향상된 for문
System.out.println("이름: " + s.name + " 나이: " + s.age + " 성적: " + s.grade);
}
'개발 공부 > [java]' 카테고리의 다른 글
[java] 김영한의 실전 자바 기본편 / 강의 정리 / 2. 기본형과 참조형 2 (0) | 2024.03.16 |
---|---|
[java] 김영한의 실전 자바 기본편 / 강의 정리 / 2. 기본형과 참조형 1 (0) | 2024.02.16 |
[java] 김영한의 실전 자바 기본편 / 강의 정리 / 1. 클래스와 데이터 1 (2) | 2024.02.14 |
[java] 김영한의 자바 입문 / 강의 정리 / 9. 메서드 2 (1) | 2024.02.12 |
[java] 김영한의 자바 입문 / 강의 정리 / 9. 메서드 1 (1) | 2024.02.07 |