Sie sind auf Seite 1von 5

Info 1 Programmieren mit Hilfe von C# und MS Visual Studio 10 ___________________________________________________________________________ Alle Variablen, Klassen, Objekte etc.

. mssen so FxxxxxxxD aussehen (Vor-/Nachname). Ein Programm muss mindestens eine Main-Methode haben, in der Main-Methode werden je nach Gebrauch andere Methoden, Klassen etc. aufgerufen, es ist quasi das Skelett eines C#Programms. Um vordefinierte Sachen zu nutzen muss z.B. Using System etc. geschrieben werden. Der Namespace (Projektname) ist wichtig um Klassen etc. einem Projekt zuzuordnen. If-Anweisung -> if (Bedingung){dann das} else{was anderes} for-Schleife-> for (int i=0, x<y,i++) {Schleife, bis Bed. erfllt}

Methoden, Funktionen, Operationen sind Codesegmente die mit Hilfe von Parametern eine interne Verarbeitung durchfhren und ein Ergebnis von einem bestimmten Typ liefern/ Rckgabe. Die Eingabeparamter knnen innerhalb der Methode wie Variablen benutzt und verarbeitet werden. Methoden haben Namen, damit man sie in der Main aufrufen kann. Damit hat eine Methode folgenden Aufbau -> Rckgabetyp name (parameterListe) { Verarbeitung, Parameter = Variablen } ___________________________________________________________________________ Modul 1 (Hello World): Teil1: Es wird eine sichtbare public-Klasse angelegt -> public class HelloWorld Console.WriteLine("Hello World"); Console.Readline(); -> Konsole Aus- & Eingabe. Teil2: Es werden Methoden zur Eingabe readValues() und Ausgabe printValues() eingefhrt.
static string readValues() { string fdemiralpd = "Hello World"; return fdemiralpd; } static void printValues(string fvalued) { Console.WriteLine (fvalued); }

Aufruf der Parameter in der Main-Methode: public class HelloWorld {


static void Main(string[] args) { freadValued(); fprintValued("blabla"); } -> blabla = fvalued = Eingabeparameter

Modul 2

Klassen und Objekte:

Klasse ist die Beschreibung aller gleichartigen Objekte, d. h. eine Klasse ist ein Typ. Eine Schublade fr Objekte und Attribute (Variablen in einer Klasse). Beispiel: Es gibt den Typ VW Golf und konkrete Fahrzeuge mit Seriennummer. VW Golf ist in diesem Beispiel eine Klasse. Motorart (Benziner/Diesel) ist Objekt, die PS-Zahl ist Attribut. Beispiel 2: Es gibt einen bestimmten Prozessor-Typ (z.B. Pentium 4) und entsprechende Exemplare mit unterschiedlicher Seriennummer. Pentium4 ist Klasse, Taktung ist Objekt, Im Bereich der Software bezeichnet man eine solche (allgemeine) Spezifikation als Klasse, die konkreten Exemplare (Motorart, Taktung) als Objekte. Eine Klasse enthlt Attribute (Variablen z.B. im Sinne einer Datenstruktur) und Funktionen/Methoden. Dies ist z.B. vergleichbar zu einem Chip, der interne Register und Funktionen (die von auen angesprochen werden knnen) enthlt. =>Man programmiert zwar die Klasse, benutzt aber nur dessen Objekte im Programm. Klassen erstellt man ber den Wizzard, Hinzufgen -> Klasse. Man erhlt dann eine einzelne Datei fr jede Klasse -> Klasse.cs Code um eine Klasse zu erstellen: => public class Klasse { }

Bei objektorientierter Programmierung muss jeder Codeteil, jedes Codesegment zu einer Klasse gehren. Da man mit Objekten der Klassen weiter arbeitet/programmiert. Variable, die innerhalb einer Klasse aber auerhalb einer Methode definiert werden, bezeichnet man als Objektvariable oder Objektattribute. Jede Methode der Klasse kann auf diese Objektvariablen, wie auf lokale Variablen der Main-Methode zugreifen. Jedes Objekt hat einen Satz von Objektvariablen, diese existieren solange wie die Klasse bzw. das Objekt selber. So kann man Informationen aus mehreren Methodenaufrufen speichern oder sie an andere Methoden innerhalb des Objekts weitergeben. Methoden innerhalb eines Objekts einer Klasse nennt man Objektmethoden. Beispiel: // Methoden public class TestGroup { // Variable public string name; public void printName(){ Console.Write("Bezeichnung = "); Console.WriteLine(name); ...

Jedes Objekt hat eine eindeutige Identitt. Man kann sich die Identitt als eine Art Adresse vorstellen. Diese Identitt bezeichnet man als die Referenz des Objektes. Um ein Objekt zu erstellen bentigt man 2 Schritte: Als Erstes, eine Variable in der die Objektreferenz gespeichert wird (Referenzvariable), das Objekt bekommt seine Identitt. TestGroup theGroup; Zweitens die new-Methode gefolgt vom Klassennamen: theGroup = new TestGroup();

Die new-Methode liefert als Rckgabewert die Referenz des neu angelegten Objekts. Diese Referenz kann der o.g. Referenzvariable zugewiesen werden. Beides fasst man hufig in einer Zeile zusammen: TestGroup theGroup = new TestGroup(); => Man erstellt ein neues Objekt theGroup vom Typ TestGroup, dem Konstruktor ( ) kann man grad noch Werte mitgeben!! Konstruktor: Steht in direkter Verbindung mit der new-Methode, durch welche verschiedene Aufgaben erledigt werden, z.B. Reservierung von Speicherplatz, Erzeugen einer eindeutigen Identitt,... Ein Konstruktor ist eine spezielle Methode der Klasse. Sie hat zwar den gleichen Namen, hat aber keinen Rckgabetyp (kein void etc.). Sie unterscheidet sich durch die Klammern fr die Parameter, wie bei der Methode auch. Sprich man kann dem Konstruktor durch Parameter Werte bergeben. public TestGroup(string name) { this.name = name } wenn man jetzt die Variable Name nochmal benutzt, wrde sie immer vom berschrieben Konstruktor berschrieben werden, damit das nicht passiert benutzen wir this

this ist in dem Fall die sogenannte Eigenreferenz. Jedes Objekt kann nmlich auf seine eigene Referenz durch die Variable this zugreifen, this.name bezeichnet dann eindeutig die Objektvariable. Ein Konstruktor benutzt man somit, um ein Objekt zu erzeugen, dass vordefinierte Werte hat (Parameter) - oder um Unterobjekte zu erzeugen. Verwendung von Objekten: Um eine Objektmethode oder seine Objektvariable zu verwenden bentigt man 2 Dinge: Die Referenz des Objekts, dessen Methode / Variable aufgerufen werden soll. Den Methodennamen bzw. den Variablennamen => theGroup.name = "Steuerung"; theGroup.printName(); name ist Objektvariable /-attribut printName ist Objektmethode

Fr objektorientierte Programmierung ist daher eine Objektreferenz notwendig, sonst wei der nicht wo der schauen soll. Deswegen ist es wichtig, mit Hilfe der Objektreferenz anzugeben, fr welches Objekt man eine Methode /Variable aufruft. Der integrierte Garbage Collector entsorgt dann auto. die nicht mehr bentigten Objekte. Namespaces (Namensrume): Projektmappe In C# werden alle Klassen in so genannte Namespaces (Namensrumen) geordnet. Um eine Klasse einem Namespace zuzuordnen gibt man diesem im Code explizit an. Man kann Klassen somit verschachteln bzw. im selben Namespace mehrere Klassen benutzen. ber der Main-Methode: Code: (using) namespace Ist fr uns weniger wichtig, da wir uns normal nur in einer Projektmappe aufhalten.

Kapselung: (Programmierstil) public, private, protected Zugriffs- bzw. Sichtbarkeitseigenschaften. Es ist guter Programmierstil (und in der Vorlesung gefordert!), Objektattribute grundstzlich als private oder protected zu deklarieren und bei Bedarf von auen mit get - und set -Methoden darauf zuzugreifen private: Das Element (Methode, Attribut) ist nur innerhalb des Codes dieser Klasse sichtbar (benutzbar). Im Code keiner anderen Klasse kann auf dieses Element zugreifen. Dies ist bei C# die Default-Eigenschaft fr Attribute. protected: genau gleich wie private, aber Elemente sind vererbbar durch Unterklassen. Es ist eine allgemein eingehaltene Konvention, Methoden, die nur dazu dienen, Werte an Objekte zu bergeben, mit dem Prfix set zu versehen, und Methoden, die nur dazu dienen, Werte abzufragen, mit dem Prfix get. get- und set-Methoden!!

Modul 3

Vererbung, Felder, UML, GUI

Vererbung bedeutet dass man von einer Klasse (Oberklasse) Unterklassen erstellen kann. Die Unterklasse erbt dann Code, Attribute etc. mit der sie dann arbeiten kann. Alle Deklarationen und Implementierungen der Oberklasse stehen in der Unterklasse zunchst so zur Verfgung, als ob sie direkt dort beschrieben worden wren. Die erbende Unterklasse kann Methoden, Attribute etc. hinzufgen oder modifizieren. Die erbende Klasse (Unterklasse) bezeichnet man auch als Subklasse oder abgeleitete Klasse, die vererbende Klasse (Oberklasse) auch als Superklasse oder Basisklasse. Zweck der Vererbung: Beschreibung von Gemeinsamkeiten von Klassen ohne Doppelcodierung: Die gemeinsamen Elemente werden in der Oberklasse beschrieben, die spezifischen Elemente in den jeweiligen Unterklassen. Ableitung von eigenen Unterklassen aus vordefinierten Klassenbibliotheken, d. h. Anpassung bestehender Funktionalitt an spezifischen Anforderungen.

Code Unterklasse : Oberklasse Beispiele: Vorteil: Oberklasse: Mensch; Unterklassen: Frau, Mann Oberklasse: Bauteil; Unterklasse: Prozessor, Speicher, passives Element Allgemeine Behandlung von Gemeinsamkeiten, Vermeidung von Doppelcodierung.

Aufruf des Konstruktors der Oberklasse: Mit :base (Variablenname) Konstruktor fr Variablenname der Oberklasse

Felder: 1. Anlegen der Referenz auf das Feld. Kennzeichnung durch eckige Klammern int[ ] myIntArray; Processor[ ] myProcessors; 2. Anlegen des eigentlichen Feldes durch new-Operator, Zahl der Feldelemente kann eine Variable z.B. i oder n sein. myIntArray = new int[100]; myProcessors = new Processor[4]; 3. Anlegen der Objekte (wenn nicht Basistypen) for (int i = 0; i<myProcessors.Length; i++){ myProcessors[ i ] = new Processor ( (i+1)*100, (long)3e9); } Felder haben vordefinierte Methoden,wie z.B. length (die Anzahl der Elemente des Feldes)

Modul 4

Referenzen, Ereignisverarbeitung

1. Austausch von Referenzen: Eine Referenz bezeichnet ein Objekt. Eine Referenz wird von dem new-Operator zurck gegeben. ClassName theRef = new ClassName ( ); Eine Referenz ist eine Variable wie jede andere auch, d.h. man kann sie zuweisen, speichern und in Parameterlisten bergeben, etc. In einem komplexeren Programm mssen oft Referenzen ausgetauscht werden. Dazu kann man get- und set-Methoden schreiben bzw. den Konstruktor verwenden. 2. Werttypen und Referenztypen: Werttypen sind die Basisdatentypen wie bool, byte, short, int, long, float, double, decimal, ... (diese Typen werden im Editor blau geschrieben werden). Hier wird der Wert direkt in der Variable gespeichert. Alles andere sind Referenzdatentypen. Es wird nur die Referenz (Adresse) gespeichert. Die Unterscheidung ist erstens wichtig fr die bergabe in Parameterlisten Werttypen: Wert wird kopiert Lokale Manipulation des Werts hat keine Auswirkung auf aufrufenden Programmteil Referenztypen: Referenz wird kopiert, d.h. zwei Referenzen, aber ein(!) Objekt. Lokale Manipulationen des Objekts sind auch im aufrufenden Programmteil wirksam. Die Unterscheidung ist zweitens wichtig fr Vergleiche Basisdatentypen keine Schwierigkeit Referenzdatentypen Unterscheidung zwischen das gleiche und dasselbe notwendig bzw. zwischen gleich und identisch. Dasselbe Objekt = identische Referenz Wird abgefragt durch == . Das gleiche Objekt = gleicher Inhalte Wird abgefragt durch Equals(). Fr eigene Klassen muss man die Methode Equals() bei Bedarf selbst implementieren