Java Object-Oriented Programming: Classes, Objects, Constructors, Methods
This encompasses the basics of Java object-oriented programming, covering classes as object templates, object instantiation with constructors, manipulation through methods, and practical examples. Dive into creating and using objects in Java to expand your programming skills.
Java Object-Oriented Programming: Classes, Objects, Constructors, Methods
E N D
Presentation Transcript
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03
Progwerkstatt • Wir sind für Euch da! • progwerkstatt@informatik.uni-ulm.de • http://www.informatik.uni-ulm.de/ sgi/progwerkstatt/ • Im Pool… • …und in Vorträgen (aber das wisst ihr ja schon )
Objektorientiert ? 1 • Java objektorientierte Sprache • Klassen als Definition • Objekte im tatsächlichen Programmablauf
Objektorientiert 2 • Bsp Der kleine Franz will ein neues Auto
Objektorientiert 3 • Also überlegt er sich, was ein Auto denn alles hat: • Räder • Lenkrad • Pedale • Hupe Man sieht seine Vorstellung eines Autos ist noch recht einfach
Objektorientiert 4 • Franz bittet seinen großen Bruder Klaus ihm doch so ein Auto zu bauen. Klaus meint: „Da brauche ich doch erst einmal eine Vorlage…“
Klassen 1 • Klassen sind in Java quasi die Vorlage für Objekte • Sie enthalten Variablen, die die Attribute des Objektes darstellen • Methoden bieten Manipulationsmöglichkeiten
Klassen 2 • Klaus baut sich also eine Vorlage…
Klassen 3 Public class Auto { //Attribute für das Auto int raeder; int pedale; boolean hupe; boolean lenkrad; }
Klassen 4 • Nun hat das Auto alle Attribute, die es braucht. Jetzt müsste man es nur noch konstruieren. Klaus geht in die Werkstatt…
Klassen 5 • In Java muss man die Objekte auch konstruieren um mit ihnen arbeiten zu können. • Dafür gibt es in den Klassen die Konstruktoren
Konstruktoren 1 • Jede Klasse verfügt über einen leeren Standard-Konstruktor • Erzeugt ein Objekt und nimmt für die Attribute Standardwerte an (die auf unterschiedlichen Systemen nicht gleich sein müssen). • Implizit • Sobald ein eigener Konstruktor angegeben wird, wird Standard-Konstruktor überschrieben.
Konstruktor 2 • Angabe in der Klasse • Ähnlich einer Methode, allerdings: • Name wie Klasse • Keine Angabe über einen Rückgabewert • Parameterangabe wie bei Methoden möglich • Mehrere parallele Konstruktoren durch Überladen möglich
Konstruktor 3 … Dieser Konstruktor public Auto(){ erzeugt immer „Autos“ raeder = 4; (genauer Objekte vom pedale = 3; Typ Auto) mit 4 lenkrad = true; Räder, 3 Pedalen, hupe = true; 1 Lenkrad und 1 Hupe } …
Konstruktor 4 Ein etwas anderer Konstruktor public Auto (int r, int p, boolean h){ raeder = r; pedale = p; lenkrad = true; hupe = h; }
Konstruktor 5 • Dieser Konstruktor lässt mehr Freiheiten bei der Konstruktion des Objekts -> Parameter angebbar • Parallel zum ersten Konstruktor in der Klasse
Neue Objekte 1 • Objekte werden in Java normalerweise mittels new <Konstruktor> erzeugt • Bsp: Auto pkw = new Auto(); Auto AutoXP = new Auto (3, 2, false);
Neue Objekte 2 Ein Auto bekommt man also durch: = new( );
Methoden 1 • Franz freut sich über sein neues und gibt gleich einmal Gas…
Methoden 2 • Objekte können manipuliert werden • Dazu gibt es die Methoden • Rückgabewerte (mittels return) oder void für keine Rückgaben • Parameter • Werden stets auf Objekte angewandt (Ausnahme: static – Methoden)
Methoden 3 • Eine Beispielmethode public void gibGas(){ faehrt = true; } „faehrt“ ist dabei ein weiteres Attribut von Auto (und muss natürlich in der Klasse als solches definiert werden).
Methoden 4 • Und bremsen müssen wir natürlich auch noch: public void bremse(){ faehrt = false; }
Methoden 5 • Fahr ich oder stehe ich? public boolean gibStatus(){ return faehrt; } Hier eine Methode mit Rückgabewert. Wichtig: return - Statement
Methoden 6 • Aufruf von Methoden: … Auto car = new Auto(); … car.gibGas(); … Man sieht, Methoden sind normalerweise objektgebunden
Methoden 7 • Ausnahme: statische Methoden • Schlüsselwort static • Können über eine Klasse aufgerufen werden, ohne dass vorher ein Objekt dieser Klasse (mittels new) instanziert wurde • Verlassen des objektorientierten Konzeptes aber hin und wieder nützlich • Eine bekannte statische Methode: public static void main(String[] args){…}
public class Auto{ int raeder; int pedale; boolean lenkrad; boolean hupe; boolean faehrt; // -- Konstruktoren -- public Auto(){ raeder = 4; pedale = 3; lenkrad = true; hupe = true; faehrt = false; } public Auto (int s, int p, boolean h){ raeder = s; pedale = p; lenkrad = true; hupe = h; faehrt = false; } // -- Ende der Konstruktoren -- Die Auto – Klasse 1
public void gibGas(){ faehrt = true; } public void bremse() { faehrt = false; } public boolean gibStatus(){ return faehrt; } public void hupe(){ if (hupe){ System.out.println(„Hup“); } } … }//Klasse Auto Ende Die Auto Klasse 2
Die Auto Klasse 3 • Natürlich kann man die Klasse beliebig erweitern • Übung macht den Meister – auch in Java • Wer mag kann die Auto – Klasse erweitern, umschreiben, verbessern…
Fazit • Franz hat sein neues Auto und ist glücklich… • Und Euch hat der Vortrag hoffentlich geholfen • Fragen?