[Playlisten] [Impressum und Datenschutzerklärung]

01.01 Objektorientierung


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

dieseMesser sondern Objektorientierunggehendazu normalRückblick auf letztes Semesterwahrscheinlichmit ziellosC hatte andere Konzepte als die Objektorientierungan das wesentliche Konzept von C ist das imperativedas Behalten auch beieinigen Partner allevon diesen Konzepten weiß immer Begeisterung dazu Imperativ war das Wesentlichedabei bleibt auch interaktiv soll heißenden Imperativ aus der Grammatik wahrscheinlich die Befehlsformman schreibt ein Rezept aufich schreibe auf two dieses Tool jenesan hundert Gramm Mehl einrühren und was auch immerein Programm als Rezept imperativeProgrammierungdas ist die übliche Artheute zu programmieren es gibt andere Wege es wär ja raffiniert wenn ich sagen könnte ?? auch eine Gründung und das ich zu sagen sagen ihm hundert Gramm Mehl nehmen zwanzig Kirchen nehme dieses und jenes und dann tue das damitunser ich nicht einfach sagen was ich denn gerne hättetypischerweise nutzen es heute noch nicht sovielleicht zeige ich ganz am Endedes Semesters ?? Sachen die etwas in die Richtung gehen aber das was siemeist sehenneunundneunzig Prozent der Fälle heute sind imperativdann das hatte zweiUnterpunktenämlich erstens strukturiertzwar das ganze in C programmiert man ?? strukturiertda fällt zum Beispiel drunter das ich sowas wie ifund Formund weilals saubere Blöcke habe es geht nicht kreuz und quer durcheinander nicht ganz so viel Spaghettiman kann in Struktogramm zeichnendas ist die Eigenschaftvon strukturierter ProgrammierungGuide meine Entscheidung ?? Scheidung und Leerzeichen Schleifesaubere Blöckeganz innicht überlappen sauber strukturiertdas konnte zehn das wird auchdas können für die Semester machen und prozeduralenGutsWahlist das ganzees gibtUnterprogrammein Seele natürlich Unterfunktionenüberhaupt FunktionenundProgrammebeziehungsweisein Seemanns dann die FunktionProzedurenich zergliedert ?? das Rezeptin Prozedurenich hoffentlich anderswo recyceln kanndas man die Konzepte die wesentlichen Konzepte hinter zehndie hatten auch gerneParadigmenProgrammierparadigmenimperativestrukturierte prozeduraleProgrammierungund jetzt kommt eben dazu Objektorientierungssemesteran die Idee istKomma findedie Idee ist übrigens kein Lückentext jetztDatenund Funktionen zusammenzufassenzu einem Ding kleinen Maschinchendas ist meine Vorstellung davonimmerin der Mathematik schon was erzählt von kleinen Maschinchen das Funktionen wie kleine Maschinchenfunktionierenaber das ist sogar noch viel besserein Blockeine Blackboxein Block der weißwas drin steckt bestimmte Daten kenntdie ihn selbst beschreibendoch eine Sachen Beschreibung der Funktionenhat dir darauf anwenden kannBeistrich viel mehr noch dem Bild der Maschine all das zusammen gekapselt so ein Ding wäre dannein Objektdatenund Funktionenzusammengefasstwas in Cnicht so gut geht sie können Daten zusammenfassenmit Chuck zum Beispieloder in alle in eine Reihe rein kippenaber dann stehen die Funktionen danebenwenn ich das alles sauberin ein gemeinsames Gehäuse packen willauch ?? andereArt das zu strukturieren und das kriegen die objektorientiertenSprachen schön indas Wesen der Objektorientierungso zu denken an das nächste Konzeptdas vierte Konzept der Reiheamwenn man will kann man diese Objektorientierungin mehrere Stufen unterteiltwerden Nummer zwei??anwir starten mit einem Problemund wollen zum Schluss ein echtes Programm habenin welcher Sprache auch immergleichnamige mehr dazu C plus plus an sich schon gehört und nehme an Java haben sie schon gehörtgestern haben sie schon sich hab gesehenwie komme ich von Problem zum Programmunterscheidet man gern abstrakt drei Schrittehierplatzmäßig geregelterst der erste Schritt heißt gerneOH okay die objektorientierteAnalyseanalysehinoder Drunteranalyseichgucke mir das Problem an und versuchesolchekleinen Maschinchenin den Problem zu finden Konzepte zu verstehenaus dem Problemgeht's umKraftwerkegeht's um Mitarbeitergeht zum Versicherungskundenwas sind grundlegende Konzepte was sind Sachen die ich nach abstrahierenkönntewo finde ich am Objekt also da geht's drum Konzepte zu identifizierenAnforderungenzu identifizierenwas musste nach ?? gemacht werden überhauptwas sind Randbedingungender Sonne Software bedienen könnenrichtig im Kern jetzt umgehen anschaulicheund anschauliche Objektezu findenPunktan schauichObjektewie kann ich mein Problem so zergliedern das Objekte erkennen kanndann kommtauch auf diedasoptischeobjektorientierteDesignsein heißt nichts anderes als EntwurfDesign hat also nichts mitwenig wenig Mitgestaltungzu tun an der Stelleder Gips nicht zum Nichtmalensondern Entwurf diese Schaltung entwerfen oder eine Brücke entwerfeneine Maschinedas ist damit Design einund ihndanndaraus kommen hoffentlich Objektedie ich wirklichimplementierenkann typischerweiseist das was man so aus der wahrenWeltabschließt an Objektennoch nicht komplettoder so nicht machbar im Rechnermuss estechnisch übersetzentechnischen Objekten das malund danach haben wir das eigentliche Programmieren Urlaub IObjektorientiertPunkt Gamingpro?? können Programoder mir Robbiedas ist diedas Verständnis in ReinkulturvonObjektorientierungAnalyse DesignPunktamdas gibt's so allerdings nur in alten Bücherndenn was manbraucht es ständig Rückzug Koppelmann guckt sich anno was es hier den Konzepten rausgekommenwas das noch zu dem Problem was ist an technischen Objekten rausgekommenpasst das zu den Konzepten nicht der hatte was das Problem zum Problem das Programm was ich rausgekriegthabeist das sinnvoll oder müsste noch mit Anfangheute aber typischerweise die Entwicklungmehreresolche Schleifen der Trennwand baut ein Programmund gucktob das Problem gelöst wirddas Programm erst dann möglichst schnell zu bauenPunkt darin kann sie wahrscheinlich gehörtPorto Diving gibt es bei den Maschinenbauernwenn die?? Teil aus dem 3D DruckerKlammeraffe Porto Diving gibt es genausototal inder Programmierunghaben Sie gestern schon gesehen man Klatsch zum paar Bedienelementeauf Fensterund sag das mal laufen und hat ein Programmdas ist eine Art Werbepostkartenzu machenauf die Schnelle was zusammen zu bauen ?? doch damit anfangen das Messer zu Papier maltdannalso typischerweise hat man IterationsschritteInteraktionBegriff aus der Informatikinteraktionund Rekursionheutzutage baut man Iterationsschritteeinem festzustellenob man Unsinn gemacht hattypischerweisesind die Probleme so komplex dass man nicht einfach im Pflichtenheft anfangen kannund nach zwei Monaten Programm hatzur Musik das Programm angucken und stellt dann Festroman hatalles möglicher Pflichtenheft vergessenundmachte noch mal durchlaufendas wäre das sensible Vorgehenauf sehr abstrakten Niveauin den meisten Sprachensind diese Objektestammen diese Objekte aus KlassenPunkt ein Zusammenhang zwischen Klassen und Objektenund einfachen dritten Begriff Instanzenein Klasseist in den üblichen Sprachennicht in allen aber in den üblichen Sprachenist eine Klasse ein Bauplanstelltsich wirklich nach zweiZeichnung vormit einem Bauplansind das Auto aus allen LagensindPunktdie Klasse ist der Bauplandas ist nichts was wirklichüber die Straße verankernalso Niklas ist der BauplanderBauplanwas man nachher auf die Straße bringtist eine Instanzder Klasse das echte Objektwas dann was tutdannist eine Instanzso nennt sich das dann eine Klasse wird instantziertundist dann etwas was wirklichFunktionen ausführen kann Instanz ist das echte Objekt was er danach ??und davon kann ich eines habendavon gar nicht zwei haben davon gar nicht Tausende habeneinen?? in dieselbe Richtung fahren es gibt auch den Fall dass man gar keines hat das Essen Spezialfallkommt vor wenn wir drauf kommender Fall des man genau eine Satz passiert auchaber erst mal ist der ?? ist die denke dahinter dass sie von so einer Klasse beliebig viele Instanzenerzeugen könnendas Quasifabrikgibt die Objekte bautInstanzen baut?? Fachbegriff ihr Instanzeneine Klassewirdinstalliertin vielen der objektorientiertenSprachennochzwei weitereGrundbegriffeaus der Objektorientierungder Sitzungenganzer Wust an Konzeptendie beidennächst wichtigerensind Vererbung und Polymorphiedas hört sich großartig an wenn sie das Wort können gerade schonhundert Euro im Monat mehr verlangenanVererbungsvererbungsoll heißen dass so eine Klasse überDokumenteine Klasse der Dokument darstellen soll so eine Klasse kannvererbenamzum Beispielgibt es vielleicht einen nackten Text das ist ein Spezialfallvon Dokumentund vielleicht gibt esbeiDiagramals Spezialfallvon Dokumentnoch ausgedacht ein Foto könnte ein Spezialfallvon Dokument seinin?? und wir könnten sogar noch gemischtesDokument haben alles zusammen ganzes Buch mit Bildern und DiagrammenundTextengemischtgemischt wenn nicht gemischtandie würdenErbendie können all das was ein Dokument kann und vielleicht ein bisschen mehr die sind speziellerals das Dokumentaber denke einfach an die Zoologie wie die Vierbeiner haben wir vielleicht Katzen und Hundeschildkrötenund was es außer an Vierbeiner gibtalso diese Oberklasse heißt das dann diese Oberklasseist was allgemeinesund diese UnterklassenKindklassensind was spezielleresdieErbensagt man so schön englische Begriffinhärentin Herlitzan das es auch wirklich wenn's umsErben bei den Verwandten geht's in der Mitte des auch was sie von den Erben und auch in der Biologie ist das du inhärentErbendrittensandas kann man weiter treibendie Eltern können Kinder haben aber die Kinder könntenauchwieder Eltern sein von andernKindern zum Beispiel könntest bei dem Diagramm ein Tortendiagrammgebenund es könnteein Balkendiagrammgeben Punkt dort lesenes könnte ein Balkendiagrammgeben meinenDiagramm das es erlaubtein Balkendiagrammkann damit alles was ein Diagramm kannund ein Diagrammkann also sein Dokument kann insbesondere kann ein Balkendiagrammalles was ein Dokument kanndenn solche Funktionen vor wieSpeichern auf der Festplatteauf irgendein Gerät anzeigenhaben Ausdruckendie Größe verstellen all das könnten solche Funktion seiner Foto hat vielleicht noch obendrein Möglichkeitenden Kontrast zu verstellenodereinen auszusuchenbeim Text können Sie weiter die Schriftart verstellen aber nicht beim Foto die Schriftart verstellenDokumente nur die grundlegenden Sachen sowas wie speichern und druckendann das ist Vererbungwas hier passiertdie Unterklassenwerden von Oberklassen?? ich das mal hinschreibst mal dranPunkt das hier wäre VererbungPunktPolymorphieistschwieriger zu zeichnenPunkt zerbrochen ist nichts richtigeseingefallenPolymorphie erst mal das Wort Polimorgenfieldie Vielgestaltigkeitnoch vielwohl vielwarKlammer auf ist mir die GestaltVielgestaltigkeitdas soll heißenwenn Sie eineUnterklassehaben so etwas spezielleresdann kann das überalletwas allgemeinesvertretenüberall da wo ein Dokument gefordert istkann genauso ein Ball ein Balkendiagramm auftreten kann genauso ein Foto auftretenüberall dawo ein Diagramm gefordert ist kann einenein Tortendiagrammoder ein Balkendiagramm auftreten kein Fotoaber alledie abgeleitet sind können auftretenweil die genauso viel könnenin der TheorieÜbernahme Einschränkung später ?? in der Theorie können die genauso vielwie dieUnterklasse die Elternklasse deshalb kann ich überall wo die Mutterklasse verwendet wird überall wo Dokumente zum Beispiel ?? abgelegt werden sie bauen Datenbank die Dokumente ablegen kann dann kann diese Datenbank automatischauch Texte Diagramme Fotos undeher gemischte Dokumente ablegenweil die von außen genauso aussehenähm wie schreibe ich das mal in Polymorphieähmich schreib das mal ganz abstrakt Kinder können Eltern vertretenEltern haften für ihre KinderHerr Jobs vertretenwobei man sich klarmachen muss die einzelnen das Ticket sie für die Klassen das ist die Rede von Bauplänenist nicht die Rede von Objekten ist in von Bauplänenandieseseine Instanz von dem Diagrammein besonderes Diagrammkann überall da verwendet werden wo sonst ein Dokument verwendet würdedeshalb jetzt aber nicht persönlichirgend ein Dokument Objektsals Mutterdie Klasse der Bauplanhat Jan Mutter ?? eine Mutterklasse ob sich der Bauplan hat eine Mutterklasseeine Instanz davonhat nicht eine Instanzvon Dokument noch als als Mutterobjekt solche sich in einem einer Ente hinterher oder ist das die kleine Ente der großen Entente erlaubt deswegen auf dem axtabstraktenNiveaufür die Klassenin den üblichen Sprachen es gibt Waren bei denen das anders ist meine üblichen Sprachen ist das so als diese Vererbung bezieht sich auf die Klassenwarum der ganze Ärgerwarum kümmert man sichum solche komischen Konzeptewarum ist das so lieb seitJahrzehnten Komma da so zu arbeitendie beiden großen Vorteilevor der Nummer eins ist RecyclingBusiness gibt doch sehr viele Ähnlichkeiten zwischenregenerativen Energien und der Informatik Recycling Komma hierähmgeht's nicht um Glas ein zu schmelzen sondern Code wieder zu verwendenjemand hatjagefährlich ?? mir dasBiogasleid dass sie es nicht ?? Yoga sondernein Codewirrwarrkaut wieder verwendenwollenCode wieder verwenden jemand hatetwas geschrieben dassSeiten aus dem Internet holenoder nette Diagramme Bauholzkomplizierte Dateiformateverarbeiteteine bestimmte Maschinesteuertdas möchte ich nicht noch mal schreiben sondern möchtestdanneinfach übernehmen ?? ich hab in das letztes Mal letztes Semester schon bisschen vorgeführtim Praktikum mit den Sachen die selbst geschrieben hatte Funktionsbibliothekendiese dann weiterverwendet habenmit Klassen die das noch vielschicker weil sich das was man weiterverwendetdann anfühlt wie die kleine Maschineam Nord ?? und den Chip denken Sie an dieElektrotechnikwie ein Chipden sie einfach in Scheidung einsetzenden tut was er tun soll und es interessiert sie nicht was der Linsen passiert ein schwarze Kiste verwendetdas geht viel schöner als mit denFunktionssammlungenverletzen Semesterwar Kurt wieder verwenden durch klassenwürdigenHassesder Funktionsbibliothekensondern KlassenbibliothekenKlassenbibliothekenSammlungen von Klassendiekönnenandas heißtich schreibe weniger Codesin einigen systemisch aussprechenschreibe weniger kautschreibenund damit auch weniger guttestendas was am längsten dauert ist das Testendas Laufen zu kriegen gerade was runter zu tippen kein Problemaber das dann zum Laufen zu kriegen das ist nervigwenn sie die Bibliothek haben die vonMillionen Leuten benutzt Wertwirdirgendwann schon jeder dringliche Fehler gefunden sein und hoffentlich auch beseitigt seinwenn sie alles selber schreiben dürfen sie jeden Fehler selbst finden selbst beseitigenPunkt wahrscheinlich findet es der Kundeinsofern ist das sehr hilfreich weit verbreitetenKlassen Hypotheken zu nutzendie sindansatzweise robusterals das was man selbst bauterste große Vorteilzweite große Vorteil die strenge Modularisierungwenn ich allespacke in kleine Maschinchenbin ich gezwungenModularisierungPunktwenn ich nirgends bin ich gezwungen mir genau zu überlegen was diese Einzelmaschinchenden tun was sie ausgeben was sie nicht ausgehenwelche Steuerknöpfe zu sagen haben die Maschinchenan was für Pakete gehen rein Wasserpaketegehen rausdas Ganze wird stärkerund strikter getrennt werdenund führt dazu dass der CodeEnglisch ausgesprochendass der Code leichter zu verstehenund zu testen Komma testen und leichter zu verstehenwird schwierig noch mehr als sonst zu verstehenund zu testenPunkt das haben sie letztes Mal auch schon imletzten Semester auch schon im Praktikum gesehenProtesten ist das was die Zeit kostet und deshalb ist man extrem griffig über alles was das Testen vereinfachtklare Konzepte habeein Programm in einzelneLegosteinchen auf ?? geteilt habe ist es viel leichter zu testenals eines an Lust ist an Funktionen von den ich nie weiß wie die durcheinandergehenanObjektorientierungist seit Jahrzehntendas Mittel der Wahl für größereProgrammeist es für die ganz ganz kleinen Makrocontrollersowie ?? geförderte Semestereinheitenist das bisschen heftigdas für den dann doch überfordernaber inzwischen gibt's auch einige Markt control Adidas locker wegsteckenund objektorientiertprogrammiert werdendas wird also sicherlich auch da noch weiter gehtdann am oberen Ende auf den großen Systemenmerkt man inzwischen das Objektorientierungnicht so das der Weisheit letzter Schluss ist es muss noch was danach kommenArmenBeistrich noch was dazu beim Aldi Trainingwenn ihre Sachen parallel laufen auf dem selben Rechner den modernen Mann und ein Position können ja X Sachen parallelanhandhaben das ist mit den üblichenProgrammiersprachendiese Rezepte aufschreibeneher schwierigdiese Parallelisierunghinzukriegenda zu Leichtfehleran der Stelle würde sicherlich Neuerungen gebenSie haben vielleicht schon in Visual Studio gesehen dass da so einige andere Sprachen sind insbesondere F sharpdas ist eine Sprache die vielleicht helfen könnteleicht sein Testament noch mal der letzten Vorlesung was ich machen könnte also nehmen Sie das nicht als Weisheitals der weiter letzten Schluss die Objektorientierungandas istein Schritt in der Entwicklungund des weißso rechtes man weiß nicht recht wie's dann weitergeht nach diesem Schritt aus muss definitivweitergehendurch die Parallelisierung?? nicht gut derzeit mit