Größe: px
Ab Seite anzeigen:

Download ""

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 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

Mehr

Grundlagen von Datenbanksystemen

Grundlagen 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

Mehr

Objektorientiertes JavaScript

Objektorientiertes JavaScript Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Objektorientierte Programmierung

Objektorientierte 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?

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen 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

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien 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........................

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. 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

Mehr

2.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-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

Mehr

Vererbung. Florian Adamsky, B. Sc. (PhD cand.) Softwareentwicklung im WS 2014/15.

Vererbung. 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

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum 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

Mehr

Programmiersprachen: 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: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =

Mehr

Angewandte Mathematik und Programmierung

Angewandte 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

Mehr

Java lernen mit BlueJ

Java 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

Mehr

Objektorientierte Konzepte

Objektorientierte Konzepte Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen

Mehr

Inhaltsverzeichnis. Was ist Informatik? 5. Programmierung 13. Einleitung. 1 Informatik 7 1.1 Was ist Informatik? 7 1.2 Teilgebiete der Informatik 8

Inhaltsverzeichnis. 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

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (OOP) VERERBUNG

Grundzü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

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.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

Mehr

Programmierparadigmen A01 OOP. Programmierparadigmen

Programmierparadigmen 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

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. 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

Mehr

Programmierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.

Programmierkurs. 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

Mehr

Einführung in das objektorientierte Programmieren

Einfü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

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte 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

Mehr

Programmieren in JAVA. Kapitel 0

Programmieren 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

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 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

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. 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:

Mehr

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Manfred 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

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik 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,

Mehr

Vererbung und Polymorphie

Vererbung 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

Mehr

Programmiersprachen im. Informatikunterricht

Programmiersprachen im. Informatikunterricht Programmiersprachen im Informatikunterricht Andreas Schwill Institut für Informatik Überblick Bedeutung von Programmiersprachen Informatische Komponente Die Welt der Programmiersprachen Merkmale der Programmiersprachen

Mehr

Objektorientierte Programmiersprachen

Objektorientierte 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

Mehr

Einführung in die Informatik

Einfü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

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen 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

Mehr

Objektbasierte und objektorientierte Datenbanken

Objektbasierte 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

Mehr

Lehrpläne NRW Sek.stufe 2. Lernen im Kontext

Lehrplä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

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsü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)

Mehr

Buzzword 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 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

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. 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

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einfü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

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

Mehr

Schulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011

Schulcurriculum 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

Mehr

Objektorientierte Programmierung. 1. Einführung. Dresden, 10. April 2008

Objektorientierte 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)

Mehr

Grundlagen von Python

Grundlagen 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

Mehr

Angewandte Mathematik und Programmierung

Angewandte 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

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

1. 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 - 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Objektorientierung Grundbegriffe

Objektorientierung 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

Mehr

Software-Entwicklung: Konzepte der Objektorientierung

Software-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

Mehr

Programmierung von Steuerungen künftig objektorientiert?

Programmierung 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,

Mehr

n 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 - 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

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. 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.

Mehr

Vererbung. Oberklassen und Unterklassen

Vererbung. 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)

Mehr

1. 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. 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

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH 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

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes 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

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java 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

Mehr

Android will doch nur spielen. Java Eine kurze Einführung

Android 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

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder

Mehr

Roberto lerusalimschy. Programmieren mit Lua

Roberto 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

Ü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.

Mehr

Lehrplan. Softwaretechnik. Höhere Berufsfachschule für Wirtschaftsinformatik. Schwerpunkt Anwendungsentwicklung. Oberstufe

Lehrplan. 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

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, 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:

Mehr

Spec# 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 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

Mehr

Techniken der Projektentwicklung

Techniken 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!

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die 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?

Mehr

Analyse und Modellierung von Informationssystemen

Analyse 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

Mehr

System Modell Programm

System 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

Mehr

Unternehmensmodellierung

Unternehmensmodellierung 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

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander 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

Mehr

Fragen zum Nachdenken: Wie könnte man das Fehlen eines Attribut-Wertes interpretieren?

Fragen 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

Mehr

5.6 Vererbung. Vererbung

5.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

Mehr

SWE5 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 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

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 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

Mehr

Oracle 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 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

Mehr

Grundzüge der Programmierung. Wiederverwendung POLYMORPHIE

Grundzü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

Mehr

Erste Schritte in Java

Erste 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

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Gliederung. 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

Mehr

Schulinterner Lehrplan Informatik Sek II Stand: Version 0.2 vom 06.11.2012

Schulinterner 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

Mehr

Automatisierung von Windows Anwendungen (4)

Automatisierung von Windows Anwendungen (4) Abteilung für Wirtschaftsinformatik Automatisierung von Windows Anwendungen (4) Abstrakter Datentyp, Klassen, Methoden, Attribute, Nachrichten, Geltungsbereiche, Generalisierungshierarchie, Vererbung Prof.

Mehr

Grundkurs Programmieren in Java

Grundkurs 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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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:

Mehr

Was die OOP-Tutorials verschweigen

Was 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

Mehr

Programmieren für Wirtschaftswissenschaftler SS 2015

Programmieren 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

Mehr

ARBEITSPROGRAMM. Elektronikerin - Electroniker EFZ

ARBEITSPROGRAMM. 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

Mehr

Softwaretechnik. Fomuso Ekellem

Softwaretechnik. 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

Mehr

Knasmü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. 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

Ü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

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propä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

Mehr

Java-Grundkurs für Wirtschaftsinformatiker

Java-Grundkurs für Wirtschaftsinformatiker Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich

Mehr

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 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

Mehr

Einführung in die Programmiersprache Java II

Einfü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

Mehr

Software Engineering in der Praxis

Software 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

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch 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