[英]How do I set the value of my field so that I can call it from another class?
[英]How to set field value of class A using an object of class B? What type of relationship should be between the classes to do so?
我有一個圖書館 class,它有一個圖書管理員和圖書列表,還有一個圖書管理員 class,它有一個 id 和 addBook 方法。 圖書管理員class可以在圖書館添加圖書。 這樣做的正確方法是什么?
public class Library
{
private Librarian librarian;
private List<Book> books;
}
public class Librarian
{
private int id;
public boolean addBook(Book b);
}
將addBook
方法作為庫 class 的一部分可能會更好。然后您可以使用庫實例來做一些簡單的事情
public boolean addBook(Book b) {
books.add(b);
}
在這種情況下, librarian
將是程序的用戶。 但是您可能需要一種方法來從列表中獲取這本書。 您可能想要搜索更詳細的各種字段(關鍵字、標題等)並返回一本或多本匹配的書籍。 您不需要返回 boolean 除非您想確定該書是否已添加 (false) 或是否為新條目 (true)。
圖書管理員可以成為更多圖書館的圖書管理員嗎? 如果只有一個,那么我會給圖書館員 class 一個圖書館 object 並在構造函數中初始化它
public class Librarian
{
private int id;
private final Library library;
public boolean addBook(Book b);
public Librarian(final Library library) {
this.library = library;
}
}
添加吸氣劑。
然后你可以添加這樣一本書
librarian.getLibrary().addBook(book);
由於圖書管理員將書添加到圖書館並且圖書館擁有所有書籍,因此將方法addBook
的實現放在圖書館 class 中看起來更好。
所以代碼會像這樣:
public class Library
{
private Librarian librarian;
private List<Book> books;
public bool AddBook(Book book)
{
books.Add(book);
return true;
}
}
Libranian
可以像這樣將一本書添加到圖書館中:
public class Librarian
{
private int id;
private Library library;
public Librarian(Library library)
{
this.library = library;
}
public bool AddBook(Book b)
{
return library.AddBook(b);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.