<Java ArrayList> for문에 다른 클래스 메소드 사용하는 법

조회수 1345회

package arrayList;

import java.util.ArrayList;

public class Student {

    String name;
    ArrayList<Book> bookList;

    public Student(String name) {
        this.name = name;

        bookList = new ArrayList<Book>();
    }

    public void addBook(String name, int num) {
        Book book = new Book(name, num);
        bookList.add(book);
    }

    public void showStudentInfo() {
        System.out.print( name + "학생이 읽은 책은 : " );
        for(int i=0; i<book.getNum(); i++) {    //이 부분에서 에러가 뜹니다.
            System.out.print(book.getName() +  " " + book.getNum() + " " );
        }
        System.out.println("입니다.");
    }

}

ArrayList를 사용하여 학생들이 읽은 책을 출력하는 프로그램을 만들려고 합니다.

Lee학생은 토지 1, 토지 2;

Kim학생은 태백산맥 1, 태백산맥 2, 태백산맥 3;

Cho학생은 해리포터 1, 해리포터 2, 해리포터 3, 해리포터 4, 해리포터 5;

for문을 사용하여 Book 클래스에 있는 getNum을 불러오고 싶은데 저 부분에서 에러가 뜹니다. 변수를 static으로 해야하는 건지, showStudentInfo 메소드에도 Book 객체를 넣어줘야 하는지, 넣어줘야 한다면 어느 부분에 넣어줘야 하는지 궁금합니다.

  • ArrayList for문 사용하는 방법을 다시 공부하세욥 주동혁 2020.2.28 15:51

1 답변

  • for(int i = 0; i < bookList.size(); i++) { 
        System.out.print(bookList.get(i).getName() +  " " 
            + bookList.get(i).getNum() + " ");
    }
    

    book변수는 addBook 함수 안에서 선언됐기 때문에 그 함수 밖에서는 사용할 수 없습니다

    리스트에 잘 넣어둔 책들을 꺼내쓰시면 될것같네요

    근데 다른부분들은 리스트를 생각해서 잘 만드신것같은데 아마 변수 이름을 착각하신게 아닌지 싶네요

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)