suchen
HeimJavajavaLernprogrammFühren Sie die Objektorientierung ein

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);
    }
}

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;
}

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.
    }
}

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);
    }
}

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!

Stellungnahme
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
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.