Klasy a obiekty
Część sekcji Programowanie obiektowe ścieżki Java w Coddy. Lekcja 3 z 87.
Klasa to szablon, który definiuje strukturę. Obiekt to konkretna instancja utworzona na podstawie tego szablonu.
Klasa (szablon)
public class Car {
String brand;
int year;
public Car(String brand, int year) {
this.brand = brand;
this.year = year;
}
public String getInfo() {
return this.brand + " (" + this.year + ")";
}
}Tworzenie obiektów (instancji)
Car car1 = new Car("Tesla", 2023);
Car car2 = new Car("Honda", 2020);
System.out.println(car1.getInfo()); // Tesla (2023)
System.out.println(car2.getInfo()); // Honda (2020)Każdy obiekt jest niezależny. Zmiana car1 nie wpływa na car2. Możesz tworzyć nieograniczoną liczbę obiektów z tej samej klasy, a każdy z nich będzie miał własne dane.
Wyzwanie
ŚredniUtwórz klasę Car (szablon), a program utworzy na jej podstawie dwa różne obiekty (instancje):
- Pola:
brand(String) iyear(int) - Konstruktor, który ustawia oba pola
- Metodę
getInfo(), która zwraca"<brand> (<year>)"
Spróbuj swoich sił
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String brand1 = scanner.nextLine();
int year1 = Integer.parseInt(scanner.nextLine());
String brand2 = scanner.nextLine();
int year2 = Integer.parseInt(scanner.nextLine());
Car car1 = new Car(brand1, year1);
Car car2 = new Car(brand2, year2);
System.out.println("Car 1: " + car1.getInfo());
System.out.println("Car 2: " + car2.getInfo());
System.out.println("Same car? " + (car1 == car2));
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektySłowo kluczowe thisMetodyPola (atrybuty)Metoda konstruktoraPrzeciążanie konstruktoraPodsumowanie — prosty kalkulator4Dziedziczenie
Podstawy dziedziczenia (extends)Słowo kluczowe superPrzesłanianie metod (@Override)Łańcuch wywołań konstruktorówKlasa ObjectDziedziczenie jedno- i wielopoziomoweDlaczego Java nie obsługuje wielodziedziczenia klasPodsumowanie – hierarchia pracowników7Metody specjalne i klasa Object
Metoda toString()equals() i hashCode()Metoda clone()compareTo() i ComparableInterfejs ComparatorPodsumowanie — własne sortowanie10Obsługa wyjątków w programowaniu obiektowym
Hierarchia klas wyjątkówWłasne wyjątkiBłędy sprawdzane a niesprawdzaneWzorzec try-with-resourcesPodsumowanie – zweryfikowany użytkownik2Modyfikatory dostępu i enkapsulacja
Przegląd poziomów dostępuMetody pobierające i ustawiająceUkrywanie informacjiSłowo kluczowe finalPodsumowanie — menedżer kont bankowych5Polimorfizm
Podstawy przeciążania metodPrzesłanianie metod (w czasie wykonywania)Rzutowanie w górę i w dółOperator instanceofKlasy i metody abstrakcyjnePowtórka — kalkulator figur8Zaawansowane koncepcje OOP
Kompozycja a dziedziczenieAgregacja a kompozycjaKlasy wewnętrzne, zagnieżdżone i anonimoweEnumy i metody enumówRekordy (Java 16+)Klasy zapieczętowane (Java 17+)11Wzorce projektowe — część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec BuilderWzorzec ObserverWzorzec Strategy3Właściwości klas i składowe statyczne
Zmienne instancji a zmienne statyczneMetody statyczneBloki statyczneStałe (static final)Powtórka – Counter i Utility6Interfejsy i klasy abstrakcyjne
Wprowadzenie do interfejsówImplementowanie interfejsówImplementacja wielu interfejsówMetody domyślne i statyczne w interfejsieKlasy abstrakcyjne a interfejsyInterfejsy funkcyjnePodsumowanie — system płatnościPoćwicz samodzielnie: Kompilator Java online