|
|
- Benedict Lange
- vor 8 Jahren
- Abrufe
Transkript
1 "ObjektorientiertesProgrammieren\ EntwurfeinerUnterrichtseinheit vorgelegtvondanieljonietz UniversitatKaiserslautern FachbereichInformatik Mai1999
2 ObjektorientierteProgrammierung Inhaltsverzeichnis 1 2FachlicheKlarung 1Einleitung desunterrichtsgegenstandes 2 2.1DieIdeedesObjekt-Paradigmas EinordnungdesObjekt-Paradigmas Terminologie Begriichkeiten DidaktischeAnalyse 2.5Programmiersprachen BegrundungdesUnterrichtsvorhabens AuswahlundStrukturierungderInhalteundZielemitBegrundung IntentionderUnterrichtsreihe BedeutungdesThemasimInformatikunterricht BegrundungdesThemasausdemLehrplan Fachspezisch-allgemeineLernziele VoraussetzungenundVorkenntnisse HierarchiederObjekt-Konzepte ZurFragederProgrammiersprache AuswahlderLernzieleunddidaktischeReduktion Lernkontexte OrdnungderLernzielenachKriteriengrob/fein MethodischeAnalyse 3.6Lehrbuch BesondereSchwierigkeiten LernmethodischeAspekte UnterrichtsmethodischeAspekte Unterrichtsplanung(Skizze) 5.1Unterrichtsplanung Unterrichtsplanungdetailliert: SchritteundPhasen...32 AObjekthierarchie BObjekthierarchie:Aufrufvonmove 38 CQuelltexte DArbeitsblatter 42
3 ObjektorientierteProgrammierung 1 Einleitung 2 IndieserAusarbeitungsolleineUnterrichtseinheitzurObjektorientierten Programmierungvorgestelltwerden.DabeigeheichvoneinigenBedingungenaus,dieineinemkonkretenKursu.U.sonichtvorliegen;Gegebenenfalls Vor-KursnotigeKenntnissevermitteltwerden.WoauchimmerAnderungen mussenanpassungenhinsichtlichdesvorwissensderschulergemachtwerden,indementsprechendeanderungenvorgenommenwerdenoderineinem der12.jahrgangsstufestufeausgehen,derseinenunterrichtgemadem werdeichkurzdiealternativennennenundsomitzuganglichmachen. oderanpassungenohnegroeumstellungderunterrichtsreihemoglichsind, rheinland-pfalzischenlehrplan[lehrplan93]absolvierthatunddementsprechendbereitsubervorwissenundeinigeerfahrungbezuglichdergenerellen IchmochteimFolgendenvoneinemktivengymnasialenGrundkurs VorgehensweisebeizulosendenProblemenverfugt.Weitereinschrankend habedieserkursspeziellinturbo-pascaleinerhinreichendhohenversions- vonpunkten,linienundkreisen)kennengelernt. SchulerbereitselementareGrak-BefehlevonPascal(wiez.B.dasZeichnen nummergearbeitetundseiinderlage,abstraktedatentypenzuentwer- fenundmitihnenumzugehen.daruberhinaushabendieschulerinnenund deohneunterrichtsausfallaus,sodaspezischezeitlichegegebenheiten nichtberucksichtigtwerdenmussen.dieraumlicheundtechnischeausstattungseiideal. FernergeheichvonwochentlicheinerDoppelstundeundeinerEinzelstun-
4 ObjektorientierteProgrammierung 2 FachlicheKlarung 3 2.1desUnterrichtsgegenstandes nitionderdatenstrukturenundderdaraufausgefuhrtenoperationenvon- BeiderkonventionellenablauforientiertenProgrammierungerfolgtdieDe- DieIdeedesObjekt-Paradigmas DatenzugriemitdemWissenumdieDatenstrukturprogrammiertwerden. einanderweitgehendunabhangig.daswissenumdiebedeutungundzusam- menhangederdatenistdezentralimganzenprogrammverteilt,indemdie forderlich. DagegenerfolgtbeiderObjektorientiertenProgrammierungdieBeschreibungvonDatenzusammenmitdaraufauszufuhrendenAktionenineiner Miniwelt(auch)alsGesamtheitvon"Objekten\(Gegenstanden,Ereignissen) Einheit,spatersindKenntnisseumdieDatenreprasentationnichtmehrer- auassen,die UmeinenAusschnittderrealenWeltzumodellieren,latsicheinesolche untereinanderinbeziehungenstehen, beobachtetwerdenkonnen, sichimverlaufderzeitandernundgegenseitigbeeinussen, ren,ihrebeziehungenuntereinanderzucharakterisierenundihreeigenschaf- aufeinwirkungenvonaueninspezischerweisereagieren. tenundverhaltensweisenzubeschreiben.daruberhinauswirddenkompo- nentenselbstandigkeitzuerkannt,sodadiebeiablauforientiertenprogram- DasObjekt-ParadigmaversuchtdieauftretendenObjektezuklassizienerKomponentensowieihrerKommunikationsmoglichkeitenbeschranken. DiesenSachverhaltbeschreibenCrutzen&Heinwiefolgt: tenstrukturergibt.programmierungkannsichaufdiebeschreibungeinzel- mennotwendigeablaufsteuerungsichquasi"vonselbst\ausderkomponen- "JedesObjektderRealitat,dasInformationenaufnimmt,speichert,verarbeitetundabgibt,kannmanalsInformationsobjekt beschreiben.objektederrealitatkonnenuntereinanderagieren, miteinobjektderrealitat,dasman...wiederumalsinformati- onsobjektbeschreibenkann.\1 formationsobjektenbeschreiben.eininformationssystemistdie RealisierungeinerAnzahlvonInformationsobjekten undda- dieseinteraktionenkannmanalskommunikationzwischenin- 1[Crutzen&Hein95],S.150
5 ObjektorientierteProgrammierung DurchdieAufspaltungkomplexerSystemeinsolchekleinen,insichgeschlossenenKomponenten(Objekte)erschlieensichmehrereVorteile: 4 derprogrammieraufwandlatsichdurchwiederverwendungdergemeinsamkeitenahnlicherkomponentensenken klarverstandlichangeben, DieSchnittstellenzwischendenKomponentenlassensicheinfachund undschlielichwerdenvieleprogrammierfehlerdurchdieabgeschlossenheiteinzelnerkomponentenunddiedarausresultierendeeinge- Programmierstilenklassizieren,dieseordnetmanzweiKategorienzu: ProgrammiersprachenlassensichdurchcharakteristischeMerkmalenachdrei EinordnungdesObjekt-Paradigmas 2.2schrankteSichtdesProgrammierersvermieden. prozedural deklarativ imperativ funktional Objektorientiert pradikativ tiertekonzeptemitallenanderenstilenkombiniertwerdenkonnen.objekt- orientierteprogrammierungkanneheralserweiterungderstrukturierten ProgrammierungdennalseigenerProgrammierstilaufgefatwerden.2 AlsvierterStilwirdoftObjektorientiertgenannt,obwohlObjektorien- 2[Schwill93],S.10f
6 ObjektorientierteProgrammierung 2.3 Terminologie3 5 Objekte WieobenbeschriebenlatsicheineMiniweltalsMengeunabhangiger, stemsreprasentierteinenbeliebigengegenstandodersachverhaltder RealitatundbesitzterfabareEigenschaften,dieAttributegenannt werden.alleattributezusammenspiegelndenzustandderkomponentewieder.elementarekomponentenheienobjekte. kooperierenderkomponentenbeschreiben.jedekomponentedessy- NachrichtenundDienste AusProgrammierer-SichtisteinObjektdieZusammenfassungvonDatenundOperationenzueinerEinheit. DieDynamikdesSystemswirddurchdenAustauschvonNachrichten(Botschaften)zwischendeneinzelnenKomponentengewahrleistet. EineNachrichtkanndazufuhren,dadiebenachrichtigteKomponente ihrenzustandandertodereinendienstausfuhrt.diehandlungsvorschriftzurdurchfuhrungdesdienstesheitmethodeundentspricht Klassen einerprozedurderablauforientiertenprogrammierung. buteunddiensteentsprechenderobjektedargestellt.gibtesmehrere ObjektemitgleichenMerkmalenundgleichemVerhalten,sogehoren MerkmaleundVerhaltenvonKomponentenwerdendurchdieAttrisediezugrundeliegendeIdee,dieKonzeptioneinerArtvonObjekten anundkannalsvorlage(template)betrachtetwerden,nachderihre Objekteaufgebautwerden.JedeseinzelneObjekteinerKlasseistein dieseobjektezurgleichenklassevonobjekten.dabeigibtdieklas- Exemplar(eineInstanz)derKlasse.DieBildungeinesExemplarseinerKlassewirdmitInstantiierungbezeichnetundkennzeichneteine Kapselung HerkommlicheProzedurenundFunktionensindinderLageHilfsgroen konkreteauspragung,entstandengemaeinervorlage. zuverstecken,sodasienurwahrendderfunktionsausfuhrunglokalzurverfugungstehen,ihreexistenzistaufdieausfuhrungszeit derfunktionunddenort(d.h.innerhalbderfunktion)beschrankt. DieSchnittstellederFunktionweistdenNamenundevtl.benotigteParameteraus,dieRealisierungbleibtdemBenutzerebensowie 3angelehntan[Goos96] diehilfsgroenverborgen.diesesversteckenwirdmitkapselungbezeichnet.daskonzeptderabstraktendatentypen(adt)erweitertdie
7 ObjektorientierteProgrammierung MoglichkeitenderKapselungdahingehend,daesnunauchmoglich6 ist,lokalsichtbaredatenzuverwenden,derenlebenszeitnichtaufdie AusfuhrungszeiteinerFunktionbeschranktist.Dadurchwirdeinhoher GradanAbstraktioninderBeschreibungundimUmgangmitbenutzerdeniertenDatentypenerreicht4,auerdemhabenEingrieindie SoftwarenurlokalbeschrankteAuswirkungen:AnderungenderImplementierunghabenbeistabilerSchnittstellekeinenweiterenAnderungsaufwandzurFolgeundManipulationsoperationen,beschranktdenZugriaufdieDatensenschnittstelle,aufzufassenalsGesamtheitallerzulassigenZugris- sindalsimplementierteabstraktedatentypenzuverstehen.dieklas- DieObjektorientierungleistetdiesmitdemKlassenkonzept:Klassen schlossensind.dieentscheidungeinerimplementierungverteiltdabei keineglobalenvariablenvorhanden,sodanebenwirkungenausgestruktur.jedwedekonkreterealisierungbleibtdemanwenderverborgen.auerhalbderklassenhierarchiesindkeinegemeinsamendaten, ihrekonsequenzennichtimganzenprogramm,sondernwirdaneinem "Ei\:5 Punktkonzentriert.GoosnenntalsMetapherfurdieKapselungein Datenstruktur Kapselung OperationenfurZugriundManipulation abstrakteklassenundvererbung dejedochggf.konkretanzugeben.dazukonnendieentsprechenden spezischendetailsunterscheiden.wunschenswertistes,diegemeinsamkeiteneinmalfestzulegenundmehrfachzuverwenden,unterschie- EssindKlassenvorstellbar,dieeinanderahnlichsindundsichnurin 5[Quibeldey-Cirkel94],S.64 4[Schwill95],S.180 Groen(Attribute,Methoden)lokalgeandertwerden,mussenjedoch nurbeitatsachlichembedarfangepatwerden.
8 ObjektorientierteProgrammierung ObjektorientierteBeschreibunggestattetes,voneinemBasistypeiner 7 stelleundfunktionalitat,kanndiesejedochaucherweiternodermodi- klassesuperklasse.dievererbungsrichtungsuperklasse!subklasse KlasseweitereTypenabzuleiten.DerabgeleiteteTyperbtSchnittzieren.DieabgeleiteteKlasseheitSubklasse(Unterklasse),dieOber- beschreibteinespezialisierung,dierichtungsubklasse!superklasse Generalisierung. NebensolchenkonkretenOberklassensindauchsog.abstrakteOberklassenerlaubt:BeschreibteineKlassenurAuenverhalten,soheitsie abstrakt.siereprasentierteinemengekonkreterklassenmitgleichem Auenverhalten.UnterklassenerbenMerkmale(Attribute,Methoden) vonoberklassen,durfenaberaucheigenemerkmaleinformvonattributenodermethodeneinbringen.eineabstrakteklassemustets Oberklasseseinundeine(konkrete)Unterklassebesitzen. BeiderVererbungsindgrundsatzlichzuunterscheiden: {"ist-spezialisierung-von\-vererbung {"ist-ein\-vererbung (gleichseitigesdreieckistspezialisierungvonallgemeinemdreieck), (SchuleristeinMensch), {"implementiert\-vererbung {"hat-ein\-vererbung (ListerealisiertMenge), {"verwendet\-vererbung (wirdausschlielichtechnischverwandt) (EinKreishateinenPunktalsMittelpunkt) ErbteineKlassedieVerhaltensweisenmehrerer(Super-)Klassen,so sprichtmanvonmehrfachvererbung.dieallensubklasseneinergemeinsamensuperklassegemeinsamenmerkmaledersubklassenheien abgeleitet,diespezischenmerkmaleheienkernmerkmale.dabeikonnenabgeleitetemethodenuberschriebenwerden,indemfurdie UnterklasseeineneueKernmethodeangegebenwird,diedieSpezikationrealisiertunddieAufgabenderabgeleitetenMethodeubernimmt. VererbungdientderModularitatundUbersichtlichkeitundfordertdie werdenkann. programmiertwerdenmussenundaufgrundbegriezuruckgegrien WiederverwendbarkeitvonBausteinen,dagleicheKonzeptenureinfach
9 ObjektorientierteProgrammierung Polymorphie 8 InmonomorphenProgrammiersprachenbesitzenProzeduren,Funktionen,Parameter,OperatorenundOperandeneineneindeutigenTyp, polymorphesprachenerlaubenmehralseinentyp.6dadurchwirddie SignaturzueinermehrelementigenMengevonSignaturenundistnicht richteindienstangefordert,soentscheidetesselbstandig,wieesden spezischendiensterbringt.esgiltzwischenstatischerunddynamischerbindungzuunterscheiden: dervererbung.wirdvoneinemobjektdurchversendeneinernach- eindeutig.polymorphiestehtindirektemzusammenhangzumkonzept {statischebindung: diekonkreteklasseiststarraneineabstrakteschnittstellenklasse gebunden.sokanndergebraucheinerklasseentworfenwerden, {dynamischebindung: ohnesieimdetailzurealisieren,dierealisationwirdinformeiner konkretenunterklassenachgereicht.dabeiwerdendiemethoden dieauszufuhrendemethodewirderstzurausfuhrungszeitbestimmt.dadurchkonnenobjektemitgleichemauenverhalten uberladen. gierenindividuellaufgleichlautendenachrichten.stehtzuruber- setzungszeitnochnichtfest,zuwelcherklasseeinobjektzur einheitlichverwendetwerden:verschiedengestaltigeobjekterea- erstzurlaufzeithergestellt,daherauchlatebindinggenannt. dannassoziiert,wenndasdurchdennamenbezeichneteobjekt erzeugtwirdbzw.diemethodeverwendetwird.diebindungwird Ausfuhrungszeitgehorenwird,sowirdderNamederKlasseerst Gallzeigtin[Gall95],S.196diePolymorphie-TypenbeiderObjektorientierungauf: {adhoc-polymorphie: EineFunktionkannbeigleicherHandhabeaufeinerendlichen MengevonTypenineinervomTypabhangigenWeiseoperieren overloading:einnamestehtfurunterschiedlichesemantischeobjekte(funktionen,operatoren).dieentscheidung, welcheauspragungverwendetwird,falltaufgrunddeskontextes. 6[Gall95],S.196 coercion:jedesfunktionsargumentwirdineinenvorgegebenentypumgewandeltunderstdannubergeben.
10 ObjektorientierteProgrammierung {universal-polymorphie: 9 FunktionenaufpotentiellunbeschrankterZahlvonTypen: inclusion:vererbung/klassenhierarchie:einobjektkann parametric:generizitat:generischefunktionkannihreaufgabemitargumenteneinesnochnichtkonkretisiertentyps alszuunterschiedlichenklassengehorigbetrachtetwerden. EinObjektauseinerSubklassekannineinemSuperklassenkontextverwendetwerden. PolymorphiefordertUbersichtlichkeitundVerstandnis,dafurverschie- durchfuhren. deneobjektegleichenamenentsprechenddererwartetenfunktiona- EssindnichtalleobenvorgestelltenKonzepteerforderlich.Diewesentlichen KonzeptewerdenauchalsGrundsaulenderobjektorientiertenProgram- Begriichkeiten 2.4litatvergebenwerdenkonnen. mierungbezeichnet,diessindkapselung,vererbungundpolymorphismus, alsbasiskonzeptewerdenobjekte,klassenundvererbunggenannt.7man unterscheidetnachwegenerschlagwortartig: Objektorientiert=Objekte+Klassen+Vererbung Objektbasiert=Objekte Klassenbasiert=Objekte+Klassen 2.5 NichtalleProgrammiersprachenunterstutzenObjektbasiertes/ObjektorientiertesProgrammieren:8 Nicht-Objektbasiert(non): LISP,Algol,C,Pascal,Modula,Ada Nichtrein-Objektorientiert(hybride): Flavors,LOOPS,CLOS,C++,Objective-C,O-OPascal,Delphi rein-objektorientiert(pure): Smalltalk-80,Eiel,Actor,Oberon,Java 8aus:[Quibeldey-Cirkel94],S.121 7nach[Gall95],S.195und[Quibeldey-Cirkel94],S.118
11 ObjektorientierteProgrammierung 3 DidaktischeAnalyse 10 dasobjektorientiertedenkenzuvolliganderenprogrammarchitekturenfuhrt,diedierealendingeunsererumweltvielnaturlicherabbildenalsablauforientierteprogramme.\9 "Wersicheinmaldaraufeingelassenhat,wirdsehrbaldsehen,da 3.1.1BedeutungdesThemasimInformatikunterricht ObjektorientierungisteineEntwicklung(undeinSchlagwort,wieWirthzu BegrundungdesUnterrichtsvorhabens denkenist. BereichederDatenverarbeitunggehaltenhatundheutekaumnochwegzu- bedenkengibt),dieseitbeginnder90erjahrenverstarkteinzuginviele mitobjekten:derbildschirmistgespicktmitsymbolischenmetaphern(piktogrammen),diefurmitunterkomplexeoperationenstehen.jederanwender kannseinallgemeinwissenintuitiveinsetzen: JederBenutzereinesmodernenBetriebssystemsarbeitet(oftunbewut) "Ordner\,"Dokument\,"Ablage\und"Aktenkoer\.EinDokumentwirdin einemordnerabgelegt,indemesmitderhand(mittelsmaus)aufgegrien undimordnerfallengelassenwird.10der"papierkorb\aufdem"desktop\ Aufdem"Desktop\(=Schreibtisch)gibtesBuroutensilienwie"Papierkorb\, wohldateienalsauchtextausschnitte,klange,piktogrammeetc.,ohneda ArtenvonDatenverwendetwerden,erschlucktKraftseinerPolymorphieso- "losche\.einsolcher"papierkorb\kannmitgeringemvorwissenundfuralle istsinnbildundschnittstellefurdieabstraktehandlung"verwerfe\oder Vorwissennotig,umsolcheLoschoperationenausfuhrenzukonnen.11 anweisungsgesteuertenbetriebssystemenistsyntaktischesundbegriiches schwindetalleswiderruichinihm,biser"geleert\wird.beiderarbeitmit derbenutzerirgendeineunterscheidungtreenmu:miteinemmauszugverfolgenineineranwendungaufzeichenwill,kommtumobjektorientierung kaumumhin.samtlicheverbreitetenmodernenmakrosprachen(wievisual Basicu.a.)bedienensichamKonzeptvorratderObjektorientierung. JederderauchnureinMakrozurAbkurzungoftgebrauchterAnweisungsdeaus,Losche.EineTabellenzellekannObjektevomTypusText,Formel, Schriftart,StiloderFarbeundMethodenwieKopiere,Modiziere,Schnei- 9Spolwig,[Spolwig95],S.43 JedesWortineinerTextverarbeitungisteinObjektmitAttributenwie 11[Quibeldey-Cirkel94],S [Quibeldey-Cirkel94],S.150
12 ObjektorientierteProgrammierung Grak,KlangodergareineweitereTabelleenthalten. 11 stemenaufschrittundtritt,wennauchoftunbewutundversteckt.doch werlerntwieobjektorientierungfunktioniert,kanndiefunktionalitaterst invollemumfangerkennenundsichzueigenmachen. ObjektorientierungbegegnetdemAnwendervonDateninformationssy- schildertdievorteile: Beschreibung\12einstarkesMittelzurReduzierungvonKomplexitat.Wirth Weiterhinistdie"...ZerlegungdesSystemsinseineObjekteundderen "...undheuteistdieobjektorientierteprogrammierungzueinem denendiedatenunterworfenwerden.eshandeltsichummehr wichtigenbegriundzueinerpotententechnikgeworden... EsstecktmehrdahinteralsdasvielzitierteindenVordergrund ruckenderdatenalsobjekteanstellederablaufe(algorithmen), alseinereinalternativebetrachtungsweisevonprogrammierten geschutztvorindiskretenzugrienaufzubewahren.datenwerdennurautorisierten(eigenen)methodenausgegeben.folglichlassensichaspektedes DasKonzeptderDatenkapselungermoglichtesdemEntwickler,Daten Systemen.\ BegrundungdesThemasausdemLehrplan ohnezusatzlichenaufwandberucksichtigtwerden. DatenschutzesvereinfachtrealisierenundkonnenbereitsimSystementwurf Quibeldey-Circelzeigtin[Quibeldey-Cirkel94],S.12auf,dadieTrendwendehinzurObjektorientierungumdenJahrzehntwechsel80/90erfolgte, derstarkeaufschwungbeganninden90erjahren.derlehrplanentwurffur diezurentstehungszeitnochgeringerichtungderobjektorientierungnicht explizitsondernnurinansatzenan.dennochistdasobjekt-paradigmazu denaktuellentrendsinderinformatikzuzahlen,undsomiterlaubtundvertenstrukturenunddatenschutzanzusiedeln)oder13pichtetderlehrplandieeinbettungderthematikinnerhalbdeskomplexes "AktuelleEntwicklungen\derKlassenstufen12(zwischendynamischenDa- Rheinland-Pfalz14stammtweitgehendausden80erJahrenundsprichtdaher furdieanstehendeprojektphasefachgerechtausfallenkann. starkeshilfsmittelandiehandgegeben,sodadieauswahlderwerkzeuge 12[Spolwig95],S.44 SpeziellmitdenKonzeptenderObjektorientierungwirddenSchulernein VersprechenderObjektorientierung.\ 13Wirth,Niklaus:ImVorwortzu"ObjektorientierteProgrammierunginOberon-2:Das 14[Lehrplan93]
13 ObjektorientierteProgrammierung InsgesamtwirdsodenfolgendenAnspruchendesLehrplansRechnung 12 getragen: DatenschutzdurchKonzeptderKapselung. ErganzendeBeschreibungderDarstellungvonDaten. ObjektorientierteProgrammierungwirddurchgangigmittelshohererProgrammierspracheneingefuhrt,eswerdenhohereSprachelementeverwendet. MoglichkeitenObjektorientierterBenutzer-Dialoge/Oberachen. KommunikationMensch-MaschinedurchDiskussionundErfahrungder AusdenAnforderungendesrheinland-pfalzischenLehrplanentwurfswerden GenerellbietetessichanObjektorientierunginderProjektphaseeinzusetzen. Zerlegung)undStrukturierung(Vererbungshierarchien)thematisiert.Das undobjektorientiertemodellierung),modularisierung(durchsystematische ProblemlosenmitWerkzeugenwirdeingeubt,dasBewutsein,daeinePro- diezentralenprinzipienmodellbildung(suchederessentiellengegenstande dastheoretischemodellderobjektorientierungeinendlicherautomatist, sendiagramm,quellprogramm)dargestelltwerdenkann,wirdgeweckt.da lassensichu.u.einblickeindaswesenvoncomputerngewinnen. blemlosunginverschiedenensprachebenenundbeschreibungsformen(klas Fachspezisch-allgemeineLernziele Quibeldey-Cirkelnennt15dreiTendenzen,diedasObjekt-ParadigmavereineunddieinderInformatikvonzentralerBedeutungseien: EntlastungdesEntwicklersvonEntscheidungenaufunterenEbenen. EntwicklungabstrakterSprachmittel,diedemProblemnahersindals dermaschine. Baumannnennt16Algorithmische-undDatenabstraktionalsgrundlegende KonzeptederInformatik,Objektorientierunghangtmitdiesenengzusammen.AuerdemseiObjektorientierungeinweitererSchrittinRichtungauf ubersichtlichstrukturierte,wartungsfreundlicheundleichtwiederverwend- SuchenachinterdisziplinarenPrinzipiendesEntwerfens. baresoftware.ideenwiestrukturiertesprogrammierenundmodularisierung wurdenzuendegedacht. 16[Baumann90],S [Quibeldey-Cirkel94],S.13
14 ObjektorientierteProgrammierung Schwillschreibt17demObjekt-ParadigmadieFahigkeitzurVermitt- 13 lunggrundlegenderkonzeptewieabstraktion,klassikationundsystema- tisierenzu: "Wirfavorisieren...denobjektorientiertenAnsatzvorallemaus dreigrunden: ErstenserfulltdiesesParadigmaunbestrittenermaeninformatischorientierteForderungennacheinemzeitgemaenUnterricht mitmachtigenkonzepten,wieerweiterbarkeit,anpabarkeit, Rekonguration,Vererbbarkeit,Kapselung,evolutionareSoftwareentwicklungsowieWunschenacheinerstarkerenAnwendungsorientierungdurchBetonungderNutzungdesComputersanstelle SpiralprinziporganisiertenCurriculums,aufhoheremNiveaubeliebigausbaufahig... ZweitensistdieserAnsatzeinzentralesMerkmaleinesnachdem voneinemvertieftenverstandnisseinerfunktionsweise. Drittens unddieserscheintauspadagogischersichtderwich- unter,diebeimdenken,erkennenundproblemlosenimmenschlichengehirnablaufen.\1tigstepluspunkt ordnetsichderobjektorientiertestilinbesondererweiseharmonischdenelementarenkognitivenprozessen werden.\19 nenntauerspolwigaucheirund:"...sondernkannauchalseinemenge vonkonzeptenzurreduzierungderkomplexitatvonsystemenverstanden DadasObjekt-ParadigmaeinMittelzurReduktionvonKomplexitatist, gungauskognitionspsychologischersicht\20auchvonmullervorgebracht. Erstelltin[Muller92],S.160dar,daobjektorientiertesDenkeneineVielzahlvonAspektenmenschlicherVorstellungs-undDenkweisenwiederspiege- LernpsychologischeVorteilewerdennebenSchwillin"EineRechtfertile,eswurdenFahigkeitenwieAbstraktion,KlassizikationundSystematisierentrainiert.AuchKooperation,einewesentlicheKomponentemenschlichenDenkensundHandelns,werdevomObjekt-Paradigmaunterstutzt:Da ObjekteautonomsindunddasVerhaltendesSystemsdurchdasZusammenwirkensolcherGebildezustandekomme. 19[Eirund93],S.40 20[Eirund93],S.44f 18[Schwill95],S [Schwill95],S.160
15 ObjektorientierteProgrammierung WirthwarntnebenlobendenWortenaberauchvoreinerubertriebenen 14 Euphorie: jektorientierterweiseneuprogrammiertwerden.imgegenteil, "Dennestritnichtzu,daalleProblemenutzbringendinob- dieneuemethodikkommterstrechtzumtragen,wokomplexe DatenstrukturenundAlgorithmeninsSpielkommen.Esware tierung\22daraufein,dadasobjekt-paradigmaschopferischesproblemlo- senfordere,imgegensatzzumreinalgorithmischenlosungsweg,dersich auf"unschopferischesaufgabenlosen\durch"reproduzierendeskonstruie- Quibeldey-CirkelgehtimKapitel"ZurPsychologiederObjektorien- verfehlt,diekonventionellesichtadactazulegen.\ ren\beschranke. AuswahlundStrukturierungderInhalteundZiele EssolleineersteSchuler-BegegnungmitKonzeptenderObjektorientierung 3.2.0IntentionderUnterrichtsreihe mitbegrundung erreichtwerden.einkursinobjektorientiertermodellierungwirderstbei groen,komplexenproblemeninteressant,diesichaberleichtausdemden sonderngleichpraktischangewendetwerdenkonnen.dahersolleinkurs SchulernbekanntenoderintuitivenKontextentfernen.Interessewirdleichter geweckt,wenndieneuerlerntenmoglichkeitennichtnurtheoretischgeubt, inobjektorientierterprogrammierunggehaltenwerden,beidemdiemodellierungsphasezwarnicht"unterdentischgekehrt\wird,sondernnurim RahmenderBeispielethematisiertwird.DerSchwerpunktsollauchnicht aufderumsetzungderkonzepteineinerprogrammierspracheliegen,da sollenmitobjektorientiertersoftwareinberuhrungkommenundihrevorteilekennenlernen. spaterkanneineerweiterunginverschiedenerichtungenerfolgen.schuler diekonkreteumsetzunginjederspracheandersrealisiertist.esgehtum einreinesersteskennenlernenderobjektorientiertenmittelundkonzepte, VersprechenderObjektorientierung.\ 21Wirth,Niklaus:ImVorwortzu"ObjektorientierteProgrammierunginOberon-2:Das 22[Quibeldey-Cirkel94],S.124
16 ObjektorientierteProgrammierung 3.2.1HierarchiederObjekt-Konzepte 15 Attribute Methoden Klasse Polymorphie Kapselung Anwenden Vererbung Instanz adhoc universal Datenschutz Typen Subklasse Superklasse overloading coercion inclusion parametric nenkonzeptevoneinanderabhangigsind.dasbetreteneinerhoherenstufe ObigerHierarchie-BaumderObjekt-Konzeptezeigtauf,dadieverschiede- Mehrfachvererbung abstrakteklassen 3.2.2AuswahlderLernzieleunddidaktischeReduktion isterstnacherreichendertieferenmoglich. undmethodenzuerkennenundobjektesowohlanschaulichalsauchineiner Objekt-Paradigmaszubetreiben,ohnedieGrundstruktur"Objekt\zuverwenden.Schulersollendaherlernen,mitObjektenumzugehen,Attribute EsistnichtmoglichProgrammierung(oderModellierung)imSinnedes FachspracheundderFachterminisolleingeubtwerden. Programmierspracherichtighandzuhaben.DieVerwendungeinerkorrekten GelegenheitderSchulererneutindieLageversetztwerden,zueinemrealenKontextObjektklassenzumodellieren,diedengestelltenAnforderungen genugen.allerdingsdarfdieintentiondieserunterrichtsreihederobjektori- ModellierungistzentralesThemaderInformatik,dahersollbeidieser entiertenprogrammierungnichtdurchmodellierungsverfahrenodernotatio- nenwieer-modellu.a.verdecktwerden. ineinerhierarchiefuhrenohneweitereszudemmitteldervererbung,die TerminiSub-undSuperklasseoderanalogUnter-undOberklassesollen Schulerngelaugsein,dasonsteinesderstarkstenMittelderObjektorientie- KlassikationderaufgestelltenObjektklassenundgeeigneteAnordnung
17 ObjektorientierteProgrammierung rungnichtgebrauchtwerdenkannunddieeinblicke,diedieseunterrichtsreihebietensoll,zustarkbeschranktwurden.dabeikannzurmotivierungder 16 VererbungsmechanismendieerwunschteWiederverwendungerstellterProgrammteileherangezogenwerden.Esreichtaus,anVererbungsmechanismen "ist-ein\,"hat-ein\und"ist-spezialisierung-von\kennenzulernen,dadiesdie sindṁehrfachvererbungistfurerstebegegnungennichtnotig,sonderneher inderpraxisamhaugstenauftretendenmoglichkeitenderstrukturierung hinderlich,daherkanndaraufverzichtetwerden.auerdemwirdmehrfach- vererbungvonvielensystemennichtunterstutzt(z.b.java).dadiede- nitioneinerallensubklassengemeinsamenschnittstellenichtnurineinerabstraktenoberklasse,sondernauchindensubklassenerfolgenkannklassegehort,durftedannintuitivklarsein.derdadurcherfolgendebe- istderbegriderabstraktenklassenichtzwangslaugnotwendig.erkann begriicheingefuhrtwerden.dazuabstraktenklassenstetseinesubschnittdermachtigkeitderobjektorientierungistverschmerzlich,einespatereeinfuhrungkannerwartungsgemaohneproblemeerfolgen. zurvollstandigenstrukturierungundaufzeigenderzusammenhangeleicht nung,methodenmitahnlicher(gleicher)funktionsollendengleichenbe- zeichnertragen,alsoeinzigalsad-hoc-polymorphieerkanntwerden.dame- thodenmitgleichembezeichnerunterschiedlicheaufgabenerfullenkonnen, PolymorphieistzentralesMittelzurErreichungvonUbersichtundOrd- passendentyp,objektausder"ablage\ein).verschiedenetypenderpolymorphiebrauchenbeialleinigerverwendungderad-hoc-polymorphienicht unterschiedenwerden. dassystemmaximaleubersichtlichkeit(nichtkurze!)erhalt,umobjektorientierungalshilfsmittelzurkomplexitatreduktionzuerkennen.auerdemdientdievererbungdereinsparungredundantenquelltextes. DieMittelVererbungundPolymorphiesollensoeingesetztwerden,da re\schneidetsowohldateienwieauchtexteusw.aus,"tintenfa\(?)oder "Klemmbrett\(?)fugenjenachKontextdas"richtige\,d.h.zumKontext wirdintuitivdurchdenumgangmitstandard-programmen.(icon"schesichtbarundunerreichbarsind.dadurchkonnenwichtigeaspektederdatenschutzproblematikangesprochenwerden,auerdemsollenschulereinsehen, uberobjekt-eigenemethodenerreichtwerdenkonnenundnachauenun- DerBegriderKapselungsollsoeingesehenwerden,dadieDatennur erwunschtenebenwirkungenmitsicherheitausgeschlossensind. Paketeo.a.)erkanntundrichtiggenutztwerden. dadiesdiewartungsfreundlichkeitvonsoftwaresystemenerhoht,daun- SchlielichkonnenObjekteinfertigenSystemen(Betriebssystem,Oce-
18 ObjektorientierteProgrammierung 3.2.3OrdnungderLernzielenachKriteriengrob/fein 17 Groblernziele DieSchulerinnenundSchulersollen {denbegridesobjekteskennenlernenundihnrichtiganwenden {dieideederobjektorientiertenmodellierungunterbesonderer {daskonzeptderdatenkapselungverstehen, konnen, {VorteileObjektorientierterProgrammierungerfahren. {daskonzeptderpolymorphiekennen, BerucksichtigungderVererbunganwendenkonnen, Feinlernziele DieSchulerinnenundSchulersollen {eineinzelnesobjektinturbo-pascaldeklarierenkonnen, {wissen,daeinobjektausattributenundmethodenbestehtund {dasaufrufendermethodeneinesobjektesbeherrschen, fureinenrealengegenstandodersachverhaltsteht, {eineklassevonobjekteninturbo-pascaldenierenkonnen, {wissen,wiediesedatentrotzdemgeandertundausgegebenwerden {erfahren,waskapselungistundwiesiefunktioniert, {erkennen,warumdatengekapseltwerdenund {VorteilederKapselungkritischaufzeigen, konnen, {erkennen,dadaskonzeptdervererbungdiewiederverwendung {daskonzeptdervererbungdabeisinnvollanwenden, {einfacheminiweltenobjektorientiertmodellierenkonnenund {anhandeinerobjekthierarchiedaszusammenspielderobjekte erkennen, vonsoftwarebauteilenerleichtertunddamitfordert, {ProgrammierenalsModellbildungundderenRealisationaufdem Rechnerverstehen,
19 ObjektorientierteProgrammierung {diestrukturierungvonwissenalsmittelderentechtungvon 18 {wissen,daesmehreremethodenundattributemitgleichembe- Komplexitaterkennen, {erkennen,dapolymorphiedieverstandlichkeitvonkomplexen zeichnergebenkann,dieabereinunterschiedlichesverhaltenauf- weisenkonnen, {BeispielefursinnvollangewandtePolymorphienennenunderlautern konnen, Systemenerhoht, {diekonzeptederobjektorientierunganwendenund {ihreprogrammierfertigkeitverfeinern, {Zusammenhangeaufzeigenkonnen, {inihrerkooperationsbereitschaftgefordertwerden, {lernen,inteams(gruppen)zuarbeitenundsichgegenseitigauszutauschen, {trainieren,ergebnisseeinergruppezuprasentieren.
20 ObjektorientierteProgrammierung 3.3 VoraussetzungenundVorkenntnisse 19 DaderUnterrichtsblockinderKlassenstufe12angesiedeltwird,verfugendie sitzenfertigkeiteninauswahl,denitionundumgangmitdiesendatenty- pen.auerdemhabensiebereitserfahrungenmitmodellierungsvorgangen. Spolwigberichtet,daes"VonunschatzbaremNutzenist...,wennvorher einetextverarbeitunginderweiseeingefuhrtwurde,daestextobjekte gibt(zeichen,wort,zeileusw.),aufdenenoperationen(loschen,einfugen, Kopieren)moglichsind.\23 tenprogrammierungundkonnenmitprozedurenundfunktionenumgehen. Schuler(gemaLehrplan)uberVorwissenausdenBereichenderstrukturier- EinfacheundzusammengesetzteDatentypensindbekannt,dieSchulerbe- Obenistausgefuhrt,danichtnuruberObjektegesprochen,sondernObjekte auchprogrammiertwerdensollen.esbleibtdiefragederprogrammierspra- 3.4 ZurFragederProgrammiersprache SprachebereitsdasnotwendigeRustzeugmitbringt,umdamitObjektorientiertprogrammierenzukonnen.Diesgewahrleistenz.B.dierechtweit werdenmu,sonderndiedenschulernausdemanfangsunterrichtbekannte sprachen.vonvorteilistes,wennkeineneueprogrammierspracheeingefuhrt che,zurauswahlstehtprinzipielleinederpure-oderhybride-programmier- sonderseinfach,dazudeneinzelnendatenfeldernnurnochdieoperationen hinzugefugtwerdenmussen.diesyntaxbleibtweitgehenderhalten,objekt- verbreitetespracheturbo-pascalabversion5.5.derumstiegvonzusam- MethodenwerdenanalogzuDatenbereichenmitdem.(Punkt-)Operator mengesetztendatentypen(recordinpascal)aufobjekteerweistsichalsbe- hatdenvorteil,dadelphiweitreichendemoglichkeitenzurmanipulation vonbestehendenobjektenbietet;ausumfangreichenklassenbibliotheken erreicht. konnennutzlichemoduleausgewahltwerden,diesofortzurverfugungstehen.dafurbestehtdiegefahr,dadassehrumfangreichedelphideneinstieg durchdiekomplexitatderprogrammierumgebungerschwert. fuhrtinoberonein.dadieseunterrichtseinheitnurindiekonzepteeinfuhrenwill,istwohldaserlerneneinerkomplettensprachemitdermachtigkeit vonoberonunangemessen;solljedochzukunftigmehrmitobjektengear- VonWirthu.a.wirdOberonempfohlen,auchderverfugbareKurs24 EineAlternativeistes,vonTurbo-PascalaufDelphiumzusteigen.Dies beitetwerden,kannzweifelsohneoberongewahltwerden. 24[Hermes&Stein96] 23[Spolwig95],S.48
21 ObjektorientierteProgrammierung AusaktuellemAnlaistJavaalseinedermodernstenProgrammiersprachenzunennen,derenUnterrichtstauglichkeitvonBaumannangezeigt wird25.allerdingsgehtervoneinereinfuhrungimanfangsunterrichtaus aufc++umgestiegenwerden,syntaktischedierenzensindklein. PascalalsSpracheverwendet,zumeinen,weilsiedienotwendigeStruktur SolltediedenSchulernbekannteSpracheCsein,kannaufJavawieauch 20 undhatdamitanderevoraussetzungenalsdiesereihe. innehat,zumanderen,weilsichderumstiegaufobjektebesonderseinfach gestaltet.dieanfanglichenumstellungsschwierigkeitenvonablauforientiertenprogrammenwerdenkleingehalten,daimmernocheinhauptprogramm vorhandenistundnotfallseineahnlichefunktionubernehmenkann. dieobjektereagierenautonom.daturbo-pascalhybrideist,gibtesein Hauptprogramm,dasaberlediglichdenCharaktereinesSteuermodulsbesitzt undnichtzwangslaugdendatenuregelt. EinreinobjektorientiertesProgrammbesitztkeinHauptprogrammmehr, DadiektiveKlasseTurbo-Pascalbeherrscht,wirdimfolgendenTurboausfuhrlichin[Tischer]den:MitdemSchlusselwortOBJECTwirdeineKlassendenitiongekennzeichnet. EineBeschreibungdernotigenObjekt-SyntaxndetsichimAnhang, DochauchdieNachteilevonTurbo-Pascalsollennichtverschwiegenwer- EinObjektalsExemplareinerKlassewirdalsVariableimVAR-Block deklariert. UmdynamischesBinden(latebinding)zuerreichen,mussendieMe- KapselungwirdimstrengenSinnenurdurchdaszusatzlicheSchlusselwortPRIVATEerreicht. Polymorphiekannnichtvollausgenutztwerden.JedesObjektdarf thodenexplizitalsvirtualdeklariertwerden,proceduremufurini- tialisierungsmethodendurchconstructorersetztwerden. Esgibtkeininstanceof,mitdemraschdieKlassenzugehorigkeiteines MethodennameninTurbo-Pascalnureinmalenthalten,unabhangig Objektesfestgestelltwerdenkann.DiesistzwarimstrengenSinnnicht vonderensignatur. einererhohungderubersichtlichkeitdienen,wennkonkretefallunterscheidungendurchgefuhrtwerden. notigenentscheidungentrit,kannaberinmanchensituationenzu notig,dajedesobjektseineklassenzugehorigkeitkenntundselbstdie 25cf.[Baumann97]
22 ObjektorientierteProgrammierung TrotzderhiergeschildertenNachteilesollTurbo-Pascalverwendetwerden. 21 Delphi,JavaundOberonwieeinKompromierscheinen,bietetaberunter rung.sinddiekonzepteersteinmalbekannt,kannebensoleichtaufdie DiesmagzwarinAnbetrachtder"modernen\ObjektorientiertenSprachen ahnlichensprachendelphiundoberonumgestiegenwerden.esmagdie diesenumstandeneineidealeausgangsbasisfurjedwedespatereorientie- wird,sondernerstimaltbekanntenturbo-pascalbegonnenwird.dieskann syntaktischc-ahnlichesprachejavawieauchaufdiesyntaktischpascaldahingehendbeantwortetwerden,da Frageaufkommen,warumdannnichtgleicheinedieserSprachengewahlt 2.derUmstiegaufeineandereSprachenichtzuweiteremErkenntnisgewinnfuhrt,26 nocheinegesamte,machtigenprogrammiersprachekennenlernenund sichnichtineineneue,unbekannteentwicklungsumgebungeinarbeiten 1.dieseReihewirklichnureinfuhrenwillunddieKonzeptedazuinausreichendemMavonTurbo-Pascalgebotenwerden, 3.demSchulerdieNeuenKonzeptedeutlicherwerden,wennernicht 4.inZukunft(z.B.inderProjektphase)geradedurchdieBeschrankung mu,sonderndieihmbekanntesyntax,befehlsvielfaltunddieerprobte Entwicklungsumgebungweiterverwendenkann, Auerdemsollnocheinmaldaraufhingewiesenwerden,da,sollteTurbo- wirklicheauswahlzwischenallensprachenbesteht,daallegrundmittel PascaldenSchulernnichtbekanntundeineNeuorientierungnotwendigsein, und-konzeptebekanntsindundeingeubtwurden. Ausbildunggetroenwerden. gleichwohlaufjava,delphioderoberonumgestiegenwerdenkann.jede diesersprachen27hatvor-undnachteile,dieentscheidungkannnichtgenerellgefallt,sondernmuimkontextderbisherigenundderangestrebten 3.5 AndenLernkontextwerdenverschiedeneAnforderungengestellt.DieKomplexitatsolldemLeistungsvermogendesKursesangemessensein,zugleich Lernkontexte wieautonomdieobjektewirklichsind,unddadiedynamikganzausdenobjektenselbst entsteht;dieskannaber{wenngewunscht{inturbo-pascalmittelsf$idateigsimuliert werden,fallsalleklassenmitihrenmethodenineigenendateienabgelegtwerden. 27undgegebenenfallsauchweitere,dieseAufzahlungsollkeinenausschlieendenCharakterhaben 26allenfallsdieAufteilungderKlassenaufjeweilseigeneDateienlatbeiJavaerkennen,
23 ObjektorientierteProgrammierung aberauchbeimeinstiegnichtzuhoch,damitderschwerpunktdenneuen 22 Stoerfat.UmdenZugangzumSystemverstandnisleichtzuhalten,solltederLernkontextkeinelangwierigenSystemanalysennachsichziehenunblematiknichtzuverdecken.Mullermeintdazu:"SowirdimUnterrichtmehr spezischeproblemnotwendigevorwissenmoglichstgeringsein,umdiepro- nacheinemgeeignetenbeispielgesucht,daseinealgorithmischegrundstrukturbzw.einenausgewahltendatentypgunstigeinfuhrt.dazusatzlichdie StrukturierungnichtzuvielZeitinAnspruchnehmen.\28Ummoglichstviele solltedieobjektstrukturmoglichstplastischsein,dabeiabernichtkunstlich konstruiertwirken.esbietensichverschiedenegebietean: ausdererfahrungsweltderschulerstammen.auerdemsolltedasfurdas praktischearbeitnichtzukurzkommensoll,darfdieproblemanalyseund- KonzepteeinubenunddieVorteilederneuenTechnikeneinsehenzukonnen, SystemzurBruchrechnung. Simulationeines(Brett-)Spiels. DieeinzelnenVorschlagesollennunkurzdiskutiertwerden: Graksystem. gestelltwird.insbesondereschachistsehrreizvoll,aberauchrechtkomplex undwirdnichtvonallenschulerngespielt.zugoperationenundregelwerk tailliertevererbungsstrukturdereinzelnenfiguren,diein[glaeser]kurzvor- DieSimulationeinesSpielsbieteteineausgesprochenplastischeundde- sindschwierig,hinzukommteinenotwendige,umfangreicherealisierungder Spielumgebung,dieZugegestattetunderfolgteZugenachvollziehenlat.PolymorphiekannbesonderseindrucksvollaneinerMethodezuggezeigtwerden,diejenachFigureinanderesVerhaltenzeigt.AndereSpielebietenoft keineausreichendeklassenhierarchieodersindahnlichschachzukomplex. Esistabermoglich,eineigenesKunst-Spiel{z.B.durchWeglassenoder HinzunehmenvonFigurenoderRegeln{zukreieren,dasdenAnforderungen morphiewirderstbeikomplexerenstrukturennotig,essindhilfsfunktionen istauchnichtsehrplastisch,dafurabervonsehreinfacherstruktur.poly- gerechtwird. wieggtundkgvnotig.dienotwendigetheorieistjedemgymnasiasten EinSystemzurBruchrechnung,angegebenvonBaumannin[Baumann] zurubungundkontrolledennalseinfuhrendesbeispiel. bekannt.ausgesprochenmotivierendwirkteinsolchesproblemabernicht, dassystembruchrechnungeignetsichdahereheralsvertiefendesbeispiel 28[Muller92],S.158
24 ObjektorientierteProgrammierung GrascheObjektesindjedemSchulerausderMathematikgelaug,so- 23 wohlzweidimensionalealsauchdreidimensionale.auchnotwendigeberech- zulenken.strukturenkonnenindividuellaufgebautundnahezuunbegrenzt erweitertwerden,umunterschiedlicheschwierigkeitsgradezurealisieren,beinungensindeinfachgenug,umnichtvomthematischenschwerpunktabschaulich.zweigrundideensollenangegebenwerdenspielesindausdembereichdermathematikgenugendvorhandenundan- 1.VonverschiedenendreidimensionalenObjektenwiePyramidenaufquadratischerGrundache,KegelnundTetraedergekennzeichnetdurchein GrundmaunddieHohesollderOberachen-undVolumeninhaltberechnetwerden.DieAnschauungistbegrenztdurchdieraumlicheVorstellung,Erweiterungsmoglichkeitensindgegeben,werdenjedochrasch komplex. 2.ZweidimensionaleObjektewiegleichseitigeDreiecke,Quadrateoder terungensindinbeinaheunbegrenztemmaemoglich:beliebigere- gelmaigepolygone,flachenberechnungen,einfarbungen,schrauren lenaufdembildschirmgezeichnetwerden.methodenzumerzeugen (Zeichnen),VerschiebenundLoschensollenangegebenwerden.Erwei- KreisegekennzeichnetdurchihrenMittelpunktundeinenRadiussoljektesindnichtschwierig,wennentsprechendeVorgabengemachtwerdenundfuhrenschnellzuErfolgsergebnissen,diezuweiterenExperimentenermutigen.NotwendigeKenntnissederGeometrieundFlachen- usw.sindmoglichevorschlage.dieoperationenzumzeichnenderobberechnungsindausdersekundarstufeiinausreichendemmaevor- DiesesletzteBeispielsollzummotivierendenEinstiegverwendetwerden. handenundgehennichtuberdensatzdespythagorasunddiekreis- formelhinaus. Formeln DenFlacheninhalteinesQuadratesFQ=g2solltejederGymnasiastder 12.Klasseberechnenkonnen,ebensodieFlacheeinesKreisesFK=r2. DagegendurftederEllipseninhaltFE=r1r2denmeistenunbekanntsein 3.6 undmudahervorgegebenwerden. VerschiedeneSchulbuchergehenaufObjektorientierungein,hierseienexemplarischgenannt: Lehrbuch
25 ObjektorientierteProgrammierung [Harbeck&Thode]nenntObjektklasseundfuhrtVererbungalsFortfuhrung 24 [Baumann]gehtaufGrundbegriederobjektorientiertenProgrammie- abstrakterdatentypenein. VonHermes&SteinliegteinKurs"ObjektorientierteProgrammierung\inFormeinesHeftes[Hermes&Stein96]vor,derinsbesonderrungein,zurEinfuhrungwerdendreidimensionalegeometrischeGebildeverwendet. VondiesenBucherwirdhierkeinesexplizitverwendet,stattdessenwerden aufgrakundoberoneingeht. lienandieschulerausgegeben. eigene,speziellaufdaszuerstellendegraphiksystemabgestimmtemateria- u.u.garnichtauallt,damehreremethodendengleichenbezeichnertragen SchwierigkeitensindbeimBegriderPolymorphiezuerwarten,daSchulern 3.7 BesondereSchwierigkeiten unddadiesnichtselbstverstandlichist.hierkannerganzenddaraufhingewiesenwerden,dabereitsfruherpolymorphieverwendetwurde,z.b.ist dasadditionssymbol+uberladen,auerganzenzahlenkonnenauchdezimalzahlenundzeichenketten"addiert\werdenperklassenkontextmittelsdesschlusselwortesself,wasverwirrung(verwendungvonlatebindingunddensog.virtuellenmethoden)stiftendurfte. UmgehenlasstsichdiesdurcheinsauberstrukturiertesKlassendiagramm,in ProblematischistauchdieVerwendungvonSubklassenmethodenimSu- welcherhierarchiedazuangesprochenwerdenmu. werden,werwannaufwelchemethodezugreifenmochteundwelchesobjekt demdiehierarchiedeutlichhervorgehobenist.durchpfeilekannmarkiert wemsollendatenzugriegeschutztsein?hierkannmotivieren,daessich nichtnurumeinenschutzvorlese-,sondernauchvorschreibzugrienhandelt,sodadasprogrammvorfehleingabengeschutztwird. AuchKapselungwirdu.U.alsuberussigempfunden,weshalbundvor
26 ObjektorientierteProgrammierung 4 MethodischeAnalyse "MankannobjektorientiertesDenkenbesondersgutlernen,wenn manentsprechenddenvorgestelltendidaktischenliniendiege- LernmethodischeAspekte legenheithat,einselbstodervonanderenimplementiertesinfor- mationellesmodellinteraktivzuandern,zuverfeinern,zuerwei- ternundmitanderenimplementiertenmodellenzukombinieren. AuchwennmandamitganzkleinundohnevieleVoraussetzungen beginnenkann,istobjektorientiertesprogrammiereneinweittragendesdenkinstrument.\29 DerLernprozekannaufzweiMethodenangelegtwerden: BeimsynthetischenZugangwirdeinzuerstellendesSystemvonGrundauf tioneingesetztundihrenotwendigkeitdirekteingesehen.diesevorgehens- weiseistbeidereinfuhrungderobjektorientierungschwierig,dakeinunmit- telbarerbedarfvorliegt,dievorteilederobjektorientierungkonnenjanicht neukonstruiert,diekennenzulernendenkonzeptewerdenbeiderkonstruk- EinfuhrungvonKonzeptennotwendig. BeimanalytischenZugangwirdeinbestehendesSystemanalysiert,erweitertundverbessert.ZuerstkannmitdenObjekteneinesfertigenSystems imvorfelderkanntwerden.auerdemwurdeeineunmotivierteabstrakte (Fahrplanautomat)beschrieben.EinVorteilliegtdarin,daersteErgebnisse experimentiertwerden.dabeiwerdendiemoglichkeitenderobjektorientierungdirektangewendetundsodurchpraktischesanwendenerlernt.dieser ZugangwirdvonSpolwigin[Spolwig95]aneinempraktischenBeispiel sehrschnellvorliegen,dadievorlageja"nur\angepatzuwerdenbraucht. DurchdieMoglichkeit,direktdasbestehendeSystemzuerweitern,wirdindividuellkreativesArbeitenerlaubt. WerdenbeideZugangegemischt,konnendieVorteilebeiderVorgehensweisen kombiniertwerden:analytischbeginnendsolleinvorgegebenesminimalsystemuntersuchtundanerstenminimalenerweiterungenerprobtwerden, eineanschlieendebesprechungsolldiekonzepteklarenundbenennen.anschliessendkannsynthetisch,d.h.dierichtigenmittelbewutanwendend, zweitenphaseistdaswissenumdieanwendungderkonzeptevorhanden fortgefuhrtwerden.spaterwerdenweiterekonzeptebeibedarfeingefuhrt. Dadurch,dazuBeginneinGrundsystemgegebenist,sindFortschritteund ErgebnisseschnellsichtbarundwirkenmotivierendaufdieSchuler.Inder 29[Crutzen&Hein95],S.158
27 ObjektorientierteProgrammierung undfuhrtmithilfedenindererstenphasegemachtenerfahrungenschnell zukorrektenergebnissen. DieUnterrichtseinheitistalsDialogzwischenwissendemLehrerunderprobendenSchulernangelegt.DiezuBeginngestellteAufgabestelltsichschnell UnterrichtsmethodischeAspekte alsschwierigundumfangreichheraus,derlehrerlieferteinen"anfang\,der {alsanreizundquelledienend{ausgebautwerdensoll.anhanddieses Impulses'werdenSchuleramRechneraufneue,unbekannteKonzepteund Technikengestoen,dieimweiterenVerlaufimmerweiterausgebautwerden. furstuckkennengelernt,eingeubt,xiertundvertieftsowohldurchweitere korrektabgeklartundxiert.jedeszielderunterrichtsreihewirdsostuck DurchdirektesArbeitenmitdenMittelnamRechnerwerdendieungewohntenKonzepteinihrerAnwendungerlernt,anschlieendimGesprachfachlich praktischetatigkeitalsauchehertheoretischeuberlegungen. Neuesleichterverstandenunderklartwerden.ImUnterrichtsgesprachwerdendiekennengelerntenKonzeptegemeinsamfachlichkorrekterortertund DabeiuberwiegendieSozialformenderPartnerarbeitamRechnerund GruppenarbeitzugemeinsamentheoretischenUberlegungen;gegenseitigkann HausaufgabeschlielichdientderselbstandigenindividuellenBeschaftigung vertieft,beispieleaufgezeigtundgrenzenbestimmt.dieeinzelarbeitinder mitdenkonzeptensowieeinerwiederholungundvorbereitung. nitionen,merksatzen,anwendungsbeispielenundallgemeinenuberlegungen.tageslichtprojektorundfolienwerdenfurmehrfachverwendetegra- zurprogrammierungeingesetzt,tafelundheftedienenderfixierungvonde- FurdiepraktischeArbeitwerdenRechnermitderSpracheTurbo-Pascal kenwiez.b.dieklassenhierarchieverwendet.auchzurkontrollevonhaus- aufgabenunddergegenseitigenvorstellungentwickelterlosungenkonnen Foliendienen. Teilproblemeausgewahlt,diedieentsprechendenAspekteinausreichendem Umfangberucksichtigen.DaruberhinausdientdieHausaufgabederVorbereitungdesnachstenThemenschwerpunktes,siesolldieProblemlosefahigkeit Ubungsaufgabenvergebenunduberpruft.AlsUbungsaufgabenwerdendazu DerLernerfolgwirdregelmaigkontrolliert,furdiesenZweckwerden fordern.
28 ObjektorientierteProgrammierung 5 Unterrichtsplanung(Skizze) ZurEinfuhrungwirddasProblemgestellt,einComputergeometriesystemzu entwickeln,daseserlaubensoll: Punkte,Kreise,Quadrateu.a.geometrischeObjektezuzeichnen, DieAufgabenstellungwirdalsArbeitsblattausgeteilt. diesezuverschiebenundzuloschen, Nachdemgemeinsamraschfestgestelltwird,dadasgegebeneProblemrecht ihrenflacheninhaltrechnerischzubestimmenundauszugeben. komplexist,wirdalsersterschrittderentzerrungandiegrak-befehlevon Stundendieserlauben. Turbo-PascalerinnertundeineentsprechendeZusammenfassungausgeteilt. ImAnschluwirdeinknappgehaltenes,minimalesProgrammausgeteilt, EventuellkanneinSchulerkurzreferierenundeineentsprechendeZusammenfassungerstellen,fallsderZeitrahmenundderAblaufdervorherigen dasbereitsmitpunktenalsgeometrischenobjektenumgehenkann.an neuenbegrie.anhanddiesesprogrammeserfolgtdieerstebegegnungder SchulermitObjekten;EskonnenneuePunkteerstelltundgezeichnetwerden,dabeiwirdintuitivmitdenBegrienundderSyntaxumgegangen.Der ProgrammgibteseinekonkreteAufgabenstellungzurHerausarbeitungder MethodenstehennurInitialisierenundZeichnenzurVerfugung.Zudiesem meltundggf.geklart. Methoden.SchlielichwerdendieneuenSchlusselworteanderTafelgesam- denschulernbereitsbekanntepunkt-operatorfuhrtvomobjektzuseinen LehrerseinemKurseinfertigesObjektubergibt,dadieAufgabedesHaupt- DieobigerVorgehensweiseleichtabwandelndistesauchmoglich,dader ErganzungzurEinfuhrung renundinitialisierenundkannsichmehraufdenmodellierungsprozeund Tasten)oderderMausinteraktivgeometrischeObjekteaufdemMonitor zuerstellen.dadurchmutederschulerkeineeigenenobjekteinstantiieprogrammsubernimmtundesgestattet,mithilfedertastatur(cursorbeidervorgehensweisen,sodaineinererstenphasealleobjekteselbstinstantiiert,initialisiertundgezeichnetwerden(diekontrolleliegtvollbeim dieprogrammierungderklassenkonzentrieren.sinnvollisteinemischung
29 ObjektorientierteProgrammierung Schuler),undanschlieendeinKontroll-Objektvorgegebenwird.Einsolches 28 deneobjektedynamischverwalten. Funktionalitatvorzustellen,esmuteneuentstehendeundbereitsentstan- Kontroll-ObjektwarevomLehrerzurealisierenundalsBlack-Boxinseiner BesondersdeutlichwirddieNotwendigkeitneuerKonzepte,wenndieSchuler sieselbsterfahren.dazuwirdanalogobigereinfuhrungdasproblemgestellt,dascomputergeometriesystemzuentwickeln.stattimvorfeldden AlternativeEinfuhrung nedasproblemgenauzuanalysieren.dabeikonnensieselbstandigdurch direkteanwendungdienotwendigengrakbefehlewiederholen.wirddann problematisiert,da,sobaldzweikreisenacheinandergezeichnetwerden,die Aufwandzuklaren,sollendieSchulereinfach"drauosprogrammieren\,oh- Koordinatendeserstenunerreichbarsind,umihnbeispielsweisezuverschieben,wirddieKomplexitatderneueinzufuhrendenDatenstruktur,diedieses Problembehebensoll,sehrschnelldeutlich. wendigkeitneuerverfahrenentdecken,istrechtzeitaufwendigundwirddaher "nur\alsalternativebehandelt.dievorteileliegenaufderhand:selbstandig wirderinnert,selbstandigwirddienotwendigkeitaufgrundzuhoherkom- DieserWeg,beidemdieSchulerselbstwiederholenunddabeidieNotplexitaterkannt.AnschlieendkonnendieGrundstrukturenanhanddesProgrammfragmenteserarbeitetwerden,dieweitereVorgehensweisekanngenau wiebeschriebenerfolgen. Einarbeitung einfachschwarzubermaltwird.dashierzunotigewissenistklein,eswird seentwickeltenideenwerdendiemethodenhideundmovefurpunktefer- tiggestellt.dasversteckeneinespunkteswirdz.b.dadurchgelost,daer NacheinerkurzenBesprechungderweiterenVorgehensweiseundderzuHau- auerderideenurderbefehlzumzeichneneinespunktesgebraucht,diemethodekannanalogderzumzeichnenentstehen,ggf.sogarabkopiertundnur umbenanntwerden.dabeiwirdaufdieobjekt-attributezugegrien,undes istdurchausdenkbar,daschulerdiesmitnicht-objekt-eigenenmethoden dennnurwennschulerselbsterfahren,wasesheitdasdatengekapselt seltsindundvonaussenunzuganglichverborgenliegen,werdendieschuler imerstenansatzvermutlichscheitern.dieses"scheitern\erfolgtbewut, versuchen.dadieattributedurchdasschlusselwortprivateexplizitgekap- sind,erkennensiedievorteileundproblematisierendies.
30 ObjektorientierteProgrammierung Dieslatsichnutzen,gleichaufdieKapselungalswesentlichesKonzeptderObjektorientierungzusprechenzukommen,esbietetsichanauch gleichauffragendesdatenschutzesunddenvorteilfurdieanwendung nicht-selbst-erstellterklasseneinzugehen.danurautorisierteobjekt-eigene MethodenDatenausliefern,lassensichDatenwesentlicheinfachervorunerlaubterManipulationschutzen.Ebensowirdverhindert,daAttributeWerte verhindertwerden,dawertebereicheuberschrittenwerden.diekontrolle fureinzulesendedatenliegtnichtmehrbeimeingebenden,sondernbeim einlesendenobjekt. zugewiesenwerden,furdiesienichtausgelegtwurden,eskannz.b.leicht 29 einemweiterenattributversieht,dasentwederdiefarbeoderabereinen Zustand(sichtbar/unsichtbar)beinhaltet.Dannmushowgerufenwerden unddenpunktmitdergeandertenfarbeoderabermitderhintergrundfarbe Alternativistesmoglichhidesozurealisieren,damanPunktemit konventionellaufschwarz.esistauchmoglich,showalsparamterdiezu verwendendefarbezuubergeben,sodadiemethodehideaufeinezeile gekurztwerdenkann,ohnedashowwesentlichkomplexerwurde. ubermalen.dazumudiehintergrundfarbeeinheitlichfestgelegtwerden, Modellierung NachdemPunktealsgeometrischeObjektejetztweitgehendfertiggestellt mabesitzen,dasbeimkreisradius,beimquadrathalbegrundseiteheit. Dabeiwirdarbeitsteiligvorgegangen,eineGruppesuchtdiefurKreise,die sind,reichtdieerfahrungaus,umdieminiweltzumodellieren.dazuwird anderediefurquadratenotwendigendatenundstelltdiemethodenauf. festgestellt,dakreiseundquadratebeideeinenmittelpunktundeingrund- Eckpunktenotwendigsind.AnschlieendstellendieGruppensichgegenseitig DabeihilfteineentsprechendformulierteAufgabenstellung,daauch"Quadrat\miteinemPunktalsAufhangermodelliertwirdundnichtz.B.alle dieergebnissevor,eingunstigvorformatiertestafelbildodereinefoliehelfen,diegemeinsamkeitenzuerkennen.folglichlassensichsowohlkreisals auchquadratmitdengleichenattributenbeschreiben,werdenabervollig butemittelpunktundgrundmasssowiediemethodenmoveundhide,hat. unterschiedlichgezeichnet.zusatzlichistauchderflacheninhaltunterschiedlich,wieausklassenstufe10bekanntist.motiviertdurchdieeinsparungvon VonflaechewerdendannkreisundquadratmitjeweilseigenenMethoden weiterenprozedurenwirdeineneueklasseflaechegeschaen,diedieattri- showundinhaltabgeleitet. klasseflaechebegonnenwerdensollte.sinnvollistes,hidealsletzteszu DieseKlassenhierarchiewirddannimplementiert,wobeimitderOber-
OO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
MehrGrundlagen von Datenbanksystemen
Ramez Elmasri Shamkant B. Navathe Grundlagen von Datenbanksystemen 3., überarbeitete Auflage ein Imprint der Pearson Education Deutschland GmbH Inhaltsverzeichnis Vorwort 9 Über die Autoren 13 Teil 1 Grundkonzepte
MehrObjektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Objektorientierte Programmierung Ronja Düffel WS2018/19 09. Oktober 2018 Objektorientierte Programmierung Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das?
MehrInteraktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten
Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrKlassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla
BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung
Mehr2.1.1 Übersichtsraster Unterrichtsvorhaben. I) Einführungsphase. Einführungsphase. Unterrichtsvorhaben E-II. Unterrichtsvorhaben E-I
2.1.1 Übersichtsraster Unterrichtsvorhaben I) Einführungsphase Einführungsphase Unterrichtsvorhaben E-I Einführung in die Nutzung von Informatiksystemen und in grundlegende Begrifflichkeiten Informatiksysteme
MehrVererbung. Florian Adamsky, B. Sc. (PhD cand.) Softwareentwicklung im WS 2014/15.
1/23 Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 Formen der C++ Syntax 3/23 Inhaltsverzeichnis 1 2 Formen
MehrCurriculum des Wahlfaches Informatik für das Gymnasium Dialog
10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme
MehrProgrammiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -
Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon
MehrJava lernen mit BlueJ
Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten
MehrObjektorientierte Konzepte
Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen
MehrInhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8
Einleitung Was ist Informatik? 5 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8 Programmierung 13 2 Vom Problem über den Algorithmus zum Programm 15 2.1 Vorgehensweise bei der
MehrGrundzüge der Programmierung. Konzepte der objektorientierten Programmierung (OOP) VERERBUNG
Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (OOP) VERERBUNG Inhalt dieser Einheit Vererbung Generalisierung Spezialisierung Klassenhierarchie Grundzüge der Programmierung
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrProgrammierparadigmen A01 OOP. Programmierparadigmen
2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische
Mehr7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
MehrProgrammierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 5 Was machen wir heute hier? weiter mit Objektorientierter Programmierung viel
MehrEinführung in das objektorientierte Programmieren
Einführung in das objektorientierte Programmieren Nils Schmeißer Forschungszentrum Rossendorf e.v. Objektorientiertes Programmieren - Nils Schmeißer 1 Inhalt Programmiersprachen Der objektorientierte Programmierstil
MehrObjektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern
Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben
MehrProgrammieren in JAVA. Kapitel 0
FG TECHNISCHE INFORMATIK V JV 000 00 TH 01 Programmieren in JAVA Kapitel 0 0. Grundkonzepte der Objektorientierten Programmierung 0.1. Objekte und Klassen 0.2. Kapselung 0.3. Vererbung 0.4. Polymorphie
MehrProgrammiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
Mehr1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
MehrManfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005
Manfred Schüttengruber Objektorientierte Programmierung mit Visual Basic 2005 Inhaltsverzeichnis Vorwort 11 i Das.NET-Konzept 15 I.I Kapitelüberblick 15 i.2 Das.NET Framework 15 1.3 IL-Code und Plattformunabhängigkeit
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrVererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
MehrProgrammiersprachen im. Informatikunterricht
Programmiersprachen im Informatikunterricht Andreas Schwill Institut für Informatik Überblick Bedeutung von Programmiersprachen Informatische Komponente Die Welt der Programmiersprachen Merkmale der Programmiersprachen
MehrObjektorientierte Programmiersprachen
Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
MehrObjektbasierte und objektorientierte Datenbanken
Objektbasierte und objektorientierte Datenbanken in Vorlesung DB2 von Rainer Handel, Christoph Hautzinger Volker Schropp, Robert Westhäuser 15.04.2005 Inhalt (1) Von Volker Schropp Konzepte Grundkonzepte
MehrLehrpläne NRW Sek.stufe 2. Lernen im Kontext
Lehrpläne NRW Sek.stufe 2 Lernen im Kontext Fachliche Inhalte Lernziele Informatik NRW Fähigkeit, komplexe Zusammenhänge mit gedanklicher Schärfe zu durchdringen (Problemanalyse) Überblick über unterschiedliche
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrBuzzword Bingo. Axel Wilbertz, Christoph Seip, Tobias Hegemann, Tobias Keinath, Tommy Vinh Lam. 7. April 2011
Buzzword Bingo Axel Wilbertz, Christoph Seip, Tobias Hegemann, Tobias Keinath, Tommy Vinh 7. April 2011 Inhaltsverzeichnis 1 1. Einleitung Das Team Die Programmiersprache Verteilung der Aufgaben 2 3 Ende
Mehr1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"
im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrEinführung in die Programmierung mit Java. Hörsaalübung
Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrSchulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011
Bezug zu den Leitideen der Bildungsstandards und den Kompetenzen, Inhalte Bemerkungen welche die Schülerinnen und Schüler erwerben Klasse 11 Informatik 4-stündig Einführung in die objektorientierte Modellierung
MehrObjektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008
Fakultät Informatik, Studienrichtung Lehramt Informatik Objektorientierte Programmierung 1. Einführung Dresden, 10. April 2008 Dr. Michael Unger Gymnasium Coswig Schülerrechenzentrum der TU Dresden (mu2@inf.tu-dresden.de)
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
Mehr1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -
1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen Folge von
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrObjektorientierung Grundbegriffe
Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen
MehrSoftware-Entwicklung: Konzepte der Objektorientierung
Software-Entwicklung: Konzepte der Objektorientierung 1 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 2
MehrProgrammierung von Steuerungen künftig objektorientiert?
1 Programmierung von Steuerungen künftig objektorientiert? R. Hungerbühler, Dozent BFH R. Hungerbühler Dozent Automation BFH 2 Sichten auf Fragestellung Wissenstand Mitarbeiter /Ausbildung Entwickler,
Mehrn 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 -
n 1. Grundkonzepte der logischen Programmierung n 2. Syntax von Prolog n 3. Rechnen in Prolog IV.1 Grundkonzepte der logischen Programmierung - 1 - Übersicht Imperative Sprachen Deklarative Sprachen l
MehrGrundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Scriptcharakter 2. Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren 3.
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering TIT99BPE/TIT99CPE BA Mannheim WS 2001/2 F. Schönleber Organisatorisches Kurs 1: TIT99BPE 6.Studienhalbjahr Termin Mo. 13.00 14.30 Raum: 037B Kurs 1: TIT99CPE 6.Studienhalbjahr
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrAndroid will doch nur spielen. Java Eine kurze Einführung
Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach
MehrProgrammierparadigmen
Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder
MehrRoberto lerusalimschy. Programmieren mit Lua
Roberto lerusalimschy Programmieren mit Lua \ Vorwort 13 1 Die Sprache 21 1 Einführung/ 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale Variablen 27 1.4 DerStand-alone-Interpreter
MehrÜbersetzung objektorientierter Programmiersprachen
Bernhard Bauer Riitta Höllerer Übersetzung objektorientierter Programmiersprachen Konzepte, abstrakte Maschinen und Praktikum Java-Compiler" Mit 29 Abbildungen Springer Teil 1: Theorie 1 Einleitung 3 l.
MehrLehrplan. Softwaretechnik. Höhere Berufsfachschule für Wirtschaftsinformatik. Schwerpunkt Anwendungsentwicklung. Oberstufe
Lehrplan Softwaretechnik Höhere Berufsfachschule für Wirtschaftsinformatik Schwerpunkt Anwendungsentwicklung Oberstufe Ministerium für Bildung, Kultur und Wissenschaft Hohenzollernstraße 60, 66117 Saarbrücken
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrSpec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba
Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung
MehrTechniken der Projektentwicklung
diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrDie Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014
Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/15 1 / 26 Allgemeines Progammiersprachen Objektorientierte Programmierung Grundlegende Eigenschaften
MehrSystem Modell Programm
Wolfgang P. Kowalk System Modell Programm Vom GOTO zur objektorientierten Programmierung Spektrum Akademischer Verlag Heidelberg Berlin Oxford Inhaltsverzeichnis Vorwort 3 Inhaltsverzeichnis 5 1 Einleitung
MehrUnternehmensmodellierung
Josef L. Staud Unternehmensmodellierung Objektorientierte Theorie und Praxis mit UML 2.0 4ü Springer Inhaltsverzeichnis EINLEITUNG 1 1.1 Unternehmensmodellierung 1 1.2 Objektorientierung als solche 6 1.3
MehrAlexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv
Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte
MehrFragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?
Attribut-Werte-Paare Eine Eigenschaft kann beschrieben werden durch ein Paar [a,w]. Dabei bezeichnet a das Attribut und w den konkreten Wert aus dem Wertebereich W a des Attributs. Die Eigenschaften eines
Mehr5.6 Vererbung. Vererbung
5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug
MehrSWE5 Slide 1. Software-Engineering. Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel
SWE5 Slide 1 Software-Engineering Vorlesung 5 vom 15.11.2004 Sebastian Iwanowski FH Wedel SWE5 Slide 2 Software-Engineering Vorlesungsthemen: 1. Überblick über das Thema und die Vorlesung 2. Grundlegende
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
MehrOracle PL/SQL Objekte und objektrelationale Techniken. Marco Skulschus Marcus Wiederstein
Oracle PL/SQL Objekte und objektrelationale Techniken Marco Skulschus Marcus Wiederstein Oracle PL/SQL Objekte und objektrelationale Techniken Marco Skulschus Marcus Wiederstein Webseite zum Buch: www.comelio-medien.com/buch-katalog/oracle/oracle_pl_sql_objekte
MehrGrundzüge der Programmierung. Wiederverwendung POLYMORPHIE
Grundzüge der Programmierung Wiederverwendung POLYMORPHIE Inhalt dieser Einheit Polymorphie: Upcasting Polymorphie Polymophie Theorie 2 Upcasting Def.. 1 Bsp. Shape Upcasting erlaubt die Verwendung eines
MehrErste Schritte in Java
Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrGliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
MehrSchulinterner Lehrplan Informatik Sek II Stand: Version 0.2 vom 06.11.2012
Inhalt Schulinterner Lehrplan des Theodor-Heuss-Gymnasiums für das Fach Informatik in der Sekundarstufe II 1 Einleitung...2 2 Grundsätze zur Leistungsbewertung...3 2.1.1 Mündliche Beteiligung am Unterricht...3
MehrAutomatisierung von Windows Anwendungen (4)
Abteilung für Wirtschaftsinformatik Automatisierung von Windows Anwendungen (4) Abstrakter Datentyp, Klassen, Methoden, Attribute, Nachrichten, Geltungsbereiche, Generalisierungshierarchie, Vererbung Prof.
MehrGrundkurs Programmieren in Java
Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung Bearbeitet von Dietmar Ratz, Jens Scheffler, Detlef Seese 1. Auflage 2001. Taschenbuch. 463 S. Paperback ISBN
MehrEinstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
MehrWas die OOP-Tutorials verschweigen
oder: Wie man objektorientiert denkt Delphi-Treff Delphi-Tage 2010 Vorstellung Einführung Informatikstudent an der TU Kaiserslautern Moderator und Redakteur bei Delphi-Treff http://www.christian-rehn.de
MehrProgrammieren für Wirtschaftswissenschaftler SS 2015
DEPARTMENT WIRTSCHAFTSINFORMATIK FACHBEREICH WIRTSCHAFTSWISSENSCHAFT Programmieren für Wirtschaftswissenschaftler SS 2015 Lucian Ionescu Blockveranstaltung 16.03 27.3.2015 6. Klassen Agenda Klassen und
MehrARBEITSPROGRAMM. Elektronikerin - Electroniker EFZ
Version 2.0 1/8 Semester 1 Hardware und Softwaretechnik 0 gemäss BiVo Unterricht in Bern BiVo : http://www.sbfi.admin.ch/bvz/index.html?lang=de 0 Version 2.0 2/8 Semester 2 Hardware und Softwaretechnik
MehrSoftwaretechnik. Fomuso Ekellem
WS 2011/12 Inhalt Entwurfsphase Systementwurf Software Architektur Entwurf Software Komponenten Entwurf Struktur Verhalten OO Entwurf (OOD) 2 Entwurfsphase 3 Entwurfsphase Lernziele Aufgaben der Entwurfsphase
MehrKnasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11. vii. Inhaltsverzeichnis
Knasmüller.book Seite vii Mittwoch, 28. März 2001 11:11 11 vii 1 Einführung 1 1.1 Motivation.................................... 1 1.2 Vorteile der neuen Techniken...................... 3 1.3 Aufbau des
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen
MehrJava-Grundkurs für Wirtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrSoftware Engineering in der Praxis
Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 16 Objektorientiertes Design Matthias Meitner Marc Spisländer Lehrstuhl für
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
Mehr