Heim > Java > javaLernprogramm > „Ich habe gefischt, Java!': Klasse und Objekt im Fokus: Von der Abstraktion zur Realität

„Ich habe gefischt, Java!': Klasse und Objekt im Fokus: Von der Abstraktion zur Realität

DDD
Freigeben: 2025-01-10 08:36:46
Original
116 Leute haben es durchsucht

Bei der objektorientierten Programmierung (OOP) versuchen wir, Elemente der realen Welt in unseren Programmen darzustellen. Dazu abstrahieren wir vom Objekt seine Eigenschaften (was es hat) und sein Verhalten (was es tut) und übersetzen diese Ideen in Klassen und Objekte. Auf diese Weise können wir Zustände und Verhaltensweisen eines bestimmten Objekttyps kapseln und so dessen Wartung und Wiederverwendung im Code erleichtern.

Stellen Sie sich zum Beispiel vor, wir möchten in unserem Programm einen Stift darstellen. Was wären seine Eigenschaften? und wie würden sie sich verhalten? Gestalten wir den Stift dann wie folgt:

Um diese Abstraktion in Code zu übersetzen, haben wir eine Klasse erstellt, die als „Form“ oder „Projekt“ fungiert, das die Eigenschaften und Verhaltensweisen eines Stifts festlegt. Die Klasse definiert, was jedes Objekt dieses Typs haben wird (z. B. Attribute) und was es tun kann (z. B. Methoden). Somit dient die Klasse als abstrakte Darstellung, während das Objekt eine konkrete/reale Instanz dieser Klasse ist.

Wenn wir ein Objekt aus einer Klasse erstellen, wird es zu einer einzelnen Instanz, deren Instanzvariablen bestimmte Werte zugewiesen werden. So laut Paul Deitel und Harvey Deitel (2017, S. 56): „Jede neue Klasse, die Sie entwickeln, wird zu einem neuen Typ, der zum Deklarieren von Variablen und zum Abgrenzen von Objekten verwendet werden kann.“ Mit anderen Worten: Es können verschiedene Objekte desselben Typs (aus derselben Klasse erstellt) wie im Fall eines „Stifts“ erstellt werden und möglicherweise das gleiche Verhalten aufweisen, aber jedes Objekt hat unterschiedliche Werte für seine Attribute , was sie einzigartig macht. Zum Beispiel beim Erstellen von Stift A:

Mit diesen Definitionen im Hinterkopf muss man beim Entwerfen einer Klasse darüber nachdenken, was das Objekt über sich selbst weiß und was es tut (BATES, Bert; SIERRA, Kathy, 2005). Was es über sich selbst weiß, nennen wir Instanzvariablen (Zustand) und was es tut, sind seine Methoden (Verhalten). Die Klasse fasst die Struktur und das Verhalten zusammen, die das Objekt haben muss. Beim Erstellen eines Objekts aus der Klasse wird es mit denselben allgemeinen Merkmalen konstruiert, die in der Klasse beschrieben sind, und stellt eine konkrete Instanz des abstrakten Konzepts dar. Allerdings verfügt jedes Objekt über eigene Werte für Attribute, die seine einzigartigen Eigenschaften widerspiegeln.

Klasse oder Objekt: Wer wird zuerst geboren?

Wenn man die Klasse als abstrakte „Vorlage“ für die Konstruktion des Objekts versteht, wird sie tatsächlich zur Grundlage, während das Objekt die Konkretisierung dieses Modells darstellt. Mit anderen Worten: Die Klasse wird zuerst geboren und etabliert sich als eine Art Objekt. Es ist nicht möglich, ein Objekt zu erstellen, ohne dass eine Klasse vorhanden ist, da die Klasse die notwendige Struktur für seine Erstellung bereitstellt. Somit stellt die Klasse den Ausgangspunkt dar, während das Objekt die Materialisierung dieses Projekts in eine reale und nutzbare Instanz innerhalb des Programms ist.

Jetzt können wir das Konzept von Klasse und Objekt direkt auf den Code anwenden, mit einem praktischen Beispiel für die Modellierung eines Autos in der objektorientierten Programmierung.

Zuerst müssen wir uns fragen: Was wissen wir über Autos? Was hat jedes Auto? Es hat Türen, wird mit Alkohol, Benzin oder anderen Kraftstoffen betrieben, kann automatisch oder manuell sein, hat ein Modell, eine Farbe und eine Passagierkapazität. Diese Merkmale stellen den Zustand des Fahrzeugs dar, also die Attribute, die es definieren.

Und was kann er tun? Es kann beschleunigen, bremsen, starten, anhalten, hupen, die Türen öffnen oder die Scheinwerfer aktivieren. Diese Aktionen stellen das Verhalten des Autos dar, also die Methoden, die beschreiben, wozu es in der Lage ist.

Unten sehen wir die Implementierung eines Autos als Klasse (Car), die seine Attribute und Methoden kombiniert. Den bewährten Praktiken folgend haben wir den gesamten Code auf Englisch geschrieben:

public class Car {

    private String model;
    private String color;
    private String fuelType;
    private int passengerCapacity;

    public Car(String model, String color, String fuelType, int passengerCapacity) {
        this.model = model;
        this.color = color;
        this.fuelType = fuelType;
        this.passengerCapacity = passengerCapacity;
    }

    public void accelerate() {
        System.out.println("The car is accelerating.");
    }

    public void brake() {
        System.out.println("The car is braking.");
    }

    public void start() {
        System.out.println("The car is started.");
    }

    public void stop() {
        System.out.println("The car is stopped.");
    }

    public void honk() {
        System.out.println("The car is honking.");
    }

    public void displayDetails() {
        System.out.println("Model: " + model);
        System.out.println("Color: " + color);
        System.out.println("Fuel Type: " + fuelType);
        System.out.println("Passenger Capacity: " + passengerCapacity);
    }
}

Nach dem Login kopieren

Jetzt erstellen wir ein Car-Objekt aus der Car-Klasse, um es in unserem Code zu verwenden, und demonstrieren so die Funktion der Klasse als Modell zum Erstellen des Objekts und des Objekts als die aus diesem Modell erstellte reale Version

public class Main {
    public static void main(String[] args) {

        Car carA = new Car("Fusca", "Blue", "Gasoline", 4);

        carA.displayDetails();

        carA.start();
        carA.accelerate();
        carA.honk();
        carA.brake();
        carA.stop();
    }
}
Nach dem Login kopieren

In diesem Beispiel zeigen wir, dass wir beim Entwerfen einer Klasse tatsächlich ein abstraktes Modell erstellen, das in mehreren Instanzen implementiert werden kann, jede mit ihren eigenen Daten. Dies ist die Essenz der objektorientierten Programmierung: abstrakte Ideen in konkrete Darstellungen zur Anwendung im Code umzuwandeln.

Da Sie nun wissen, wie Klassen und Objekte funktionieren, welche anderen Objekte könnten Sie im Code darstellen? Und für diejenigen, die bereits umfangreiche Erfahrung haben: Was war die kreativste oder anspruchsvollste Klasse, die Sie jemals in einem Projekt erstellt haben?

Quellen:

DEITEL, Paul; DEITEL, Harvey. Java: So programmieren Sie. São Paulo: Pearson
Bildung in Brasilien, 2017.

SIERRA, Kathy; BATES, Bert. Benutze deinen Kopf! Java. 2. Aufl. Rio de Janeiro: Editora Alta Books, 2005.

Das obige ist der detaillierte Inhalt von„Ich habe gefischt, Java!': Klasse und Objekt im Fokus: Von der Abstraktion zur Realität. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage