Menu
Coddy logo textTech

도서 및 사용자 클래스

Coddy Dart 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 110개 중 102번째.

challenge icon

챌린지

쉬움

이전 레슨에서 여러분은 기본적인 속성과 toString() 메서드를 가진 Book 클래스를 만들었습니다. 이제 도서를 대출할 수 있는 도서관 회원을 나타내는 User 클래스를 추가하여 도서관 시스템을 확장할 차례입니다.

새 파일을 생성하고 기존 파일들을 업데이트해야 합니다:

  • book.dart: 기존 Book 클래스에 기본값이 trueisAvailable 속성(boolean)을 추가하여 개선하세요. 이는 도서의 대출 가능 여부를 추적합니다.
  • user.dart: 도서관 회원을 나타내는 새로운 User 클래스를 만드세요. 각 사용자는 id (String), name (String), 그리고 Book 객체들을 담는 borrowedBooks 리스트를 가져야 합니다. id와 name을 초기화하고, 대출된 도서 리스트는 빈 리스트로 시작하는 생성자를 포함하세요. toString()을 오버라이드하여 User [id]: name (X books borrowed) 형식을 반환하도록 하세요. 여기서 X는 대출된 도서의 수입니다.
  • main.dart: book 파일과 user 파일을 모두 임포트하세요. ISBN이 978-0-13-468599-1, 제목이 The Pragmatic Programmer, 저자가 David Thomas인 도서를 생성하세요. id가 U001이고 이름이 Alice Johnson인 사용자를 생성하세요. 도서를 출력한 다음, Available: true 또는 Available: false 형식을 사용하여 대출 가능 여부를 출력하세요. 사용자를 출력하세요. 그런 다음 도서를 사용자의 대출 도서 리스트에 추가하고, 도서의 isAvailablefalse로 설정한 뒤, 업데이트된 도서 수를 보여주기 위해 사용자를 다시 출력하세요.

이것은 다음 레슨에서 전체 대출 시스템을 구현할 때 기반이 될 도서와 사용자 간의 관계를 설정합니다!

예상 출력:

[978-0-13-468599-1] The Pragmatic Programmer by David Thomas
Available: true
User U001: Alice Johnson (0 books borrowed)
User U001: Alice Johnson (1 books borrowed)

직접 해보기

import 'book.dart';
// TODO: user.dart 임포트하기

void main() {
  // TODO: ISBN '978-0-13-468599-1', 제목 'The Pragmatic Programmer', 저자 'David Thomas'인 book 생성하기
  
  // TODO: id 'U001', 이름 'Alice Johnson'인 user 생성하기
  
  // TODO: book 출력하기
  
  // TODO: Available: true/false 형식을 사용하여 도서 대출 가능 여부 출력하기
  
  // TODO: user 출력하기
  
  // TODO: user의 borrowedBooks 리스트에 book 추가하기
  
  // TODO: book의 isAvailable을 false로 설정하기
  
  // TODO: 업데이트된 도서 수를 확인하기 위해 user를 다시 출력하기
}

객체 지향 프로그래밍의 모든 레슨