티스토리 뷰

Book 타입을 가진 배열을 생성하여, 책의 제목과 저자를 요소로 넣어 출력을 해보았다.

 

★ class 만들기

 

우선, 이 부분은 강사님께서 다음 단계에 배운다고 하셨다.

간단히 특정 부분만 훑겠다.  객체에 대한 설계서와 같은 것이다. 

 

1. Book 이라는 클래스를 만들었다. 그리고 파라미터로 입력받을 String 타입의 bookname, author의 변수를 만들었다. 

    쉽게 말하면, Book 객체는 bookname과 author라는 property(또는 field)를 가질 수 있다는 의미이다.

   public이 아닌 private를 입력했는데 이것은 외부에서 접근할 수 없다라는 의미를 가졌다만 알고가자.

 

2. 마우스 오른쪽 버튼 클릭 ->source ->Generate Constructor using Fields로 들어갔다.

  bookname과 author의 생성자 함수를 자동으로 만들었다. 

  Book 객체의 생성을 도와주는 함수이다. new 키워드를 사용하여 이 함수를 호출 할 수 있다. 

 

3. Setter와 Getter 메소드를 만들어야 한다. 

   Setter는 데이터는 외부에서 접근하지 않도록 막고, 메소드는 공개해서 

   외부에서 Setter 메소드를 통해 데이터를 접근하도록 유도한다. 

   Getter는  필드값을 가공 후, 외부로 전달하는 메소드이다. 

   마우스 오른쪽 버튼 클릭 -> source -> Generate Getters and Setters 를 통하여 자동 생성 가능하다.

 


★ Book 타입 객체의 배열 만들기

 

콘솔 창

1. String형으로 길이 3인 배열을 선언했다.

 

2.  Book 클래스 형으로 객체 배열을 생성했다. 

    코드 내용만 보면 Book 인스턴스 5개가 생성된 것 처럼 보인다. 

    하지만 5개가 바로 생성되지 않고, 5개를 담을 공간을 생성하는 문장이다.

 

3.  Book 클래스 형으로 제목 "노인과 바다", 작가 "해밍웨이" 인 book1 객체를 생성했다.

    2번과 타입이 같기 때문에 Book 배열에 넣을 수 있다. 

    콘솔 창에 참조 변수이기 때문에  book1의 주소 값이 출력된다.

 

4. book 클래스형으로 book1 객체를 생성했으므로 Bookname에 자리한 "노인과 바다" 를 출력 가능하다.

 

5. 배열의 첫번째에 book 1 객체를 넣을 수 있다.

 

6. new book ("자바의 정석", "남궁석") 이라는 객체를 books 1번 자리에 넣었다.

  new book ("다 큰 왕자 ", "생텍쥐페리 ") 이라는 객체를 books 2번 자리에 넣었다.

그림으로 표현하자면 이렇다. book1,book2,book3가 객체이기 때문에 배열안에 넣을 수 있다라는 것을 첨언한다.

 

7. 반복문으로 도서명과 저자명을 출력한다. 

    for each문을 이클립스가 자동 생성해줬다. 

    2번을 바탕으로 for ( 타입 변수명 : 배열 ) 형태로 생성했다. 

 

  ☆for each문  - 배열의 처음에서 끝까지 모든 요소를 참조할 때 사용하면 편리한 반복문이다.    따로 초기화와 종료 조건이 없기 때문에 모든 배열의 시작 요소부터 끝 요소까지 실행한다.

Book 타입의 book 요소 하나에  books요소가 할당이 된다. 3개가 있으므로 3개 각각 할당이 된다.

Bookname() + 공백 +  Author 를 출력하면 콘솔창과 같은 결과가 나오게 된다.