Object i jego metody w Java

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.

Scroll to Top