45
Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

  • Upload
    ngokhue

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10ObjektorientiertesModellierenundProgrammierenmitJava

Page 2: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

1.KlassenundObjekte

Zunächst wollen wir mit Hilfe eines Miniprogramms dieEntwicklungsumgebung BlueJ kennen lernen.

Die Installation von Java und BlueJ ist in der DateiInstallation_Java_jdk_und_BlueJ.pdf im Ordner Material beschrieben.

Unter Informatikern ist es Tradition, zunächst ein Programm zuschreiben, das den Text "Hallo Welt!" auf dem Bildschirm ausgibt.

Informatik10- 1.KlassenundObjekte 2

Page 3: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffneBlueJ undstarteeinneuesProjektmitdemNamenHalloWelt:

3

Page 4: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErzeugeeineneueKlassemitdemNamenHallo.MiteinemDoppelklickaufdasSymbolöffnestdudenEditormitdemJava-QuelltextdeinerKlasse.

4

Page 5: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

LöschedengesamtenvorgegebenenTextundgibdannimEditorfolgendenTextein.AchtedabeigenauaufdieKlammern,ZeichensetzungsowieGroß-undKleinschreibung.

public class Hallo{Stringtext ="HalloWelt!";public Stringausgeben(){return text;

}}

KlickeanschließendaufCompile.DamitwirdderTextineinefürdenComputerverständlicheMaschinenspracheübersetzt.

5

Page 6: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErzeugemitderrechtenMaustasteundnew Hallo()einneuesObjekt(Instance)derKlasseHallo.DasObjektwirdinBlueJ imunterenBereichdesFenstersdargestellt.MitderrechtenMaustastekannstdudieMethode ausgeben()aufrufen.SiegibtdenWertdesAttributs textzurück.

6

Page 7: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

QuelltextineinerProgrammiersprache

ÜbersetzendurchdenCompiler Maschinensprache(fürdenComputerverständlich)

Programmiersprache/JavaVirtualMachine

AusführendesProgramms,Ausgabe

ProgrammbeiBedarfverbessern

BeiFehlermeldungen:Programmfehlerverbessern

VorgängeimComputerbeimProgrammieren:

7

Page 8: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 8

EinJavaprogramm bestehtausmehrerenKlassen.

EineKlasse isteineArtBauplan,diefestlegt,welcheAttribute (Farbe,Breite,Höhe,...)undwelcheMethoden (ausgeben(),setzeFarbe(...),...)dieObjektederKlassehabensollen.

VoneinerKlassekannmanverschiedeneObjekte (Instanzen)dieserKlasseerzeugen,diesichinihrenAttributwerten unterscheidenkönnen.

Page 9: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 9

DerlogischeAufbaueinerKlassewirddurcheineKlassenkarteveranschaulicht.

EineKlassenkarteisteinRechteck,dasausdreiBereichenbesteht:

Oben: NamederKlasseMitte: AttributeundDatentypenUnten: Methoden

Inf-10 NTG O O M / O O P – J A V A - G r u n d l a g e n O S t R M i c h a e l G a n s h o r n 1

Wiederholung

In der heutigen Betrachtungsweise der Informatik besteht die Welt aus Objekten. Jedem Objekt liegt ein Bauplan zugrunde, nach dem es erstellt wurde.

• Diesen Bauplan nennt man Klasse. Eine Klasse legt fest, welche Attribute (Farbe, Breite, Höhe, ...) und welche Methoden (speichern(), setzeFarbe(...) ...) solche Objekte haben sollen.

Der logische Aufbau einer Klasse wird in der Regel durcheine sog. Klassen-Karte veranschaulicht. Eine Klassen-Karte ist ein Rechteck, das von oben nach unten aus dreiBereichen besteht:

Oben: Name der Klasse

Mitte: Attribute und Daten-Typen

Unten: Methoden

• Hat man nun mehrere Objekte einer Klasse erzeugt, so können sich diese durch ihre Attribut-Werte (Farbe: ''rot'', Radius: 3cm, …) unterscheiden.

Objekte werden durch eine Objekt-Karteveranschaulicht. Objekt-Karten haben im Vergleich zu Klassen-Karten abgerundete Ecken. Jede Objekt-Karte besteht aus zwei Bereichen:

Oben: Name und Klasse des Objekts

Unten: Attribute und deren Werte

Objekte spricht man immer in Punktnotation an:susi.laecheln()

susi.schlafen(7 Stdunden)

allgemein: Objektname.Methodenaufruf

• Verändernde Methoden bringen das Objekt in einen anderen Zustand:

setzeSchriftgroesse(12)

• Sondierende Methoden geben eine Antwort auf eine Frage

nenneDeinenNamen()

• Übergabe-Parameter kommen in die runden Klammern:

schlafen(7 Stunden)

• Methoden ohne Übergabe-Parameter erkennt man an den leeren Klammern:

laecheln()

M E N S C H

geburtsdatum

name

groesse

schlaeft …

laecheln()

schlafen( dauer )

trinken( was , menge )

...

s u s i : M E N S C H

geburtsdatum = 27.04.1996name = '' Susanne ''groesse = 1.63schlaeft = Nein...

Page 10: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 10

ObjektewerdendurchObjektkartenveranschaulicht.

EineObjektkarteisteinRechteckmitabgerundetenEcken,dasauszweiBereichenbesteht:

Oben: NameundKlassedesObjektsMitte: AttributeundderenWerte

tina :MENSCH

geburtsdatum =29.02.1984name =“Tina“groesse =1.65schlaeft =nein...

Page 11: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 11

ObjektesprichtmaninderPunktnotation an:

Objektname.Methodenaufruf

Beispiele:

tina.laecheln()tina.schlafen(7Stunden)

Page 12: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 12

VerschiedeneArtenvonMethoden:

VeränderndeMethodenbringendasObjektineinenanderenZustand:setzeSchriftgroesse(12)

SondierendeMethodengebenInformationenaus:gibName()

MethodenmitÜbergabeparameterDerWertindenrundenKlammernwirdderMethodeübergeben:schlafen(7)

MethodenohneÜbergabeparametererkenntmanandenleerenrundenKlammernlaecheln()

Page 13: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 13

BeziehungenzwischendenKlassenkannmanineinemeinfachen Klassendiagramm darstellen:

DazunimmtmannurdieoberenTeilederKlassenkarteundverbindetsiedurcheineLinie,dieaussagekräftigbeschriftetwird.

ZusätzlichkannmannochdieKardinalitäten angeben.DiessindZahlen,diebeschreiben,wievieleObjektedereinenKlasseinBeziehungzuderanderenKlassestehen.

Page 14: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„GreifRoboter“.

a) ErzeugeeinObjektderKlasseRoboterundnenneesgreifi.

b) Veranlassegreifi,dieersteKugelzugreifen.

c) Lassegreifi denArmum20° nachrechtsdrehen.

d) Fragegreifi nachderFarbedergegriffenenKugel.

e) Fragegreifi nachdemaktuellenWinkel.

f) Findeheraus,woderWinkel0° ist.

g) SchreibedieMethodenaufrufevonb)bise)inPunktnotationauf.

14

Übung1mitBeispiel-Objekten,Greifroboter

Inf-10 NTG O O M / O O P – J A V A - G r u n d l a g e n O S t R M i c h a e l G a n s h o r n 3

2. Roboter Karol

a) Nenne alle Methoden mit Übergabe-Parametern.

b) Nenne alle sondierenden Methoden.

c) Nenne alle verändernden Methoden.

d) Was geschieht wohl bei den beiden Methoden ROBOTER(...)?Welchen besonderen Namen hat sie?

e) Die Klassenkarte von Karol zeigt keine Attribute.Welche Attribute könnte er haben?

f) Zeichne eine Objekt-Karte von Robot-Karol wie er im Bild gezeigt ist.

g) Kannst du dir eine weitere Klasse vorstellen, zu der die Klasse ROBOTER eine Beziehung aufweist?Zeichne dazu ein Klassen-Diagramm.

3. Übe mit dem Greif-Roboter in BlueJ

a) Erzeuge ein Roboter-Objekt und nenne es greifi.

b) Veranlasse greifi, die erste Kugel zu greifen.

c) Lasse greifi den Arm 20 Grad nach rechts drehen.

d) Frage greifi nach der Farbe der gegriffenen Kugel.

e) Frage greifi nach dem aktuellen Winkel.

f) Finde heraus, wo der Winkel 0° ist.

g) Schreibe die Methodenaufrufe von a) bis f) in Punktnotation auf.

Page 15: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„GreifRoboter“.

a) ZählealleMethodenmitÜbergabeparameterauf.

b) ZählealleMethodenohneÜbergabeparameterauf.

c) ZähleallesondierendenMethodenauf.

d) ZählealleveränderndenMethodenauf.

e) ZuwelchenKlassenhatderRobotereineBeziehung?ZeichnedazueineinfachesKlassendiagramm.

15

Übung2mitBeispiel-Objekten,Greifroboter

Inf-10 NTG O O M / O O P – J A V A - G r u n d l a g e n O S t R M i c h a e l G a n s h o r n 3

2. Roboter Karol

a) Nenne alle Methoden mit Übergabe-Parametern.

b) Nenne alle sondierenden Methoden.

c) Nenne alle verändernden Methoden.

d) Was geschieht wohl bei den beiden Methoden ROBOTER(...)?Welchen besonderen Namen hat sie?

e) Die Klassenkarte von Karol zeigt keine Attribute.Welche Attribute könnte er haben?

f) Zeichne eine Objekt-Karte von Robot-Karol wie er im Bild gezeigt ist.

g) Kannst du dir eine weitere Klasse vorstellen, zu der die Klasse ROBOTER eine Beziehung aufweist?Zeichne dazu ein Klassen-Diagramm.

3. Übe mit dem Greif-Roboter in BlueJ

a) Erzeuge ein Roboter-Objekt und nenne es greifi.

b) Veranlasse greifi, die erste Kugel zu greifen.

c) Lasse greifi den Arm 20 Grad nach rechts drehen.

d) Frage greifi nach der Farbe der gegriffenen Kugel.

e) Frage greifi nach dem aktuellen Winkel.

f) Finde heraus, wo der Winkel 0° ist.

g) Schreibe die Methodenaufrufe von a) bis f) in Punktnotation auf.

Page 16: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„JavaKarol“.

a) ErzeugeeinObjektderKlasseWELTmitBreite10,Länge10undHöhe5.Nennesiewelt1.

b) ErzeugeeinObjektderKlasseROBOTER,nenneesrob undsetzerob inwelt1.

c) NenneallesondierendenundalleveränderndenMethoden.

d) WodurchunterscheidensichimQuelltextdiebeidenMethodenROBOTER(...)wesentlichvondenanderenMethoden?Wasbewirkensie?

e) DieKlasseROBOTERzeigtkeineAttribute(siewerdenvoneinernichtsichtbarenKlassegeerbt).WelcheAttributekönntesiehaben?

f) ZeichneeineObjektkartevonrob,sowieerimBildgezeichnetist.

16

Übung3mitBeispiel-Objekten,JavaKarol

Page 17: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 17

FürAttributegibtesverschiedeneDatentypen.WichtigeDatentypeninJavasind:

Datentyp Bedeutung Beispiele

int integer,ganzeZahl 27;0;-1024

double rationaleZahl -3.14;5.0E+9

char character,Zeichen ʹeʹ;ʹDʹ;ʹ5ʹ;

String Zeichenkette ʺHalloWelt!ʺ;ʺ27ʺ;ʺeʺ;ʺ ʺ;

boolean logischeVariable true;false;4<5;4==5;4!=5;

Page 18: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„alphaFormen_Zeichnung_KoSy“.

a) ErzeugeeinObjektderKlasseKREISundnenneessonne.FärbeesgelbundverschiebeesinderZeichnung.ErforschedabeidasKoordinatensystem.

b) ErzeugeeinObjektderKlasseRECHTECK,nenneeswand undfärbeeshellgrau.

c) ErzeugeeinObjektderKlasseDREIECK,nenneesdach undfärbeesgrün.

d) ErstelledarauseinHausmitSonneähnlichwieinderAbbildung.

e) NotierediebenötigtenMethodenaufrufeinPunktnotation.

18

Übung4:Objekte,Klassen,Datentypen

Page 19: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„alphaFormen_Zeichnung_KoSy“.

a) ÖffnedieKlasseZEICHNUNGundsiehdirdenJavacode inRuhean.HastduFragen?

b) SchreibenunnachdenZeilen//...undlegstihrAussehenfest//(Fachsprache:initialisierenderAttribute)dieMethodenaufrufe,dieduinderÜbung4notierthast.BeendejedeZeilemiteinemStrichpunkt.KlickenachjederZeileaufcompile (übersetzen)undverbesseregegebenenfallsdeineFehler.

c) ErzeugeeinneuesObjektderKlasseZEICHNUNG.Siehtessoaus,wieduwolltest?BesserebeiBedarfnach.

19

Übung5:Objekte,Klassen,Javacode schreiben

Page 20: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ÖffnedasBlueJ-Projekt„alphaFormen“.ErstelleindiesemProjekteineneueKlassemitdemNamenBALLundöffnedenEditor.LöschedengesamtenvorgegebenenQuelltextundschreibeimEditorfolgendenJava-Code:

public class BALL{ int radius; String farbe;

}

20

EigeneKlassenerstellen

Page 21: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErzeugeeinObjektderKlasseBALLundöffnedenObjektinspektor(DoppelklickaufdasObjektsymboloderrechteMaustasteundinspect)

21

EigeneKlassenerstellen

Page 22: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

DieAttributeradius undfarbe habendieStandardwerte0bzw.“null“.

Diesliegtdaran,dasswirAttributenurdeklariert (bestellt,beantragt),abernochnichtinitialisiert haben,alsoihnennochkeineWertezugewiesenhaben.

DieskannbeieinemneuenObjektmiteinerbesonderenMethode,demKonstruktor,erledigtwerden.

DenKonstruktorruftmanauchauf,wennmanmitnew BALL()einneuesObjekterzeugt.

22

EigeneKlassenerstellen,Konstruktor

Page 23: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErgänzenunimQuelltextdenKonstruktor:

ErzeugeeinneuesObjektundprüfeimObjektinspektor,obdieAttributedievondirprogrammiertenWertehaben.

23

EigeneKlassenerstellen,Konstruktor

public class BALL{ int radius; String farbe;

public BALL(){ this.radius = 10; this.farbe = "weiss";

}}

KonstruktorderKlasseBALL

DasWort“this“sprichtdasaktuelleObjektderKlassean.MankönnteesindiesemBeispielauchweglassen.

Page 24: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

EineKlassekannmehrereKonstruktorenbesitzen:

ErzeugeauchmitdiesemKonstruktoreinneuesObjektundprüfeimObjektinspektor.

public class BALL{ int radius; String farbe;

public BALL(int radiusNeu, String farbeNeu){this.radius = radiusNeu;this.farbe = farbeNeu;

}}

Informatik10- 1.KlassenundObjekte 24

EigeneKlassenerstellen,Konstruktor

KonstruktormitÜbergabeparameter

DasWort“this“sprichtwiederdasaktuelleObjektderKlassean.AuchindiesemBeispielkönntemanesweglassen,esverdeutlichtaberdieZugehörigkeitderAttribute.

Page 25: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 25

ImKopfderKlassewerdenAttributedeklariert (bestellt,beantragt).

public class BALL{ int radius; String farbe;

//... }

Page 26: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 26

DerKonstruktor isteinespezielleMethode,inderAttribute initialisiert,d.h.ihnenWertezugewiesen,werden.

MitdemWortthis sprichtmandasakuelle ObjektderKlassean.

DerNamedesKonstruktorsmussgenausogeschriebenwerdenwiederKlassenname.

ErbekommtamEnderundeKlammern,umihnalsMethodezukennzeichnen.

public BALL(){ this.radius = 10; this.farbe = "weiss";

}

Page 27: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

public class BALL{ int radius; String farbe;

public BALL(){ this.radius = 10; this.farbe = "weiss";

}

public BALL(int radiusNeu, String farbeNeu){this.radius = radiusNeu;this.farbe = farbeNeu;

}}

Informatik10- 1.KlassenundObjekte 27

EinKlassekannmehrereKonstruktorenbesitzen.EinKonstruktorkannauchÜbergabeparameter haben.

Konstruktor1

Konstruktor2

Page 28: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 28

DerKonstruktorwirdmitdemnew-Operatoraufgerufen,wennmaneinneuesObjektderKlasseerzeugenmöchte.z.B.new BALL() oder new BALL(20, “blau“)

Page 29: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

SchreibeanalogzurKlasseBALLeineweitereKlasseWAND.

DeklarieredieAttributehoehe, breite undfarbe.

InitialisieredieAttributeimKonstruktormitdenWerten230, 40 und“grau“.

SchreibeeinenzweitenKonstruktormitÜbergabeparameter.

ErzeugeeinObjektvonWANDundüberprüfedieWerte.

29

Übung6:EigeneKlassenerstellen,KlasseWAND

Page 30: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

DieKlasseBALLsolleinesondierendeMethodehaben,diedenRadiusdesObjektsausgibt:

ErgänzeinderKlasseBALLdenQuelltext:

30

EigeneKlassenerstellen,sondierendeMethoden

public int gibRadius(){return radius;

}

Page 31: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErgänzedieKlassenBALLundWANDumdiesondierendenMethoden:

31

Übung7:EigeneKlassenerstellen,sondierendeMethoden

Page 32: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

DieKlasseBALLsollnunaucheineveränderndeMethodehaben,diedenRadiusdesObjektsaktualisiert:

ErgänzeinderKlasseBALLdenQuelltext:

32

EigeneKlassenerstellen,veränderndeMethoden

public void setzeRadius(int rNeu){radius = rNeu;

}

Page 33: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ErgänzedieKlassenBALLundWANDumdieveränderndenMethoden:

33

Übung8:EigeneKlassenerstellen,veränderndeMethoden

Page 34: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 34

EinesondierendeMethodehatdenfolgendenAufbau:

public Datentyp-der-Antwort Name-der-Methode () {return Attribut;

}

Beispiel:

public String gibFarbe(){return farbe;

}

Page 35: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 35

EineveränderndeMethodehatdenfolgendenAufbau:

public void Name-der-Methode (Datentyp Parameter) {Attribut = Parameter;

}

Beispiel:

public void setzeHoehe(int hNeu){hoehe = hNeu;

}

Page 36: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

VerwendedasBlueJ Projekt„alphaFormen_Ball_Lsg“.

ImProjektsolleseineweitereKlasseSPIELFELDgeben,diemitObjektenderKlassenBALLundWANDarbeitet:

36

EigeneKlassenerstellen,Referenzattribute

Page 37: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

KlassenkartevonSPIELFELD

37

EigeneKlassenerstellen,Referenzattribute

Page 38: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

KlassenkartevonSPIELFELD

38

EigeneKlassenerstellen,Referenzattribute

EinfacheAttribute

Page 39: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

KlassenkartevonSPIELFELD

39

EigeneKlassenerstellen,Referenzattribute

Referenzattribute

Page 40: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte 40

ReferenzattributesindAttribute,diesichaufeineandereKlassebeziehen.

ImGegensatzzueinfachenAttributenwerdenvoneinemReferenzattributObjekteerzeugt.

Beispiel:

public class SPIELFELD {WAND wandLinks; //Referenzattribut...public SPIELFELD(){

wandLinks = new WAND(); //Erzeugen eines Objekts}

Page 41: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ImplementieredieKlasseSPIELFELDmitdenvorgegebenenAttributen.

DerKonstruktorhatzweiÜbergabeparameterhoehe undbreite.

DerWertvonhoehe solldabeijeweilsanwandLinks undwandRechts weitergegebenwerden.

DerAufrufnew SPIELFELD(50,300)erzeugtalsodieObjektewandLinks undwandRechts,fürdiegiltwandLinks.hoehe=50undwandRechts.hoehe=50.

DieMethodedatenAusgeben()wirdaufdennächstenSeitenerklärt.

41

Übung9:EigeneKlassenerstellen,Referenzattribute

Page 42: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

AnstelledersondierendenMethodensollendiesmaleinigederAttributwerteineinemTextfensterausgegebenwerden.

42

EigeneKlassenerstellen;dieMethodeSystem.out.print(Stringtext)

Page 43: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

DieserfolgtdurchdieMethodeprint oderauchprintln.Beiprintln wirdnachderAusgabeeineneueZeilebegonnen,beiprint nicht.ÜbergabeparameteristjeweilseineZeichenkette.

AufrufderMethode:System.out.println(“Diese Zeichenkette wird ausgegeben.“);

MankannmehrereZeichenkettendurch+miteinanderverbinden.AuchdasLeerzeichenwirdalsZeichenkettebehandelt.

System.out.println(“Ich“ + “ “ + “programmiere.“);

DasselbeErgebniserhältmannatürlichauchso:System.out.println(“Ich “ + “programmiere.“);

43

EigeneKlassenerstellen;dieMethodeSystem.out.print(Stringtext)

Page 44: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

EinfacheDatentypenwiez.B.int ,char oderboolean werdenautomatischalsZeichenketteausgegeben:

System.out.println(“Breite des Spielfeldes: “ + breite);

Liefertz.B.dieAusgabe: BreitedesSpielfeldes:100

NatürlichdarfmanauchsondierendeMethodenaufrufen:

System.out.println(“Höhe wandLinks: “ + wandLinks.gibHoehe());

44

EigeneKlassenerstellen;dieMethodeSystem.out.print(Stringtext)

Page 45: 01 Objekte und Klassen - wvsg.schulen2.regensburg.de · a) Erzeuge ein Objekt der Klasse Roboter und nenne es greifi. b) Veranlasse greifi , die erste Kugel zu greifen. c) Lasse greifi

Informatik10- 1.KlassenundObjekte

ImplementiereinderKlasseSPIELFELDnundieMethode

public void datenAusgeben(){System.out.println(“Breite: “ +breite);...

}

LassmöglichstvieleAttributwerteausgeben.

45

Übung10:EigeneKlassenerstellen,Textausgabe