Klasa Object
w języku Java jest bazą dla wszystkich innych klas. Dostarcza ona zestaw metod, które mogą być nadpisane przez klasy pochodne w celu realizacji specyficznych zachowań, takich jak porównywanie obiektów (equals
), generowanie kodu hash (hashCode
) czy reprezentacja obiektu w formie tekstowej (toString
). Wykorzystanie tych metod pozwala na efektywną pracę z obiektami w aplikacjach Java. Jako przykład, przyjrzymy się klasie Computer
, która modeluje komputer z podstawowymi właściwościami.
Klasa Computer
Poniżej znajduje się definicja klasy Computer
wraz z nadpisanymi metodami z klasy Object
.
// Definicja klasy Computer
public class Computer {
// Zmienne przechowujące informacje o komputerze
private String brand;
private String processor;
// Konstruktor klasy Computer
public Computer(String brand, String processor) {
this.brand = brand;
this.processor = processor;
}
// Nadpisana metoda toString()
@Override
public String toString() {
return "Komputer marki " + brand +
" z procesorem " + processor;
}
// Nadpisana metoda equals()
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass())
return false;
Computer computer = (Computer) obj;
return brand.equals(computer.brand) &&
processor.equals(computer.processor);
}
// Nadpisana metoda hashCode()
@Override
public int hashCode() {
return Objects.hash(brand, processor);
}
}
Wykorzystanie klasy Computer
Przykład użycia klasy Computer
, który ilustruje działanie nadpisanych metod:
// Przykład użycia klasy Computer
public class Main {
public static void main(String[] args) {
// Tworzenie obiektów Computer
Computer computer1 = new Computer("Lenovo", "Intel i5");
Computer computer2 = new Computer("Asus", "AMD Ryzen 5");
Computer computer3 = new Computer("Lenovo", "Intel i5");
// Wyświetlanie komputerów za pomocą metody toString()
System.out.println(computer1);
System.out.println(computer2);
// Porównywanie komputerów za pomocą metody equals()
System.out.println("Czy computer1 jest równy computer3? " +
computer1.equals(computer3));
System.out.println("Czy computer1 jest równy computer2? " +
computer1.equals(computer2));
// Wyświetlanie kodów hash komputerów
System.out.println("Kod hash computer1: "
+ computer1.hashCode());
System.out.println("Kod hash computer2: "
+ computer2.hashCode());
System.out.println("Kod hash computer3: "
+ computer3.hashCode());
}
}
Podsumowanie
W tej lekcji pokazaliśmy, jak wykorzystać metody klasy Object
na przykładzie klasy Computer
. Dzięki nadpisaniu metod toString
, equals
i hashCode
, możemy kontrolować, jak obiekty są prezentowane, porównywane i jak generowane są ich kody hash. Jest to szczególnie przydatne w kolekcjach, gdzie te metody są często wykorzystywane do zarządzania obiektami. Klasy takie jak Computer
mogą dzięki temu być łatwiej integrowane z różnymi częściami aplikacji, co przekłada się na większą elastyczność i możliwości ponownego użycia kodu.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.