백엔드

Java Study [2022-08-09] - 객체지향프로그래밍(ArrayList 응용 문제)

머훈 2022. 8. 10. 01:07

📌 Java Study

🔸 2022-08-09 화요일

[배열과 ArrayList]

1. 코딩 문제 풀기(ArrayList를 활용한 응용 프로그램)

  • 어느 학교에 학생이 3명 있습니다. 각 학생마다 읽은 책을 기록하고 있습니다. Student 클래스를 만들고 각 학생마다 읽은 책을 Student 클래스내에 ArrayList를 생성하여 관리하도록 합니다. 다음과 같이 출력 되도록 Student, Book, StudentTest 클래스를 만들어 실행하세요.
    Heo 학생이 읽은 책은 : 태백산맥1 태백산맥2 입니다.
    Kim 학생이 읽은 책은 : 토지1 토지2 토지3 입니다.
    Cho 학생이 읽은 책은 : 해리포터1 해리포터2 해리포터3 해리포터4 해리포터5 해리포터 6 입니다.

  1. Book 클래스
    public class Book {

    private String bookName;
    private String author;

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

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
  • Book 클래스 생성 후 private로 bookName과 author을 String 선언

  • Book 메서드로 인스턴스 bookName과 author을 받도록 함

  • 이후 source에서 getter, setter 추가


  1. Student 클래스
    import java.util.ArrayList;

    public class Student {

    int studentID;
    String studentName;
    ArrayList<Book> bookList;

    public Student(int studentID, String studentName) {
        this.studentID = studentID;
        this.studentName = studentName;

        bookList = new ArrayList<Book>();
    }

    public void addBook(String bookName, String author) {
        Book book = new Book(bookName, author);

        bookList.add(book);
    }

    public void showStudentInfo() {

        System.out.print(studentName + " 학생이 읽은 책은 : ");

        for(Book book : bookList) {
            System.out.print(book.getBookName() + " ");
        }

        System.out.println("입니다.");
    }
  • ArrayList를 사용하기 위해 import 추가

  • studentID, studentName 선언하고, ArrayList<Book> bookList 사용

  • 책을 추가하는 addBook 메서드에 bookName과 author을 받도록 함

  • addbook 메서드를 사용하면 책 추가

  • showStudentInfo 메서드는 출력 구문을 수행

  • for 문에서 bookList에 존재하는 개수만큼 수행


  1. StudentTest 클래스
    public static void main(String[] args) {
        Student studentHeo = new Student(1001, "Heo");

        studentHeo.addBook("태백산맥1", "조정래");
        studentHeo.addBook("태백산맥2", "조정래");

        Student studentKim = new Student(1001, "Kim");

        studentKim.addBook("토지1", "박경리");
        studentKim.addBook("토지2", "박경리");
        studentKim.addBook("토지3", "박경리");

        Student studentCho = new Student(1001, "Cho");

        studentCho.addBook("해리포터1", "조앤 롤링");
        studentCho.addBook("해리포터2", "조앤 롤링");
        studentCho.addBook("해리포터3", "조앤 롤링");
        studentCho.addBook("해리포터4", "조앤 롤링");
        studentCho.addBook("해리포터5", "조앤 롤링");
        studentCho.addBook("해리포터6", "조앤 롤링");

        studentHeo.showStudentInfo();
        studentKim.showStudentInfo();
        studentCho.showStudentInfo();
    }
  • 각 학생이 읽은 책의 리스트(bookName, author) 입력

  • showStudentInfo() 메서드로 출력


🔖 Eclipse 실습

day14


🔖 Eclipse 출력 Console

day14_console1