Classi e oggetti
Fa parte della sezione Programmazione orientata agli oggetti del percorso Java di Coddy. Lezione 3 di 87.
Una classe è uno schema che definisce la struttura. Un oggetto è un'istanza specifica creata a partire da quello schema.
La classe (modello)
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 + ")";
}
}Creazione di oggetti (istanze)
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)Ogni oggetto è indipendente. Modificare car1 non influisce su car2. Puoi creare un numero illimitato di oggetti dalla stessa classe, ciascuno con i propri dati.
Sfida
MedioCrea una classe Car (il modello) e il programma creerà due oggetti diversi (istanze) a partire da essa:
- Campi:
brand(String) eyear(int) - Un costruttore che imposta entrambi i campi
- Un metodo
getInfo()che restituisce"<brand> (<year>)"
Provalo tu
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));
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti della programmazione a oggetti
File esterniIntroduzione alla programmazione a oggettiClassi e oggettiLa parola chiave thisMetodiCampi (attributi)Metodo costruttoreSovraccarico dei costruttoriRipasso - Calcolatrice semplice4Ereditarietà
Ereditarietà di base (extends)La parola chiave superSovrascrittura dei metodi (@Override)Concatenamento dei costruttoriLa classe ObjectEreditarietà singola e multilivelloPerché non esiste l'ereditarietà multipla delle classiRiepilogo: gerarchia dei dipendenti7Metodi speciali e classe Object
Metodo toString()equals() e hashCode()Metodo clone()compareTo() e ComparableInterfaccia ComparatorRiepilogo - Ordinamento personalizzato2Modificatori di accesso e incapsulamento
Panoramica dei livelli di accessoMetodi getter e setterNascondimento delle informazioniLa parola chiave finalRiepilogo - Gestore di conti bancari5Polimorfismo
Nozioni di base sull'overloading dei metodiOverride dei metodi (a runtime)Upcasting e downcastingL'operatore instanceofClassi e metodi astrattiRiepilogo - Calcolatore di forme8Concetti avanzati di OOP
Composizione vs ereditarietàAggregazione vs composizioneClassi interne, annidate e anonimeEnum e metodi degli EnumRecord (Java 16+)Classi sealed (Java 17+)11Modelli di progettazione Parte 1
Introduzione ai modelli di progettazionePattern SingletonPattern FactoryPattern BuilderPattern ObserverPattern Strategy3Proprietà di classe e membri statici
Variabili di istanza e staticheMetodi staticiBlocchi staticiCostanti (static final)Riepilogo - Contatore e utility6Interfacce e classi astratte
Introduzione alle interfacceImplementazione delle interfacceImplementazione di più interfacceMetodi default e static nelle interfacceClassi astratte e interfacce a confrontoInterfacce funzionaliRiepilogo: sistema di pagamento9Tipi generici
Introduzione ai tipi genericiClassi genericheMetodi genericiParametri di tipo con limitiCaratteri jolly (?, extends, super)Riepilogo - Contenitore generico12Modelli di progettazione – Parte 2
Pattern CommandPattern AdapterPattern DecoratorPattern Template MethodPattern StatePattern CompositePattern IteratorEsercitati da solo: Compilatore Java online