2015-03-06 7 views
-6

Создайте метод hashCode и equals для следующего класса.java hashcode и равно

private static class MyOb { 

    private String name; 
    private Integer quality; 
    private final int MAXIMUM = 23; 

} 

Я не мог решить этот вопрос

+3

вы пытаетесь получить вашу домашнюю работу ?. Сначала приложите некоторые усилия. – shikjohari

+0

Подсказка: посмотрите исходный код любого класса java, например. Объект –

+0

Фактически меня спрашивали в интервью, и я не мог ответить – prem

ответ

2

Java класс имеет по умолчанию хэш-код и приравнивает метод метод реализуется через суперкласса. Если и хочет, чтобы через них ездить и можно следующий:

class MyOb { 

private String name; 
private Integer quality; 
private final int MAXIMUM = 23; 

@Override 
public int hashCode() { 
    final int prime = 31; 
    int result = 1; 
    result = prime * result + ((name == null) ? 0 : name.hashCode()); 
    result = prime * result + ((quality == null) ? 0 : quality.hashCode()); 
    return result; 
} 
@Override 
public boolean equals(Object obj) { 
    if (this == obj) 
     return true; 
    if (obj == null) 
     return false; 
    if (getClass() != obj.getClass()) 
     return false; 
    MyOb other = (MyOb) obj; 
    if (name == null) { 
     if (other.name != null) 
      return false; 
    } else if (!name.equals(other.name)) 
     return false; 
    if (quality == null) { 
     if (other.quality != null) 
      return false; 
    } else if (!quality.equals(other.quality)) 
     return false; 
    return true; 
} 

}

Примечания: класс не может быть частным или статическим

+0

Почему вы использовали MAXIMUM? Это просто константа – Adam

+0

Извините, изменено соответственно спасибо, что запомнили –

+0

Возможно, стоит указать, что eclipse генерирует hashcode/equals, который, как я предполагаю, вы использовали. – Adam

-1

, если вы хотите увидеть хэш-код класса. создать объект

Myob myObject=new Myob(); 
    System.out.println(myObject); 

если хотите равно метод

myObject.equals(which one you want to campare); 
Смежные вопросы