![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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/1.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/2.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/3.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/4.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/5.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/6.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/7.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/8.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/9.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/10.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/11.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/12.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/13.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/14.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/15.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/16.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/17.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/18.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/19.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/20.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/21.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/22.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/23.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/24.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/25.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/26.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/27.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/28.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/29.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/30.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/31.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/32.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/33.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/34.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/35.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/36.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/37.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/38.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/39.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/40.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/41.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/42.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/43.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/44.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022040623/5d4cfcbd88c993c16c8b6e27/html5/thumbnails/45.jpg)
Informatik10- 1.KlassenundObjekte
ImplementiereinderKlasseSPIELFELDnundieMethode
public void datenAusgeben(){System.out.println(“Breite: “ +breite);...
}
LassmöglichstvieleAttributwerteausgeben.
45
Übung10:EigeneKlassenerstellen,Textausgabe