Mein Hintergrund in Mathematik ist sehr schlecht (dh der letzte relevante Mathematikunterricht war vor zwei Jahren die Trigonometrie an der High School - eine andere Geschichte für eine andere Zeit). Ich lese 'Javascript: The Definitive Guide' und es ist ein Begriff, der wiederholt verwendet wird und mit dem ich sozusagen nur gelaufen bin. Aber ich bin zu einem Kapitel (Kapitel 6 - Objekte) gekommen, in dem mein Unverständnis über den Begriff und seine Anwendung in der Programmierung / OOP den Lernprozess beeinträchtigt. Die Online-Wörterbücher helfen nicht weiter. Hat jemand eine erklärbarere Definition und / oder ein Beispiel, das er zeigen kann?
object-oriented
definition
gr33kbo1
quelle
quelle
Antworten:
Mathematisch bedeutet aufzählbar, dass "eine Eins-zu-Eins-Entsprechung mit den natürlichen Zahlen erfolgen kann". Die meisten Darstellungen beim Rechnen sind aufzählbar, da sie aus Bitfolgen bestehen und Bitfolgen verwendet werden können, um Zahlen im Binärsystem zu bezeichnen.
Einige Datendarstellungen werden jedoch nicht als aufzählbar angesehen. Zum Beispiel besteht eine Gleitkommazahl aus Bits, aber wir arbeiten damit als Annäherung an eine reelle Zahl. Auf der Binärebene können wir durch aufeinanderfolgende Gleitkommazahlen "zählen", aber normalerweise ist dies in numerischen Anwendungen nicht relevant.
In einigen anderen Situationen ist eine Aufzählung möglich, es besteht jedoch keine Einigung über eine Aufzählung. Beispielsweise bilden alle Objekte in Ihrem Laufzeitbild eine endliche Menge und können aufgelistet werden. Der Garbage Collector macht das, wenn er durch die lebenden Objekte geht. Die Anwendung zählt jedoch nicht die Menge aller Objekte auf diese Weise auf, ohne Rücksicht auf Typ- oder Modulgrenzen. Es werden kleinere Objekte der gleichen Art oder verwandter Objekte aufgelistet.
Wenn eine Aufzählung formal vorliegt, sind sich normalerweise alle Parteien einig. Hier ist eine Reihe von Werten. Dieser ist der erste. Dieser ist sein Nachfolger und so weiter.
In einigen Programmiersprachen gibt es Aufzählungstypen: eine disziplinierte Methode zum Definieren benannter symbolischer Konstanten, die vom Compiler eindeutigen ganzzahligen Werten zugeordnet werden. Wenn solche Typen stark typisiert sind, können diese Konstanten nur in Variablen des entsprechenden Typs gespeichert werden, die als Aufzählungstyp bezeichnet werden . Beispielsweise kann eine benutzerdefinierte Aufzählung vom Typ
month
nur die Wertejanuary
durch annehmendecember
. Diese werden auf die Werte 0 bis 11 reduziert und können Arithmetik wie dassuccessor(january)
Erzeugenfebruary
oder die Möglichkeit ermöglichen, die Aufzählung als Array-Index zu verwenden: Definieren eines Arraysdays[january..december]
mitdays[january]
beispielsweise 31. Der Zweck eines Aufzählungstypssoll daher als Teilmenge der natürlichen Zahlen durch andere Namen dienen, die verschieden sind und Klarheit in der Bedeutung bieten (Namen werden anstelle von numerischen Konstanten verwendet) und die Typprüfung: Die Farbered
einercolor
Aufzählung kann keiner Typaufzählung zugeordnetmonth
werden .Das Verb aufzählenwird auch verwendet, um das Konzept des Abfragens einer API zum Abrufen einer Liste von Objekten zu bezeichnen, normalerweise schrittweise: Auflisten der Netzwerkschnittstellen, Auflisten der Dateien in einem Verzeichnis usw. Wenn sich ein Objekt in einer 1: N-Korrespondenz mit einigen anderen Objekten befindet, kann es eine Aufzählungs-API unterstützen, mit der wir durch diese Geschwisterobjekte gehen oder sie als Liste abrufen können. Die Terminologie ist etwas trübe; In einigen Fällen ist es beispielsweise immer noch eine Aufzählung, auch wenn die Elemente nicht in einer bestimmten Reihenfolge vorliegen, aber alle ohne Wiederholung besucht werden können. Einige dynamische Satzdatenstrukturen, wie z. B. Hash-Tabellen, bieten keine bestimmte Reihenfolge und können sich beim Wachsen und Verkleinern neu organisieren, sodass die tatsächliche Reihenfolge beim Einfügen und Löschen variiert.
A
kann vorher kommenB
, aber wenn wir einfügenC
, kommt jetztB
zufällig vor,A
weil eine interne Reorganisation stattgefunden hat.quelle
Ich habe gerade meine Kopie von JavaScript: The Definitive Guide herausgezogen , bin zu Kapitel 6 übergegangen und habe den Abschnitt 6.5 Enumeratng Properties schnell durchgelesen . Nun sollte ich hinzufügen, dass ich auch kein besonders starker Mathematiker bin. Hoffentlich macht dies Sinn:
Insbesondere bedeutet "aufzählbar", dass eine Art Bestellschema stattfindet, so dass Sie die Elemente in dieser Menge / Sequenz / Sammlung (oder in diesem Abschnitt von JavaScript: The Definitive Guide , das Objekt) schnell / einfach adressieren können. .
Um es auf das anzuwenden, was Sie in dem Buch lesen, wenn der Autor sagt, dass die Eigenschaften, mit denen Sie eine Klasse erweitern, aufzählbar sind , sagt er lediglich, dass jede Eigenschaft, die Sie einem Objekt hinzufügen (nicht die, die geerbt werden), iteriert werden kann Über. Wenn Sie also ein Objekt
obj
wie folgt erstellen :... wenn Sie mit der folgenden Schleife darüber iterieren (ich verwende hier beschreibende Variablennamen):
... werden drei Elemente angezeigt, die an Ihrer JS-Konsole protokolliert sind:
Dies wird Ihnen sagen , dass die Eigenschaften im Objekt
obj
werden aufgezählt durch die Tastena
,b
undc
.quelle
a, b, c
also enumerable Eigenschaften? Und alternativ ist eine nicht aufzählbare Eigenschaft eine Eigenschaft, die nicht durch Schlüssel aufgezählt wird?for-in
Schleife über das übergeordnete Objekt iterieren .Eine Aufzählung ist ein Objekt, das aufgezählt werden kann. "Aufgezählt" bedeutet, die Mitglieder einer Menge / Sammlung / Kategorie einzeln zu zählen (normalerweise in der Reihenfolge, normalerweise nach Namen).
Eine Aufzählung ist dann ein Objekt, das eine Reihe anderer Objekte nacheinander durchlaufen kann.
quelle