공부 기록/Java with ChatGPT

[Java/ChatGPT] Day 3: 객체 배열과 반복문 활용하기

dev.jelee 2025. 6. 9. 18:14

[ 학습 목표 ]

  1. 클래스 배열 선언과 초기화
  2. for문 / 향상된 for문(for-each)으로 순회
  3. 여러 객체에 대해 같은 메서드 실행하기
  4. 간단한 객체 리스트 시스템 만들기

 

[ 이론 ]

1. 객체 배열이란?

  • 클래스를 하나만 사용하는게 아니라 여러 개를 배열로 묶어서 관리하는 것.
Book[] books = new Book[3];

=> 이렇게 하면 Book 객체 3개를 담을 수 있는 배열을 만든다는 의미.
=> 아직 객체는 만들어지지 않았고, null 상태로 존재하는 상태임.

 

2. 객체를 배열에 넣기

books[0] = new Book("개미", "베르나르 베르베르");
books[1] = new Book("데미안", "헤르만 헤세");
books[2] = new Book("어린왕자", "생텍쥐페리");

 

3. 반복문으로 모든 책 정보 출력하기

// 방법 1
for (int i = 0; i < books.length; i++) {
    books[i].printInfo();
}
// 방법 2
for (Book book : books) {
    book.printInfo();
}

 

 

[ 실습 미션 ]

Book 클래스를 사용해서, 책 5권을 배열로 저장하고 각 책의 정보를 출력해보기.

 

📌 요구사항

  • Book 클래스는 title, author 속성
  • printInfo() 메서드로 출력
  • Main 클래스에서 5개 생성 후 출력

🧾 출력 예시

제목: 개미, 저자: 베르나르 베르베르
제목: 데미안, 저자: 헤르만 헤세
제목: 어린왕자, 저자: 생텍쥐페리
제목: 나미야 잡화점의 기적, 저자: 히가시노 게이고
제목: 죽음에 관하여, 저자: 어니스트 베커

 

코드 작성

public class Book {
  private String title;
  private String author;

  Book () { } // 기본 생성자

  Book (String title, String author) {
    this.title = title;
    this.author = author;
  }

  // setter, getter
  public void setTitle(String title) {
    this.title = title;
  }

  public String getTitle() {
    return title;
  }

  public void setAuthor(String author) {
    this.author = author;
  }

  public String getAuthor() {
    return author;
  }

  // 메서드
  public void printInfo() {
    System.out.println("제목: " + title + ", 저자: " + author);
  }

  @Override
  public String toString() {
    return "제목: " + title + ", 저자: " + author;
  }
 
}
public class ex1 {
  public static void main (String[] args) {
    Book[] books = new Book[5];

    books[0] = new Book("개미", "베르나르 베르베르");
    books[1] = new Book("데미안", "헤르만 헤세");
    books[2] = new Book("어린왕자", "생텍쥐페리");
    books[3] = new Book("나미야 잡화점의 기적", "히가시노 게이고");
    books[4] = new Book("죽음에 관하여", "어니스트 베커");

    for (Book book : books) {
      book.printInfo();
    }
  }
}

 

 

 


[ 메모 ]

  • for-each문은 for (클래스 객체명 : 반복시킬 객체) 이렇게 선언.
  • Javascript와 달라서 헷갈린다. ㅠㅠ...