Wenn Sie mit objektorientierter Programmierung vertraut sind, überspringen Sie diesen Abschnitt.
Die Objective-C-Programmierung basiert auf dem Konzept des Codes, der reale Objekte darstellt. Darstellungen von programmatischen Objekten können von Zeichenfolgen (Darstellung von Text—eine Zeichenfolge) über Beschriftungen bis hin zu Personen reichen. In Objective-C sind Objekte Mitglieder ihrer Klassen. Ein einzelnes Objekt oder eine Repräsentation einer Klasse wird als Instanz dieser Klasse bezeichnet. Jede Instanz einer Klasse hat Eigenschaften, Dinge, die sie definieren und charakterisieren., Darüber hinaus verfügt jede Instanz über Methoden oder Dinge, die sie tun kann. Das ist alles ziemlich verwirrend für einen Anfänger, also werde ich diese Konzepte mit einem realen Beispiel erklären-wie über Menschen.
Du und ich sind jeweils eine Person. Wir haben Millionen von Eigenschaften, die uns definieren, aber wir sind beide Menschen. Wir haben Augen, Ohren, Persönlichkeiten, Geschmäcker usw. Außerdem können wir alle Dinge tun. Wir können Emotionen ausdrücken, Lieder singen, lachen…du bekommst das Bild. Wenn wir uns also programmatisch charakterisieren würden, könnten wir sagen, dass unsere Klasse Person ist., Unsere Eigenschaften, wie Augenfarbe, Haarfarbe und Lieblingstyp des Autos, sind Eigenschaften. Schließlich sind unsere Fähigkeiten wie Sprechen, Lachen und Codieren Methoden.
Programmierer erstellen Klassen, um die Beziehung zwischen dem, was der Computer tut, und dem, was sie im wirklichen Leben erreichen möchten, zu verwalten. Ein Entwickler kann eine PickupTruck-Klasse erstellen, um einen LKW in seinem Programm darzustellen., Im Programm konnte er eine Instanz von PickupTruck mit Eigenschaften wie Farbe, Produktionsjahr und Bettgröße erstellen. Zusätzlich kann er den LKW dazu bringen, Dinge wie Fahren, Tanken und verlangsamen zu tun. Die Möglichkeiten sind endlos.
Klassenhierarchie und Vererbung
Objektorientierte Programmierung erschwert die Ideen von Klassenhierarchie und Vererbung. Klassenhierarchie ist die Vorstellung, dass eine Klasse ihre Eigenschaften und Methoden von ihrer übergeordneten oder Oberklasse ableiten kann, während sie neue Eigenschaften und Methoden implementieren kann., Vererbung ist nur ein weiterer Begriff für die Klassenhierarchie—eine Tochterklasse erbt Eigenschaften und Methoden von ihrer übergeordneten Klasse. Um weiter zu erklären, werde ich mein Pickup-Truck-Beispiel anhängen.
beginnen wir mit der PickupTruck Klasse. Es hat grundlegende Eigenschaften (Kapazität, Produktionsjahr und Bettgröße) und Fähigkeiten (Fahren, Tanken und verlangsamen). So wie es eine Verallgemeinerung ist, ein Fahrzeug im wirklichen Leben als Pickup-Truck zu bezeichnen, ist auch eine Instanz von PickupTruck in unserem Beispiel ziemlich allgemein.
Fügen wir nun eine Tochterklasse hinzu-FordPickupTruck., Es wird alle Eigenschaften von PickupTruck erben, da es eine Farbe, ein Produktionsjahr und eine Bettgröße hat. Darüber hinaus erbt es die Methoden von PickupTruck—es kann fahren, tanken und verlangsamen. Da FordPickupTruck jedoch eine spezifischere Darstellung ist, verfügt es über mehr Eigenschaften und Methoden. Eine Instanz von FordPickupTruck hat einen Modellnamen—ein Merkmal, das für einen allgemeinen PickupTruck zu spezifisch ist. Wir können auch eine Fähigkeit hinzufügen, sagen wir, eine Instanz von FordPickupTruck kann schleppen, etwas, das nicht alle PickupTrucks tun können.,
Eine übergeordnete Klasse kann eine unbegrenzte Anzahl von Tochterklassen haben, die wiederum alle eine unbegrenzte Anzahl von Tochterklassen usw. haben können. Das Vererbungsmuster einer Klasse kann linear sein oder sich unendlich verzweigen.,
Programmgesteuert scheinen Klassenhierarchie und Vererbung verwirrend zu sein. Wenn Sie ihnen jedoch reale Beispiele geben, werden sie viel einfacher und Sie können sie besser verstehen. Dies gilt für viele schwierige Konzepte in der Informatik.