Einleitung in eine Gegenstand-orientierte Programmierung (OOP)


  Share  
|


Der Übergang von einer Verfahrensprogrammieren(non-OOP) Sprache zu einer objektorientierten Programmiersprache ist ein großer Schritt für viele Programmierer. Es ist zutreffend, daß beide Methoden der Programmierung die gleichen Ziele schließlich erzielen können, aber Sie OOP sind eine ordentlichere und schnellere Weise zu programmieren finden, ist es für Teamwork verwendbarer, und Programme sind normalerweise einfacher mit der objektorientierten Annäherung zu entwerfen. Mit OOP in Java, finden Sie, daß die Programmierung schwierig ist, mit anzufangen, dennoch sehr einfach und Sie, sehr, einmal belohnend erarbeiten Sie es.

Was ist ein Gegenstand?

Gegenstände sind die Bausteine, die ein Programm bilden. Es ist schwierig, genau zu erklären, was ein Gegenstand ist, weil ein Gegenstand aller sein kann, den Sie wünschen. Z.B. können Sie einen Gegenstand verursachen, der einen Ausländer darstellt, der alle Informationen halten bezogen auf dem Ausländer und die Funktionalität auch enthalten kann, die mit ihm verbunden ist. Sie können Daten wie die Zahl Leben, die der Ausländer und die Funktionalität, die hat Daten auch zu beeinflussen, wie Code einschließen, um den Ausländer zu töten, der eins der Leben entfernen könnte.

Die wesentlichen Elemente, die einen Gegenstand bilden, sind Variablen und Methoden. Variablen sind Datenmitglieder oder Attribute, die Daten in bezug auf den Gegenstand, wie eine Textfolge oder einen numerischen Wert enthalten. Methoden liefern die Funktionalität des Gegenstandes und können verwendet werden, auf die Attribute einzuwirken. Methoden sind alias Funktionen oder Verfahren in den vielen Programmiersprachen.

Gegenstand-Orientierte Programmierung in Java
Die Java Sprache ist vollständig der orientierte Gegenstand. Dies heißt, daß es keine globalen Aussagen whatsoever gibt (obgleich statische Mitglieder begriffen werden können, wie global.we ein wenig seiend statische Mitglieder später bespricht). Alle mögliche Attribute oder Methoden müssen als Teil einer Kategorie oder einer Schnittstelle definiert werden.

Eine Kategorie in Java wird benutzt, um die Struktur eines Gegenstandes zu definieren. Eine Kategorie kann unten in drei Hauptteile gebrochen werden: Erbauer, Attribute (Eigenschaften) und Methoden.

Lassen Sie uns jetzt ein Beispiel einer sehr einfachen Kategorie Struktur betrachten, die diese drei Teile enthält, bevor wir irgendwie weiter gehen. Ein Beispiel einer Kategorie könnte eine Person sein, die die Attribute und die Methoden beschreiben könnte, die eine Person mit ihnen verbunden haben könnte. Ein Gegenstand kann von der Personkategorie, wie Ihnen oder mir oder sogar von Ihrem Partner dann verursacht werden (wenn Sie nicht einen Partner haben, hervorquellen dann getan; Sie sind ein zutreffender Programmierer).

Um einen Gegenstand zu verursachen, müssen wir eine Kategorie zuerst verursachen. Sorgen Sie nicht sich um irgendwelche des Codes im Augenblick kompilieren; sitzen Sie einfach zurück, ergreifen Sie einen Kaffee und Versuch, um etwas Grundlagen zu verstehen.

Ist hier der Anfang unserer "Person" Kategorie:

Kategorie Person {}

Jetzt in dem Augenblick als, wir den umreiscode für eine Personkategorie haben. Zuerst sollten wir einige Attribute addieren. Lassen Sie uns ein numerisches Attribut der Kategorie hinzufügen, um das Alter einer Person zu speichern.

klassifizieren Sie Person {internes Alter; }

Die internen Standplätze des Schlüsselwortes für Ganzzahl, eine numerische Datenart darstellend. An diesem Punkt ist die Personkategorie alle Attribute und keine Funktionalität (offenbar zeigend auf eine Karriere in der Politik). Wir können eine Methode der Kategorie hinzufügen, wie folgt die benutzt werden kann, um den Wert im Alter zu ändern:

klassifizieren Sie Person {Öffentlichkeit leeres 
setAge(int newAge) {// Satz, den das Alter zum Wert im newAge Alter = 
im newAge speicherte; } internes Alter; }

Jetzt haben wir eine Kategorie, die Person genannt wird und enthalten ein Methode benanntes setAge und ein Attribut benanntes Alter. Das Methode setAge kann verwendet werden, um einen neuen Wert dem Alter der Person zuzuweisen. Wieder sorgen Sie zuviel sich nicht um, wie Methoden vorläufig arbeiten; Ihr Kaffee sollte genug kühl gerade sein, ungefähr jetzt zu trinken.

Um einen Gegenstand (oder einen Fall, während es bekannt) auch von der Personkategorie zu verursachen, muß ein Erbauer hervorgerufen werden. Alle Kategorien enthalten einen Rückstellung Erbauer, der nichts tut und mit vielen Erbauerarten überbelastet werden kann, da wir sehen.

Erbauer

Der Erbauer ist eine Methode, die benannt wird, wenn der Gegenstand, um den Zustand des Gegenstandes zu initialisieren verursacht und benutzt wird. Der Erbauer muß mit dem gleichen Namen erklärt werden, der die Kategorie, in der sie enthalten wird und nicht einen Rückholwert haben kann. Wir fügen jetzt zwei Erbauer der Personkategorie hinzu:

klassifizieren Sie Person {allgemeines Person() {// 
grundlegendes Erbaueralter wird bis 0 durch Rückstellung 
eingestellt}, allgemeines Person(int newAge) {// contructor, das das 
Alter auf ein spezifiziertes Wert setAge(newAge) einstellt; } 
Öffentlichkeit leeres setAge(int newAge) {// Satz das Alter zum Wert 
gespeichert im newAge Alter = im newAge; } internes Alter; 
}

Sie können einen Hinweis auf einem Persongegenstand erklären, wie folgt:

Person billyGate;
In dem Augenblick als, Sie einen Hinweis auf einem Gegenstand der Art Person haben, die z.Z. keinen Gegenstand bezieht. Die Gliedas des Gegenstandes können nicht, wie das Attributalter angesprochen werden, weil kein Gegenstand verursacht worden ist. Merken Sie, daß das Bezugsvariable billyGate wirklich Null an diesem Punkt gleich ist.

Ein Anruf zu einem Erbauer muß gebildet werden, um einen neuen Gegenstand der Art Person zu verursachen und das variable billyGate zuweisen, um den neuen Gegenstand zu beziehen.

Wenn keine Erbauer für eine Kategorie erklärt werden, ist ein Rückstellung Erbauer daß Nehmen keine Parameter vorhanden und verursacht einfach einen Rückstellung Gegenstand der Kategorie, wenn er hervorgerufen wird. In unserem Code snippet haben wir unseren eigenen Rückstellung Erbauer Person() hergestellt, der keinen Code enthält, und ein zweiter Erbauer benannte auch Person(int newAge), das Code enthält, der das Wertalter in der Person einstellt, die, Gegenstand zu einem neuen Alter durch einen Parameterinhalt spezifizierte.

Merken Sie hatte uns erklärte nur den zweiten Erbauer und ausließ den ersten Erbauer, dort würde sein nicht mehr ein vorhandener Rückstellung Erbauer, der keine Parameter nimmt, da der Rückstellung Erbauer nur besteht, wenn die Kategorie keine verbraucherbestimmten Erbauer enthält.

Um einen Gegenstand von der Personkategorie zu verursachen, könnten wir die folgende Linie des Codes benutzen:

//zweiten Erbauer verwendend, stellten Alter Wert auf das 
21 Person billyGate = neues Person(21) ein;

Diese Linie des Codes erklärt einen Bezeichner, der billyGate der Art Person genannt wird und verursacht einen "neuen" Persongegenstand mit dem zweiten Erbauer in der Personkategorie, den Gegenstand zu initialisieren und stellt den Alter Wert im neuen Persongegenstand bis 21 ein.

Wir könnten den folgenden Code, dieses mal mit dem ersten (Rückstellung) Erbauer auch anstatt verwenden, den Gegenstand zu initialisieren und den Wert des Alters mit der setAge Methode dann einzustellen, die ein Mitglied des eben verursachten Gegenstandes ist.

//erstes billyGate Person Erbauer des Gebrauches = neues 
Person(); //Gebrauch setAge Mitglied, zum des Alters bis 21 
billyGate.setAge(21) einzustellen; //Satz der Wert des Alters 
bis 21

Wir können das variable und gesetzte Alter auch direkt zugänglich machen sein Wert, wie folgt:

billyGate.age = 21;

Anmerkung können Sie nicht zwei Erbauer mit der gleichen Unterschrift haben.

Bis jetzt haben wir instantiation gesehen, das die Bezeichnung ist, die verwendet wird, um die Kreation eines Gegenstandes oder des Falls einer Kategorie zu beschreiben. Das folgende Diagramm hilft Ihnen hoffnungsvoll, dieses besser zu verstehen wenig, wie es das Verhältnis zwischen der Personkategorie und den Gegenständen zeigt, die von ihm verursacht werden.

Ein Gegenstandmitglied ist ein Mitglied, das verursacht wird, wenn der Gegenstand verursacht wird. Dies heißt, daß es nur erreicht werden kann, sobald der Gegenstand verursacht worden ist, weil anders er nicht besteht. Das Beispiel, das wir gerade gesehen haben, verursacht einen Fall der Kategorie Person, die durch billyGate bezogen wird. Wir könnten viel mehr Fälle der Personkategorie auch verursacht haben. Nehmen Sie an, daß wir sagten, daß der billyGate Gegenstand die einzige Person war, die wir überhaupt würden herstellen müssen oder wollen; dann könnten wir die Personkategorie zusammen ausrangieren und eine neue Kategorie einfach zu verursachen rief BillyGate anstatt an.

klassifizieren Sie BillyGate {allgemeines statisches 
leeres setAge(int newAge) {// Satz, den das Alter zum Wert im newAge 
Alter = im newAge speicherte; } internes statisches Alter; 
}

Beachten Sie, daß wir die Erbauer entfernt und das statische Schlüsselwort den zwei definierten Mitgliedern hinzugefügt haben. Dieses ist, weil wir nicht mehr einen Fall dieser Kategorie verursachen müssen. Wir können die statischen Gliedas gerade ansprechen, den Kategorie Namen verwendend. Z.B.:

BillyGate.setAge(21);

Diese statischen Mitglieder bekannt als Kategorie Mitglieder, während, bevor wir Gegenstandmitglieder hatten.

Die Beispiele, die wir bis jetzt verwendet haben, enthalten nur entweder Gegenstandmitglieder oder Kategorie Mitglieder; Sie können beide selbstverständlich verwenden. Lassen Sie uns Rückhol zu unserer Personkategorie jetzt und addieren Sie ein statisches Attribut. Das statische Attribut muß etwas sein, das dasselbe für alle Person sein wird einwendet, daß wir verursachen. So könnten wir eine Ganzzahlvariable genannt daysInAYear addieren.

Kategorie Person {// Code wie vor statischem internem 
daysInAYear; }

Wir können das daysInAYear Attribut zugänglich machen, bevor wir alle mögliche Gegenstände von der Personkategorie verursachen. Z.B.:

Person.daysInAYear = 365;

Wenn wir neue Fälle der Person verursachen, dann können sie das statische variable daysInAYear auch zugänglich machen.

Person glennMurphy = neues Person(21); Person 
andrewMulholland = neues Person(20); glennMurphy.daysInAYear = 
366; //ist es ein Schaltjahr 
System.out.println(andrewMullholland.daysInAYear);

Dieser Code verursacht zwei neue Fälle der Person, bezogen durch glennMurphy und andrewMulholland. Der glennMurphy Gegenstand stellt dann das statische variable daysInAYear bis 366 ein, und der andrewMulholland Gegenstand macht daysInAYear zugänglich und druckt seinen Wert zum Konsole Fenster. Die Zahl, die zum Konsole Fenster gedruckt wird, ist 366, das daysInAYear das bedeutet, gehört nicht irgendwelchen der Gegenstände alleine; sie gehört alle und die Änderungen, die von einer vorgenommen werden, beeinflussen die andere. Es gibt nur ein Teil des Gedächtnisses den Wert 366 enthalten, auf dem alle sie verweisen. Kurz gesagt ist es das gleiche Attribut, jedoch, das es erreicht wird.

Hinweise

Um Gegenstände (erinnern Sie sie Fälle der Kategorien daß sich sind) in Java zugänglich zu machen, verwenden wir was als Hinweise bekannt. Wir haben drei Hinweise bis jetzt in unseren Codebeispielen verwendet: billyGate, glennMurphy und andrewMulholland. Diese waren nicht die tatsächlichen Gegenstände, die wir verursachten, aber beziehen bloß (alias Handgriffe) zu den verursachten Gegenständen. Nehmen Sie den folgenden Code zum Beispiel:

andrewMulholland = glennMurphy; //ist er nie mein 
Gleichgestelltes

Dieser Code läßt einfach andrewMulholland den gleichen Gegenstand beziehen, der glennMurphy Hinweise; folglich konnten Sie den gleichen Gegenstand mit irgendeinem der zwei Hinweise dann zugänglich machen.

Der Gegenstand mit dem Alter, das bis 20 gleich ist, daß das einmal bezogene andrewMulholland jetzt verloren ist, aber sorgen nicht sich um das Freigeben des Gedächtnisses; dieses wird um durch Abfallkollektor Java kümmert.

dieses ist ein Artikel, der durch Gabriela C. Perez hinzugefügt wird


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions