This website requires a browser which supports HTML5.
Some elements of this site will not work correctly until you upgrade your browser.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
OOPFachklassenkonzeptInhalt:-Ausgangssituation-UmsetzungohneOOP-UmsetzungmitOOP-Fachklassenkonzept-OOP-Schablone-SimulationdesOOP-Ablaufs-Fragen-HinweisezurNamensgebungbeiderOOP-AufgabenZusammenfassung:DievorliegendeWebapp“OOP_Fachklassenkonzept”behandeltanhandeineseinfachenProgrammbeispielsdieVorteilederobjektorientiertenProgrammierung.DazuwirddieUmsetzungdesBeispielszunächstohneAnwendungderobjektorientiertenProgrammierungbetrachtet.DanacherfolgtderVergleichmitderobjektorientiertenProgrammierungundderHerausstellungderVorteile.Dasdabeiverwendete“Fachklassenkonzept”isteinvereinfachtesdidaktischesKonzeptzurEinführungoderWiederholungderobjektorientiertenProgrammierungundkannalsÜberleitungzurUmsetzungstrengobjektorientiertmodellierterAnwendungenbetrachtetwerden.ErforderlicheVorkenntnisse:UmgangmitderJavaEntwicklungsumgebungzurErstellungeinfacherProgrammemitStartklasse,einfachenDatentypen,einfachenBerechnungenundBenutzerein-undAusgabe.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
EssolleinProgrammentwickeltwerden,welchesdasQuadratdesEingabewertesberechnet.Eingabe:eingabewertVerarbeitung:quadrat=eingabewert*eingabewert;Ausgabe:quadrat
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
StarteErläuterung
publicclassStartklasse{publicstaticvoidmain(String[]args){//Eingabedoubleeingabewert=2.0;doublequadrat;//Verarbeitungquadrat=eingabewert*eingabewert;//AusgabeSystem.out.print("DasQuadratvon");System.out.print(eingabewert);System.out.print("ist");System.out.println(quadrat);}}
DadurchistesnursehrumständlichmöglichdieVerarbeitungineinemanderenProjektwiederzuverwenden.
AusdiesemGrundwirddieobjektorientierteProgrammierungeingeführt,welcheu.A.dieEin-/AusgabevonderProgrammlogiktrennt.DienächstenFolienbeschreiben,wieeinOO-Programmaufgebautist.
WasistderNachteildieserLösung?
DieProgrammlogik(Verarbeitung)
unddieKommunikationmitdemAnwender(Ein-/Ausgabe)sindnichtvoneinandergetrennt.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
Idee:JedeKlasseerfüllteinebestimmteAufgabeimobjektorientiertenProgramm.DabeiwerdendieAufgabensoverteilt,dassjedeKlassenurfüreineArtvonAufgabezuständigist.DadurchistesmöglicheinzelneKlassenauszutauschenoderinanderenProjektenwiederzuverwenden.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
Beispiel:Startklasse:StartetdieAnwendungundinitialisiertdieanderenKlassenFachklasse(n):EnthältdieProgrammlogik.HäufigwerdenmehrereFachklassenbenötigt.GUI-Klasse:KommuniziertmitdemAnwenderübereinegrafischeBenutzeroberfläche.BeireintextbasiertenAnwendungenübernimmtdieStartklassedieKommunikationmitdemAnwenderDatenbanklasse(n):RegeltdenZugriffzueinerDatenbank.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
DieOOP-SchablonesolleinenÜberblicküberdieGrundstruktureineseinfachenobjektorientiertenProgrammsmitStartklasseundeinerFachklassegeben.DasBeispielprogrammberechnetdasQuadratdesEingabewertes.Eingabe:eigenschaft1Verarbeitung:eigenschaft2=eigenschaft1*eigenschaft1;Ausgabe:eigenschaft2
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
UML-Diagramm:grafischeDarstellungderKlassenstrukturHinweise:DieMethodenzumsetzen(setEigenschaft1,setEigenschaft2)undlesen(getEigenschaft1,getEigenschaft2)derEigenschaftswertewerdeninobigenUML-DiagrammzurbesserenÜbersichtnichtangezeigt.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
publicclassStartklasse{ publicstaticvoidmain(String[]args){ //FachklassenobjektFachklasseobjFK=newFachklasse(); //EingabeobjFK.setEigenschaft1(2.0);//VerarbeitungobjFK.rechne();//AusgabeSystem.out.print("DasQuadratvon");System.out.print(objFK.getEigenschaft1());System.out.print("ist");System.out.println(objFK.getEigenschaft2());}}
2.einneuesFachklassenobjektwirderzeugt(instanziiert)unddieserVariablenzugewiesen.
3.AufrufderMethodesetEigenschaft1undÜbergabedesWertes2.0andasFachklassenobjekt
innerhalbdesFachklassenobjektsweistdieMethodesetEigenschaft1derEigenschaft1denübergebenenWert2.0zu
StarteErläuterung
4.AufrufderMethoderechneimFachklassenobjekt.DiesesberechnetdasQuadratvonEigenschaft1undspeichertdasErgebnisinEigenschaft2
1.EineVariablemitdemNamenobjFKvomTypFachklassewirddeklariertund
5.MitderMethodegetEigenschaft1wirdderWertderEigenschaft1desFachklassenobjektesgeholtundaufderKonsolemitSystem.out.printlnausgegeben
6.MitderMethodegetEigenschaft2wirdderWertderEigenschaft2desFachklassenobjektesgeholtundaufderKonsolemitSystem.out.printlnausgegeben
AufdernächstenFoliewirdsimuliert,wiederDatenaustauschzwischenStart-undFachklasseabläuft
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
publicclassStartklasse{ publicstaticvoidmain(…){ //FachklassenobjektFachklasseobjFK=newFachklasse(); //EingabeobjFK.setEigenschaft1(2.0);//VerarbeitungobjFK.rechne();//AusgabeSystem.out.print("DasQuadratvon");System.out.print(objFK.getEigenschaft1());System.out.print("ist");System.out.println(objFK.getEigenschaft2());}}
StarteSimulation
publicclassFachklasse{privatedoubleeigenschaft1;publicdoublegetEigenschaft1(){returneigenschaft1;}publicvoidsetEigenschaft1(doubleeigenschaft1){this.eigenschaft1=eigenschaft1;}privatedoubleeigenschaft2;publicdoublegetEigenschaft2(){returneigenschaft2;} publicvoidrechne(){eigenschaft2=eigenschaft1*eigenschaft1;}}
DasQuadratvon2ist4AufdernächstenFolieistderkompletteQuelltextderFachklasseangegeben…
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
publicclassFachklasse{privatedoubleeigenschaft1;publicdoublegetEigenschaft1(){returneigenschaft1;}publicvoidsetEigenschaft1(doubleeigenschaft1){this.eigenschaft1=eigenschaft1;}privatedoubleeigenschaft2;publicdoublegetEigenschaft2(){returneigenschaft2;}publicvoidsetEigenschaft2(doubleeigenschaft2){this.eigenschaft2=eigenschaft2;} publicvoidrechne(){eigenschaft2=eigenschaft1*eigenschaft1;}}
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
enthältdieProgrammlogikderkomplettenAnwendungistnichtunbedingterforderlichübernimmtbeireintextbasiertenAnwendungendieAnwenderkommunikationistnichtdieeinzigeAnwendungdieSystem.out.println-BefehleenthaltensollteDieStartklasse…Vervollständigeso,dassdieAussagekorrektistBeireintextbasiertenAnwendungenübernimmtdieStartklassedieKommunikationmitdemAnwender.SubmitAnswer

Punktestand:

ImportantNote:WhenduplicatingquestionsusingradiobuttonsyoumustusetheNextoptionontheRadioButtonPropertiestoassignanewindexnumberforthisgroup.Otherwisethisgroupofbuttonswilldisplaythesettingsfromthepreviousgroupasitwillhavethesameindexnumber.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
sindimmer“privat”deklariertsindgenerellnichterforderlichdienenzurÜbergabevonEigenschaftsdatenandieFachklassedienenzumLesenvonEigenschaftsdatenderFachklasseDieSet-MethodeneinerFachklasse…Vervollständigeso,dassdieAussagekorrektistDieSet-MethodeneinerFachklassedienenzurDateneingabezumSetzenderEigenschaftswertederFachklasseundsindimmer“public”deklariert.SubmitAnswer

Punktestand:

ImportantNote:WhenduplicatingquestionsusingradiobuttonsyoumustusetheNextoptionontheRadioButtonPropertiestoassignanewindexnumberforthisgroup.Otherwisethisgroupofbuttonswilldisplaythesettingsfromthepreviousgroupasitwillhavethesameindexnumber.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
sindimmer“privat”deklariertsindgenerellnichterforderlichdienenzumLesenvonEigenschaftsdatenderFachklassedienenzurÜbergabevonEigenschaftsdatenandieFachklasseDieGet-MethodeneinerFachklasse…Vervollständigeso,dassdieAussagekorrektistDie“public”deklariertenGet-MethodeneinerFachklassedienenzumLesenderaufgrundderKapselungimmer“private”deklariertenEigenschaftswerteeinerFachklasseSubmitAnswer

Punktestand:

ImportantNote:WhenduplicatingquestionsusingradiobuttonsyoumustusetheNextoptionontheRadioButtonPropertiestoassignanewindexnumberforthisgroup.Otherwisethisgroupofbuttonswilldisplaythesettingsfromthepreviousgroupasitwillhavethesameindexnumber.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
SubmitAnswerBringedieAnweisungenindierichtigeReihenfolgeso,dassdasErgebnissinnvollist

Punktestand:

ImportantNote:Toallowuserstochangetheirmind,answerscanbedraggedoffoncethey’vebeendropped,sothereisaResetScoreactiontoadjustthescorefortheobjectbeingremoved.
BitteerstalleAntwortenzuordnen-ZumSchließenclicken-
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
NatürlichsolltefürdieKlassen,EigenschaftenundMethodensinnvolleNamenvergebenwerden,diederenFunktionbeschreiben.VorschlägefürdasfolgendeBeispiel,wennwirannehmen,dassdasQuadrierenzurBerechnungderFlächeeinesQuadratsdient:Startklasse StartklasseFachklasse Quadrateigenschaft1 seitenlaengeeigenschaft2 flaecherechne() berechne_flaeche()
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
EssolleinobjektorientiertesProgrammentwickeltwerden,dasvomAnwenderdieSeitenlaengeeinesQuadrateseinliestunddanndieFlächedesQuadratsausgibt.a)ErstelledaszugehörigeUML-Diagrammb)ImplementieredasProjektmitJavac)ErweiteredasUML-DiagrammunddanndasProjektumdieMöglichkeitdenUmfangdesQuadrateszuberechnenundauszugeben.
>
<

M.Neumann
30.06.2015
OOP:Fachklassenkonzept
^
Name:
ImportantNote:Usethispageasascoreboardorasapasscertificate.TotestforapassmarkuseIFfromtheProgrammingtabandchecktoseeifSCORE_VALUE_PERCENTisgreaterthanyourpassthreshold.
hatdenKursmitfolgenderPunktzahlabgeschlossen:AbschlusszertifikatDatum:

Punkzahl

Prozent