因此,在我們學習Java的第一次上學,我們想模仿我們有一個名爲「圖書」兩個階級一個Java libray應用程序和另外一個名稱「,並有可能沒有一本書在同一貨架同一ISBN,所以我所做的就是像架子類的內部下面,它工作正常。我什麼時候應該重寫等方法在Java中
private boolean checkIsbnNumber(Book book){
boolean isbnTaken = false;
for(Book bList : this.bookList){
if(bList.getIsbn().equals(book.getIsbn())){
System.out.println("The books isbn number is taken");
isbnTaken = true;
}
}
return isbnTaken;
}
但是我們lecturue告訴我們如下,走在book class並重寫散列和equals方法如下:
@Override
public boolean equals(Object obj) {
if (obj instanceof Book)
return isbn.equals(((Book)obj).isbn);
else
return false;
}
@Override
public int hashCode() {
int hash = 3;
hash = 53 * hash + Objects.hashCode(this.isbn);
return hash;
}
然後再次在貨架類中進行以下操作。
public boolean checkISBN(Book b){
boolean isbnExists = false;
for (Book bList : bookList)
{
if(bList.getIsbn().equals(b.getIsbn())){
System.out.println("Book ISBN already exist");
isbnExists = true;
}
}
return isbnExists;
}
我想知道的是做這件事的重點是什麼?有什麼好處嗎?爲什麼我們再次在equals方法中調用equals方法?一些幫助將不勝感激。
嗯...我沒有看到區別對象。除了私有和公共之外,唯一明顯的變化是變量/方法名稱和輸出文本。 (順便說一下,在這裏輸出文本看起來是錯誤的。)實際上,*方法究竟是怎樣工作的,並沒有改變一點。 – cHao 2014-12-06 17:52:39