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

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 3 Klassendesign
Pfeil 3.1 Einführung in die Objektorientierung
Pfeil 3.1.1 Vorteile der objektorientierten Programmierung
Pfeil 3.2 Klassendefinition
Pfeil 3.2.1 Klassen in Visual Studio anlegen
Pfeil 3.2.2 Das Projekt »GeometricObjectsSolution«
Pfeil 3.2.3 Deklaration von Objektvariablen
Pfeil 3.2.4 Zugriffsmodifizierer einer Klasse
Pfeil 3.2.5 Splitten einer Klassendefinition mit »partial«
Pfeil 3.3 Arbeiten mit Objektreferenzen
Pfeil 3.3.1 Prüfen auf Initialisierung
Pfeil 3.3.2 Ein Objekt freigeben
Pfeil 3.3.3 Mehrere Referenzen auf ein Objekt
Pfeil 3.4 Referenz- und Wertetypen
Pfeil 3.5 Eigenschaften eines Objekts
Pfeil 3.5.1 Öffentliche Felder
Pfeil 3.5.2 Datenkapselung mit Eigenschaftsmethoden sicherstellen
Pfeil 3.5.3 Ergänzung der Klasse »Circle«
Pfeil 3.5.4 Lese- und schreibgeschützte Eigenschaften
Pfeil 3.5.5 Sichtbarkeit der Accessoren »get« und »set«
Pfeil 3.5.6 Unterstützung von Visual Studio 2010
Pfeil 3.5.7 Automatisch implementierte Eigenschaften
Pfeil 3.5.8 Vereinfachte Objektinstanziierung mit Objektinitialisierern
Pfeil 3.6 Methoden eines Objekts
Pfeil 3.6.1 Methoden mit Rückgabewert
Pfeil 3.6.2 Methoden ohne Rückgabewert
Pfeil 3.6.3 Methoden mit Parameterliste
Pfeil 3.6.4 Methodenüberladung
Pfeil 3.6.5 Variablen innerhalb einer Methode (Lokale Variablen)
Pfeil 3.6.6 Referenz- und Wertparameter
Pfeil 3.6.7 Zugriff auf private Daten
Pfeil 3.6.8 Namenskonflikte mit »this« lösen
Pfeil 3.6.9 Trennung von Daten und Code im Speicher
Pfeil 3.6.10 Methode oder Eigenschaft?
Pfeil 3.6.11 Methoden und Eigenschaften umbenennen
Pfeil 3.7 Konstruktoren
Pfeil 3.7.1 Konstruktoren bereitstellen
Pfeil 3.7.2 Parametrisierte Konstruktoren und die Objektinitialisierung
Pfeil 3.7.3 Konstruktoraufrufe
Pfeil 3.7.4 Definition von Konstruktoren
Pfeil 3.7.5 »internal«-Konstruktoren
Pfeil 3.7.6 »private«-Konstruktoren
Pfeil 3.7.7 Konstruktorenaufrufe umleiten
Pfeil 3.8 Der Destruktor
Pfeil 3.9 Konstanten in einer Klasse
Pfeil 3.9.1 Konstanten mit dem Schlüsselwort »const«
Pfeil 3.9.2 Schreibgeschützte Felder mit »readonly«
Pfeil 3.10 Statische Klassenkomponenten
Pfeil 3.10.1 Begrifflichkeiten
Pfeil 3.10.2 Statische Klassenvariable in der Klasse »Circle«
Pfeil 3.10.3 Klassenspezifische Methoden
Pfeil 3.10.4 Statische Konstruktoren (Klasseninitialisierer)
Pfeil 3.10.5 Statische Klassen
Pfeil 3.10.6 Stand der Klasse »Circle«

3 Klassendesign

Die Grundlagen der Sprache C# haben Sie im letzten Kapitel gelernt. In diesem Kapitel behandeln wir die Grundsätze der Klassendefinitionen – deren Kenntnis ist unabdingbar, da das gesamte .NET Framework objektorientiert ist.


Galileo Computing - Zum Seitenanfang

3.1 Einführung in die Objektorientierung Zur nächsten ÜberschriftZur vorigen Überschrift

Die beiden wichtigsten Begriffe, die im Mittelpunkt unserer Betrachtungen zur objektorientierten Programmierung stehen, sind die der Klasse und des Objekts. Was ist darunter zu verstehen?

Stellen Sie sich ein Architekturbüro vor, das ein Einfamilienwohnhaus plant und den Bauplan als Ergebnis aller anfänglichen Forderungen und der daraus resultierenden Berechnungen zeichnet. Der Bauplan enthält die Abmessungen des Grundrisses der einzelnen Etagen, die Angaben, wo Fenster und Türen eingebaut werden, die Mauerdicken, die Lage der Elektroverkabelung, der Heizungsrohre usw. Der fertige Bauplan dient anschließend als Vorlage für die Bauausführung. Vielleicht hat der Architekt sogar die Möglichkeit, den Bauplan mehrfach zu benutzen, um darauf basierend ein zweites oder sogar ein drittes Haus zu erstellen. Die Häuser müssen nicht identisch sein, sie können sich in Einzelheiten unterscheiden: Die Außenfassade des ersten Hauses mag geputzt sein, die des zweiten geklinkert, ein Haus wird mit einer Ölheizung ausgestattet, das andere nutzt Fernwärme.

Der Bauplan dient also nur als Vorlage. Er ist im weitestgehenden Sinn eine Schablone, die zur Realisierung konkreter Häuser dient. Projiziert auf die objektorientierte Welt, ist der Bauplan als eine Klasse zu verstehen und ein fertig gebautes Haus als ein Objekt. Liegt ein Bauplan (Klasse) vor, kann er dazu dienen, beliebig viele Häuser (Objekte) zu erstellen, die sich durchaus unterscheiden dürfen.

In der objektorientierten Programmierung spricht man von einem Objekt oder auch von einem konkreten Objekt, wenn aus der Klassendefinition heraus etwas »Gegenständliches« erzeugt wird. Ein weiterer, häufig benutzter Begriff ist der der Klasseninstanz oder einfach nur Instanz. Sie können diese Begriffe synonym nebeneinander verwenden, sie besagen dasselbe.

Ein Objekt wird durch bestimmte, charakteristische Merkmale beschrieben, die in der Klassendefinition festgelegt werden müssen. Diese werden als Eigenschaften bezeichnet. Beispielsweise könnte ein Objekt vom Typ Person im Rahmen der anwendungsspezifischen Forderungen durch den Namen der Person, deren Augenfarbe, Schuhgröße und das Geschlecht ausreichend beschrieben werden.

Im einfachsten Fall wird eine Eigenschaft als Variable innerhalb der Klassenstruktur definiert und als Feld bezeichnet, wie beispielsweise Name im folgenden Codefragment der Klasse Person:


class Person {
  public string Name;
}  

Ein Objekt wäre demnach beispielsweise itsme:


Person itsme = new Person();

Wie in C# üblich, wird zuerst der Datentyp angegeben. Eine Klassendefinition müssen Sie grundsätzlich immer als die Beschreibung eines Datentyps verstehen. Person ist daher ein Datentyp, genauso wie String oder Integer. Der Typangabe folgt der Variablenbezeichner. Mit dem Schlüsselwort new wird das Objekt schließlich konkretisiert. Dabei wird ein sogenannter Konstruktor aufgerufen.

Eine Klasse abstrahiert Objekte aber nicht nur in der Weise, dass Objekte gleichen Typs ausschließlich durch die in der Klasse definierten Eigenschaften beschrieben werden. Objekte können auch Operationen ausführen, gewissermaßen also ein Verhalten zeigen. Beispielsweise könnte ein Person-Objekt laufen, rufen, essen usw. Dabei handelt es sich um Operationen, die im objektorientierten Sprachgebrauch als Methoden bezeichnet werden.

Methoden werden innerhalb einer Klasse definiert. Das folgende Codefragment demonstriert die Klasse Person mit den beiden Feldern Name und Alter sowie der Methode Laufen:


class Person {
  public string Name;
  public int Alter;
  public void Laufen() {
    // Anweisungen
  }
}

Jetzt wollen wir uns ansehen, wie wir mit der Klasse arbeiten. Dazu wird die Methode Main wie folgt codiert:


static void Main(string[] args) {
  Person peter = new Person();
  // Festlegung des Alters
  peter.Alter = 34; 
  // das Person-Objekt laufen lassen
  peter.Laufen();
}

Zuerst besorgen wir uns ein Objekt vom Typ Person. Das Objekt heißt im weiteren Verlauf peter und hat die Eigenschaften Name und Alter. Alle Eigenschaften müssen nicht unbedingt auf einen objektspezifischen Wert festgelegt werden, sondern nur die, die notwendig sind. Hier ist es nur die Eigenschaft Alter, der ein Wert zugewiesen wird. Anschließend wird die Methode Laufen aufgerufen. Beachten Sie den Punktoperator, der dazu dient, eine Eigenschaft oder Methode auf ein bestimmtes Objekt aufzurufen. Handelt es sich um eine Eigenschaft, muss ihr mit dem Zuweisungsoperator noch der gewünschte Wert zugewiesen werden.

Spielen mehrere konkrete Person-Objekte im Programm eine Rolle, muss die Klasse Person wiederholt instanziiert werden. Im folgenden Code liegen zwei Objekte vor: peter und bettina. Beide unterscheiden sich durch ihr Alter.


Person peter = new Person();
peter.Alter = 34;


Person bettina = new Person();
bettina.Alter = 15;


Galileo Computing - Zum Seitenanfang

3.1.1 Vorteile der objektorientierten Programmierung topZur vorigen Überschrift

Die objektorientierte Programmierung (OOP) mit allen ihren dahinter stehenden Konzepten ist nicht einfach zu lernen. Dennoch hat sich das Konzept in den vergangenen Jahren in nahezu allen Programmiersprachen durchgesetzt. Wenn alle Welt davon spricht und der objektorientierte Ansatz in aller Munde ist, muss es für ihn ein paar schlagkräftige Argumente geben. Die beiden wichtigsten seien an dieser Stelle genannt:

  • Wiederverwendbarkeit: Klassen modularisieren eine Anwendung in unabhängige Einheiten. Sie verwalten zusammengehörende Daten und gruppieren ähnliche Methoden. Klassen können bausteinähnlich in verschiedenen Programmen – in der .NET-Laufzeitumgebung sogar vollkommen unabhängig von der verwendeten Programmiersprache – gleichwertig eingesetzt werden. Als Konsequenz dessen ändert sich auch der Arbeitsablauf der Programmierung: Programme müssen nicht mehr in allen Einzelheiten neu geschrieben werden, sondern werden zu einem großen Teil aus fertigen Komponenten zusammengesetzt – vergleichbar mit der Entwicklung und dem Zusammenbau eines Motors, bei dem im Wesentlichen genormte Maschinenteile (Schrauben, Bolzen etc.) zum Einsatz kommen.
  • Wartungsaufwand: Eine Klasse kann als eigene, separate und unabhängige Einheit getestet werden. Es ist vollkommen ausreichend, die Klassenimplementierung nur einmal ausgiebig zu testen. Verläuft der Test positiv, wird die Klasse mit jeder Anwendung zufriedenstellend zusammenarbeiten. Das Testen im Umfeld mehrerer Anwendungen entfällt und stellt damit die Effizienz der Programmierung sicher.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
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