Gegenstand (Informatik)

In der Informatik ist ein Gegenstand eine Position im Gedächtnis, das einen Wert und Verweise angebracht durch einen Bezeichner hat. Ein Gegenstand kann eine Variable, Funktion oder Datenstruktur sein. (Mit der späteren Einführung der objektorientierten Programmierung desselben Wortes, "Gegenstands", bezieht sich auf ein besonderes Beispiel einer Klasse)

Objektorientierte Programmierung

Gegenstände in der "objektorientierten Programmierung" sind grundsätzlich mit den verbundenen in einer Prozession gehenden Routinen verbundene Datenstrukturen. Zum Beispiel ist eine Datei ein Gegenstand: Eine Datenerfassung und das verbundene gelesen und schreiben Routinen. Gegenstände werden als instantiations von Klassen betrachtet. Auf gut deutsch kennzeichnet man eine Datei als eine Klasse, während die Datei der Gegenstand ist. Eine Klasse definiert Eigenschaften ein Verhalten einmal gewöhnlich für vielfachen instantiations. In anderem disciplies ist dieser distincion auch bekannt als Informationszweiteilung der Klasse/Arten.

Im Gebiet der objektorientierten Programmierung eines Gegenstands wird gewöhnlich genommen, um eine ephemere Kompilation von Attributen (Gegenstand-Elemente) und Handlungsweisen (Methoden oder Unterprogramme) zu bedeuten, eine Entität kurz zusammenzufassen. Auf diese Weise, während primitive oder einfache Datentypen noch gerade einzelne Information sind, sind objektorientierte Gegenstände komplizierte Typen, die vielfache Information und spezifische Eigenschaften (oder Attribute) haben. Anstatt ein Wert, (wie interne Nummer =10) bloß zugeteilt zu werden, müssen Gegenstände "gebaut" werden. In der echten Welt, wenn ein Ford Focus ein "Gegenstand" ist - würde ein Beispiel der Autoklasse, seiner physikalischen Eigenschaften und seiner Funktion zu fahren individuell angegeben worden sein. Sobald die Eigenschaften des Ford Focus "Gegenstand" in die Form der Autoklasse angegeben worden waren, kann es endlos kopiert werden, um identische Gegenstände zu schaffen, die schauen und auf gerade dieselbe Weise fungieren. Als ein alternatives Beispiel ist Tier eine Superklasse des Primats, und Primat ist eine Superklasse des Menschen. Personen wie Joe Bloggs oder Unbekannter würden besondere Beispiele oder 'Gegenstände' der menschlichen Klasse sein, und folglich alle Eigenschaften der menschlichen Klasse (und der Primat- und Tiersuperklassen ebenso) besitzen.

"Gegenstände" sind das Fundament der objektorientierten Programmierung, und sind grundsätzliche Datentypen auf objektorientierten Programmiersprachen. Diese Sprachen stellen umfassende syntaktische und semantische Unterstützung für das Gegenstand-Berühren, einschließlich eines hierarchischen Typ-Systems, spezieller Notation zur Verfügung, um Methoden und Möglichkeiten zu erklären und zu nennen, um ausgewählte Felder vor Kundenprogrammierern zu verbergen. Jedoch können Gegenstände und objektorientierte Programmierung auf jeder Sprache durchgeführt werden.

Gegenstände werden in der Softwareentwicklung verwendet, um abstrakte Datenstrukturen, durch das Zusammenbringen der Datenbestandteile mit den Verfahren durchzuführen, die sie manipulieren. Gegenstände in der objektorientierten Programmierung sind Schlüssel im Konzept des Erbes; dadurch sich verbessernde Programm-Zuverlässigkeit, Vereinfachung der Softwarewartung, das Management von Bibliotheken und die Abteilung der Arbeit in Programmierer-Mannschaften. Objektorientierte Programmiersprachen werden allgemein entworfen, um diese potenziellen Vorteile des Gegenstand-Modells auszunutzen und geltend zu machen. Gegenstände können es auch möglich machen, sehr ungleiche Gegenstände durch dasselbe Stück des Codes zu behandeln, so lange sie alle die richtige Methode haben.

Eigenschaften eines Gegenstands

Drei Eigenschaften charakterisieren Gegenstände:

  1. Identität: Das Eigentum eines Gegenstands, der es von anderen Gegenständen unterscheidet
  2. Staat: Beschreibt die Daten, die im Gegenstand versorgt sind
  3. Verhalten: Beschreibt die Methoden in der Schnittstelle des Gegenstands, durch die der Gegenstand verwendet werden kann

Mechanismus

Das moderne Konzept "des Gegenstands" und der objektorientierten Annäherung an die Programmierung wurde durch die 1967 ursprünglich veröffentlichte Programmiersprache von Simula eingeführt, verbreitet durch den Plausch hat zwei Jahre später 1969 veröffentlicht, und ist Standardwerkzeuge des Handels mit der Ausbreitung von C ++ ursprünglich veröffentlicht 1983 geworden.

In der "reinen" objektorientierten Annäherung sollte auf die Datenfelder eines Gegenstands nur durch seine Methoden (Unterprogramme) zugegriffen werden. Es wird gefordert, dass diese Regel es leicht macht zu versichern, dass die Daten immer in einem gültigen Staat bleiben werden.

Syntaktisch, auf fast allen objektorientierten Programmiersprachen, wird ein Punkt.Maschinenbediener (gelegt zwischen einem Gegenstand und seinem symbolischen Methode-Namen) verwendet, um eine besondere Methode/Funktion eines Gegenstands zu nennen. Denken Sie zum Beispiel eine arithmetische Klasse genannt Arith_Class. Diese Klasse enthält Funktionen mögen tragen bei, machen Abstriche, multiplizieren und teilen sich , dieser Prozess Ergebnisse für zwei ihnen gegebene Zahlen. Diese Klasse konnte verwendet werden, um das Produkt 78 und 69 durch das erste Schaffen eines Gegenstands der Klasse und dann des Hervorrufens sein zu finden, multiplizieren Sie Methode wie folgt:

1 interne Nummer resultiert = 1;//Initialisierung

2 arith_Obj1 = neuer Arith_Class ;//das Schaffen eines neuen Gegenstands von Arith_Class

3 Ergebnis = arith_Obj1.multiply (78,69);//ist zurückgekehrt Wert dessen multiplizieren Funktion, Laden in der Ergebnis-Variable.

Auf einer Sprache, wo jeder Gegenstand von einer Klasse geschaffen wird, wird ein Gegenstand ein Beispiel dieser Klasse genannt. Wenn jeder Gegenstand einen Typ hat, würden zwei Gegenstände mit derselben Klasse denselben Datentyp haben. Das Schaffen eines Beispiels einer Klasse wird manchmal das Realisieren der Klasse genannt.

Ein wirkliches Beispiel eines Gegenstands würde "mein Hund" sein, der ein Beispiel eines Typs (eine Klasse) genannt "Hund" ist, der eine Unterklasse einer Klasse "Tier" ist. Im Fall von einem polymorphen Gegenstand können einige Details seines Typs zum Beispiel auswählend ignoriert werden ein "Hund"-Gegenstand konnte durch eine Funktion verwendet werden, nach einem "Tier" suchend. So hat eine "Katze" gekonnt, weil sie auch der Klasse "des Tieres" gehört. Während sie als ein "Tier" zugegriffen werden, würden einige Mitglied-Attribute eines "Hunds" oder "Katze" nicht verfügbar wie das "Schwanz"-Attribut bleiben, weil nicht alle Tiere Schwänze haben.

Ein "Geist" ist ein Gegenstand, in dem in einem Programm Verweise unangebracht wird, und so keinem Zweck dienen kann. Auf einer Müll-gesammelten Sprache kennzeichnet der Müllmann das Gedächtnis, das durch den Gegenstand als besetzt ist, frei, obwohl es noch die Daten des Gegenstands hält, bis es überschrieben wird.

Spezialgegenstände

Es gibt bestimmte Spezialgegenstände, die durch die Art des Designmusters geschaffen werden können, das verwendet wird, um sie zu schaffen, und gewöhnlich jene Gegenstände nach ihren Designmustern selbst genannt werden. Einige Begriffe für Spezialarten von Gegenständen schließen ein

  • Funktionsgegenstand: Ein Gegenstand mit einer einzelnen Methode (in C ++, diese Methode würde der Funktionsmaschinenbediener sein, "Maschinenbediener "), der viel wie eine Funktion (wie ein C/C ++ Zeigestock zu einer Funktion) handelt.
  • Unveränderlicher Gegenstand: Ein Gegenstand hat sich mit einem festen Staat in der Entwicklungszeit niedergelassen, und der sich später nicht ändert.
  • Erstklassiger Gegenstand: Ein Gegenstand, der ohne Beschränkung verwendet werden kann.
  • Behälter: Ein Gegenstand, der andere Gegenstände enthalten kann.
  • Fabrikgegenstand: Ein Gegenstand, dessen Zweck ist, andere Gegenstände zu schaffen.
  • Metaobject: Ein Gegenstand, von dem andere Gegenstände geschaffen werden können (Vergleichen sich mit der Klasse, die nicht notwendigerweise ein Gegenstand ist)
  • Prototyp: Ein spezialisierter metaobject, von dem andere Gegenstände durch das Kopieren geschaffen werden können
  • Gott-Gegenstand: Ein Gegenstand, der zu viel weiß oder zu viel tut. Der Gott-Gegenstand ist ein Beispiel eines Antimusters.
  • Singleton-Gegenstand: Ein Gegenstand, der das einzige Beispiel seiner Klasse während der Lebenszeit des Programms ist.
  • Filtergegenstand

In der verteilten Computerwissenschaft

Die Definition eines Gegenstands als eine Entität, die eine verschiedene Identität, Staat und Verhalten hat, und, es wird gefordert, der Grundsatz von encapsulation, kann zum Bereich der verteilten Computerwissenschaft vorgetragen werden. Paradoxerweise streckt sich encapsulation bis zu ein Verhalten eines Gegenstands nicht aus, da sie (oder sogar ihre Methode-Namen) zusammen mit den Daten nicht in Fortsetzungen veröffentlicht werden. Mehrere Erweiterungen auf das grundlegende Konzept eines Gegenstands sind vorgeschlagen worden, die diese allgemeinen Eigenschaften teilen:

  • Verteilte Gegenstände sind "gewöhnliche" Gegenstände (Gegenstände im üblichen Sinn - d. h. nicht OOP Gegenstände), die an mehreren verschiedenen abgelegenen Standorten aufmarschiert worden sind, und durch das Austauschen von Nachrichten über das Netz kommunizieren. Beispiele schließen Webdienste und DCOM-Gegenstände ein.
  • Protokoll-Gegenstände sind Bestandteile eines Protokoll-Stapels, die Netzkommunikation innerhalb einer objektorientierten Schnittstelle kurz zusammenfassen.
  • Wiederholte Gegenstände sind Gruppen von verteilten Gegenständen (genannt Repliken), die ein verteiltes Mehrparteiprotokoll führen, um einen hohen Grad der Konsistenz zwischen ihren inneren Staaten zu erreichen, und die auf Bitten auf eine koordinierte Weise antworten. Mit Bezug auf die Gruppe von Repliken gemeinsam weil widerspiegelt ein Gegenstand die Tatsache, dass mit einigen von ihnen aufeinander zu wirken, denselben äußerlich sichtbaren Staat und Verhalten ausstellt. Beispiele schließen mit der Schuld tolerante CORBA-Gegenstände ein.
  • Lebende verteilte Gegenstände (oder einfach lebende Gegenstände) verallgemeinern das wiederholte Gegenstand-Konzept zu Gruppen von Repliken, die innerlich jedes verteilte Protokoll verwenden könnten, vielleicht auf nur eine schwache Konsistenz zwischen ihren lokalen Staaten hinauslaufend.

Einige dieser Erweiterungen, wie verteilte Gegenstände und Protokoll-Gegenstände, sind bereichsspezifische Begriffe für spezielle Typen von "gewöhnlichen" Gegenständen, die in einem bestimmten Zusammenhang (wie entfernte Beschwörung oder Protokoll-Zusammensetzung) verwendet sind. Andere, wie wiederholte Gegenstände und lebende verteilte Gegenstände, sind mehr umgangssprachlich, darin geben sie die Annahme auf, dass ein Gegenstand in einer einzelnen Position auf einmal wohnt, und wenden Sie das Konzept auf Gruppen von Entitäten (Repliken) an, die über vielfache Positionen abmessen könnten, könnte nur schwach konsequenten Staat haben, und dessen sich Mitgliedschaft dynamisch ändern könnte.

Gegenstände und das semantische Web

Es wird gefordert, dass das Semantische Web als ein verteiltes Datengegenstand-Fachwerk gesehen werden kann, und deshalb als ein objektorientiertes Fachwerk gültig gesehen werden kann. Jedoch wird ein verteilter Gegenstand als ein "gewöhnlicher" Gegenstand und nicht ein OOP-Gegenstand betrachtet, weil er von seinen Methoden getrennt wird, mit denen er vorher kurz zusammengefasst wurde. Es wird auch gefordert, dass es gültig ist, um ein UML Diagramm zu verwenden, um einen Semantischen Webgraphen auszudrücken.

Sowohl das Semantische Web als auch die objektorientierte Programmierung haben:

  • Klassen
  • Attribute (auch bekannt als Beziehungen)
  • Beispiele

Die Förderung davon, Verbundene Daten führt auch Dereferenceable Gleichförmige Quellenbezeichner ein, die Daten durch die Verweisung zur Verfügung stellen, der in der objektorientierten Programmierung und den objektorientierten Datenbanken in der Form von Gegenstand-Bezeichnern gefunden wird.

Siehe auch

Links


Tito Ortiz / Liste von Jahren im Fernsehen
Impressum & Datenschutz