Heim > Java > javaLernprogramm > Führen Sie die Objektorientierung ein

Führen Sie die Objektorientierung ein

Barbara Streisand
Freigeben: 2024-12-31 18:04:11
Original
296 Leute haben es durchsucht

In diesem Kapitel lernen wir etwas über Objektorientierung (OO) und erkunden die Vorteile, die sie im Softwaresystementwicklungsprozess mit sich bringt.

Warum brauchen wir Objektorientierung (OO) in der Softwareentwicklung?

Um diese Frage zu beantworten, schauen wir uns zunächst (kurz) an, wie Softwaresysteme mit der Methode Strukturierte Programmierung (auch bekannt als Funktionale Programmierung) entworfen werden.

1. Strukturierte Programmierung:

Bei der Strukturierten Programmierung besteht die allgemeine Methode darin, das Problem zu analysieren und es in Funktionen zu zerlegen, um bestimmte Aufgaben auszuführen. Die meisten dieser Funktionen benötigen zur Verarbeitung einen Datentyp. Daten in einem funktionalen System werden normalerweise in einer Datenbank gespeichert oder können als globale Variablen im Speicher gehalten werden.

Nehmen wir ein einfaches Beispiel eines Schulverwaltungssystems. Dieses System speichert Daten aller Schüler und Dozenten der Schule. Gleichzeitig verwaltet es auch Informationen über die an der Schule angebotenen Kurse und verfolgt, welche Schüler welche Kurse belegen.

Das System muss Informationen über Schüler, Lehrer, Prüfung und Kurs speichern und ist mit folgenden Funktionen ausgestattet:

  • add_student
  • zur_Prüfung eingeben
  • check_exam_marks
  • issue_certificate
  • ausweisen_student

Von dort aus können wir wie folgt ein Diagramm von Daten, Funktionen und Abhängigkeiten erstellen:
Introduce Object Orientation

Das Problem bei diesem Ansatz besteht darin, dass die Wartung des Systems immer schwieriger wird, wenn das von uns gelöste Problem zu komplex wird. Nehmen wir das obige Beispiel: Was passiert, wenn eine Anfrage die Art und Weise ändert, wie Student mit Daten umgeht, wie etwa die Umwandlung von „Geburtsjahr“ von zwei Wörtern und Zahlen in vier Ziffern? Schon diese kleine Änderung kann zu unvorhergesehenen Nebenwirkungen führen und schwerwiegende Probleme verursachen. Die Daten von Prüfung, Kurs und Lehrer hängen alle von den Daten von Student ab. Darüber hinaus haben wir möglicherweise die Funktionen add_student, enter_for_exams, issue_certificate und expel_student beschädigt. Beispielsweise wird add_student definitiv nicht mehr funktionieren, da es zweistellige Daten für „Geburtsjahr“ anstelle von vier Ziffern benötigt.

Aus dem obigen Beispiel können wir einige Nachteile der strukturierten Programmierung erkennen, einschließlich der Interdependenz zwischen Funktionen und Daten, die zu schwerer Wartung führt, schwer zu erweitern und leicht auf unerwartete Probleme zu stoßen beim Ändern von Daten. Um diese Probleme zu lösen, brauchen wir einen neuen Ansatz, und zwar Objektorientiert (OO).

2. Objektorientiert:

2.1. Konzept:

Objekt: kann als eine spezifische Entität verstanden werden, die aus 2 Hauptkomponenten besteht:

  • Attribute: Sind die Informationen und Eigenschaften des Objekts.

  • Methoden: Sind Operationen und Aktionen, die ein Objekt ausführen kann.

Aus dem obigen Beispiel des Problems Schulverwaltungssystem können wir die folgenden Objekte haben:
Introduce Object Orientation

Klasse: ist ein Datentyp, der vordefinierte Eigenschaften und Methoden enthält, die Objekte haben werden. Wir können Klasse als Vorlage zum Erstellen von Objekten verstehen.

Zum Beispiel:Klasse Schüler ist eine gemeinsame Definitionsvorlage für alle Schüler, einschließlich gemeinsamer Eigenschaften und Methoden wie Name, Geburtsjahr und anderen Vorgängen wie der Einschreibung in die Schule. Das Subjekt ist ein bestimmter Schüler namens Nguyen Van A, geboren 2004 mit den Merkmalen der Klasse Student

2.2. Grundprinzipien von OOP:

Kapselung

Kapselung ist die Gruppierung verwandter Eigenschaften und Methoden in derselben Klasse zum Zweck einer effektiven Verwaltung und Nutzung. Dies reduziert die Komplexität und erhöht die Sicherheit, während der Code gleichzeitig einfach zu warten und zu erweitern ist.

public class Student {
    private String name;
    private String dateOfBirth;


    public void registerForCourse(Course course) {
        course.addStudent(this);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Studenteninformationen werden in der Student-Klasse gekapselt und Aktionen im Zusammenhang mit Student werden über Methoden in dieser Klasse ausgeführt.

Vererbung

Vererbung ermöglicht einer untergeordneten Klasse, die Eigenschaften und Methoden der übergeordneten Klasse zu erben, um Quellcode optimal wiederzuverwenden und die Funktionalität einfach zu erweitern.

public class Person {
    private String name;
    private String dateOfBirth;
}

public class Student extends Person {
    private double gpa;
}

public class Teacher extends Person {
    private String department;
}
Nach dem Login kopieren

Schüler und Lehrer erben beide von der Klasse Person und tragen so zur Wiederverwendung gemeinsamer Eigenschaften bei. Jede Unterklasse kann separate Eigenschaften oder Methoden hinzufügen.

Polymorphismus

Polymorphismus ermöglicht die Implementierung einer Methode auf viele verschiedene Arten, d. h. die Methode kann in einer Unterklasse mit unterschiedlichem Verhalten neu definiert werden.

public class Person {
    public void introduce() {
        System.out.println("I am a person.");
    }
}

public class Student extends Person {
    @Override
    public void introduce() {
        System.out.println("I am a student.");
    }
}

public class Teacher extends Person {
    @Override
    public void introduce() {
        System.out.println("I am a teacher.");
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        Person student = new Student();
        Person teacher = new Teacher();

        person.introduce(); // I am a person.
        student.introduce(); // I am a student.
        teacher.introduce(); // I am a teacher.
    }
}
Nach dem Login kopieren

Die Methode introduce ist in der Klasse Person definiert und wird in den Unterklassen Student und Teacher überschrieben. Auch wenn der Typ Person verwendet wird, verwendet das System beim Aufruf der Methode introduce die entsprechende Methode des tatsächlichen Objekts (Student oder Teacher). ), weist Polymorphismus auf.

Abstraktion

Abstraktion ist eine Methode, mit allgemeinen Konzepten zu arbeiten, ohne sich zu sehr auf spezifische Implementierungsdetails zu konzentrieren, wodurch die Flexibilität erhöht und die Komplexität verringert wird.

public class Student {
    private String name;
    private String dateOfBirth;


    public void registerForCourse(Course course) {
        course.addStudent(this);
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Mit Abstraction definieren wir eine abstrakte Klasse (Course) mit generischen Methoden (startCourse()). Unterklassen wie MathCourse und ScienceCourse implementieren diese Methoden im Detail, wodurch das System einfach erweitert und angepasst werden kann.

3. Vorteile der objektorientierten Programmierung:

  • Dank der Vererbung können Klassen ohne Wiederholung von Code erweitert werden, wodurch Redundanz minimiert und die Effizienz gesteigert wird.
  • Sparen Sie Zeit und steigern Sie die Produktivität.
  • Das Konzept von Klassen und Objekten trägt dazu bei, reale Entitäten natürlicher und klarer auf Computern zu simulieren und gleichzeitig die Einschränkungen der strukturorientierten Programmierung zu überwinden.

Das obige ist der detaillierte Inhalt vonFühren Sie die Objektorientierung ein. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage