Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 5 Objektorientierte Programmierung
Pfeil 5.1 Was ist Objektorientierung?
Pfeil 5.2 Klasse, Eigenschaft, Methode, Objekt
Pfeil 5.2.1 Objektverweis und Instanz
Pfeil 5.3 Eigenschaftsmethode
Pfeil 5.4 Konstruktor
Pfeil 5.5 Referenzen, Vergleiche und Typen
Pfeil 5.5.1 Objekte vergleichen
Pfeil 5.5.2 Typ eines Objekts ermitteln
Pfeil 5.5.3 Typ eines Objekts durch Vergleich ermitteln
Pfeil 5.6 Delegates
Pfeil 5.7 Statische Elemente
Pfeil 5.8 Vererbung
Pfeil 5.9 Konstruktoren bei Vererbung
Pfeil 5.10 Polymorphie
Pfeil 5.11 Schnittstellen
Pfeil 5.11.1 Vorhandene Schnittstellen

Rheinwerk Computing - Zum Seitenanfang

5.2 Klasse, Eigenschaft, Methode, ObjektZur nächsten Überschrift

In einer Klassendefinition werden die Eigenschaften und Methoden gleichartiger Objekte festgelegt. Die Eigenschaften kennzeichnen das Objekt. Den Methoden entsprechen Prozeduren und Funktionen, die auf eine bestimmte Klasse bezogen sind.

Diese Begriffe sollen anhand eines kleinen Programms gemeinsam eingeführt werden. Es wird eine Klasse für Fahrzeuge definiert. Die Fahrzeuge haben eine Geschwindigkeit, man kann sie beschleunigen und man kann ihre Eigenschaft auf dem Bildschirm ausgeben.

Zunächst wird eine Windows-Anwendung (Projekt KlasseObjekt) wie gewohnt erzeugt. Anschließend wird eine eigene Datei für die Definition der Klasse genutzt. Dies erleichtert die Übersicht und die spätere Wiederverwendbarkeit der Klasse.

Über den Menüpunkt ProjektKlasse hinzufügen gelangen Sie zu einem Dialogfeld mit Vorlagen. Hier wählen Sie die bereits voreingestellte Vorlage Klasse. Diese beinhaltet eine leere Klassendefinition. Im Feld Name sollten Sie den Namen der zu erzeugenden Klasse (hier: Fahrzeug) eintragen. Die Datei erhält dadurch den Namen Fahrzeug.vb und die neue, leere Klasse in der Datei den Namen Fahrzeug.

Es erscheint ein Codefenster mit einem leeren Klassenrahmen, zwischen Public Class Fahrzeug und End Class. Die Klasse Fahrzeug soll nun wie folgt aussehen:

Public Class Fahrzeug
Dim geschwindigkeit As Integer

Function ausgabe() As String
ausgabe = "Geschwindigkeit: " &
geschwindigkeit
End Function

Sub beschleunigen(wert As Integer)
geschwindigkeit += wert
End Sub
End Class

Listing 5.1 Projekt »KlasseObjekt«, Definition der Klasse »Fahrzeug«

Zur Erläuterung:

  • Die Klassendefinition steht in der Datei Fahrzeug.vb.
  • Eine Klasse sollte öffentlich sein (Public), damit sie von anderen Klassen aus erreichbar ist. Sie sollte z. B. von der Klasse des Formulars, in dem das eigentliche Haupt-Programm steht und in dem mit Objekten der neu vereinbarten Klasse gearbeitet wird, aus erreicht werden können.
  • Ein Fahrzeug hat die Eigenschaft geschwindigkeit, hier vom Datentyp Integer.
  • Eigenschaften sind innerhalb einer Klasse gekapselt. Das bedeutet, dass sie von einem Programm außerhalb der Klasse aus nicht direkt erreichbar sind. Dies ist eines der wichtigen Konzepte der objektorientierten Programmierung: Eigenschaften sollen nur über definierte Zugänge erreichbar bzw. veränderbar sein.
  • In anderen Teilen dieses Buchs, in denen der Schwerpunkt nicht auf der Erklärung der objektorientierten Programmierung liegt, werden Eigenschaften auch vereinfacht als klassenweit gültige Variablen bezeichnet.
  • Die Deklaration Public geschwindigkeit As Integer würde diesem Prinzip der Datenkapselung widersprechen.
  • Die Funktion ausgabe() dient zur kommentierten Ausgabe des Werts der Eigenschaft geschwindigkeit. Daher wird ihrem Namen eine Zeichenkette zugewiesen, die unter anderem den Wert der Eigenschaft beinhaltet.
  • Funktionen (Methoden) und Prozeduren einer Klasse sind zunächst einmal öffentlich (Public), d. h. sie sind von einem Programm, das außerhalb der Klasse steht, erreichbar. Soll es klasseninterne Funktionen oder Prozeduren geben, die nur von anderen Funktionen oder Prozeduren innerhalb der Klasse erreichbar sind, so können Sie sie mit dem Schlüsselwort Private aber ebenso kapseln wie Eigenschaften.
  • Die Prozedur beschleunigen() soll dazu dienen, den Wert der Eigenschaft geschwindigkeit zu verändern. Beim Aufruf wird der Prozedur ein (positiver oder negativer) Wert übergeben, der zu dem bisherigen Wert der Eigenschaft geschwindigkeit hinzuaddiert wird.

Damit steht eine Klasse zur Benutzung bereit. In der Ereignisprozedur des eigentlichen Programms im Projekt KlasseObjekt wird nun ein Objekt dieser Klasse erzeugt. Seine Eigenschaft wird ausgegeben, verändert und wieder ausgegeben, siehe Abbildung 5.1.

Abbildung

Abbildung 5.1 Objekt erzeugen, verändern, ausgeben

Der zugehörige Code:

Public Class Form1
Private Sub cmdAnzeigen1_Click(...) Handles ...
Dim vespa As New Fahrzeug
lblAnzeige.Text = vespa.ausgabe()
vespa.beschleunigen(20)
lblAnzeige.Text &= vbCrLf & vespa.ausgabe()
'lblAnzeige.Text = vespa.geschwindigkeit
End Sub
End Class

Listing 5.2 Projekt »KlasseObjekt«, Benutzung der Klasse »Fahrzeug«

Zur Erläuterung:

  • Die Anweisung Dim vespa As New Fahrzeug erzeugt ein Objekt der Klasse Fahrzeug, das über den Namen vespa erreicht werden kann.
  • Dieses Objekt verfügt über die Eigenschaften und Methoden, die in der Klassendefinition festgelegt wurden. Man spricht auch von einer Instanz der Klasse Fahrzeug bzw. vom Instanziieren dieser Klasse.
  • Mit der Anweisung lblAnzeige.Text = vespa.ausgabe() wird die Methode ausgabe() für das Objekt vespa aufgerufen. Diese Methode liefert gemäß Definition den Wert der Geschwindigkeit. Dieser Wert wird dem Label zugewiesen.
  • Die Anweisung vespa.beschleunigen(20) ruft die Methode beschleunigen() für das Objekt vespa auf. In dieser Methode wird die Eigenschaft geschwindigkeit um den übergebenen Wert erhöht.
  • Anschließend folgt wieder die Ausgabe. Sie sehen, wie das Objekt sich verändert hat.
  • In der letzten Zeile steht (auskommentiert) eine Anweisung, die nicht durchgeführt werden kann. Das Objekt vespa hat zwar eine Eigenschaft geschwindigkeit, diese ist aber nicht öffentlich erreichbar. Daher wird ein Fehler gemeldet. Ein Hinweis ist bereits die Tatsache, dass diese Eigenschaft nicht in der IntelliSense-Liste enthalten ist, die sich im Editor nach Eingabe des Punkts hinter vespa öffnet.

Rheinwerk Computing - Zum Seitenanfang

5.2.1 Objektverweis und InstanzZur vorigen Überschrift

Mit der Anweisung Dim vespa As New Fahrzeug wurde in der oben genannten Ereignisprozedur ein Objekt erzeugt und benannt. Dies ist die gängigste Form der Instanziierung eines Objekts und kann so auch beibehalten werden. Streng genommen besteht diese Anweisung allerdings aus zwei einzelnen Anweisungen:

  • Es wird ein Objektverweis erzeugt. Dieser ist in der Lage, auf Objekte der Klasse Fahrzeug zu verweisen.
  • Es wird ein Objekt der Klasse Fahrzeug (eine Instanz) erzeugt. Diese Instanz kann über den Objektverweis erreicht werden.

In der folgenden Ereignisprozedur (ebenfalls im Projekt KlasseObjekt) werden die beiden genannten Vorgänge einzeln durchgeführt:

Public Class Form1
[...]
Private Sub cmdAnzeigen2_Click(...) Handles ...
Dim vespa As Fahrzeug
' vespa = New Fahrzeug
Try
vespa.beschleunigen(10)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

Listing 5.3 Projekt »KlasseObjekt«, Verweis und Objekt einzeln

Zur Erläuterung:

  • Die Anweisung Dim vespa As Fahrzeug erzeugt den Objektverweis.
  • Die Anweisung vespa = New Fahrzeug erzeugt das Objekt und weist es dem Objektverweis zu. Wird diese Anweisung weggelassen oder auskommentiert, so erscheint aufgrund der auftretenden Ausnahme die Fehlermeldung in Abbildung 5.2.
  • Diese Situation gilt es natürlich zu vermeiden. In den meisten Fällen ist es möglich und auch sinnvoll, die Objekterzeugung wie in der ersten Ereignisprozedur vorzunehmen.
  • Zur Anzeige der Fehlermeldung wird die Methode Show() der Klasse MessageBox verwendet. Diese zeigt ein kleines Infofenster mit einer Meldung an. Mehr zur Klasse MessageBox in Abschnitt 7.6.

Abbildung

Abbildung 5.2 Objektverweis ohne Objekt



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern