Was ist Objektorientierte Programmierung? Programmieren Starten https://www.youtube.com/watch?v=2le2YYr3N7s Transkript (automatisch erstellt) 0:00 hallo und herzlich willkommen auf dem youtube-kanal von programmieren - starten punkt.de mein name ist jannik grün und im heutigen video möchte ich 0:08 dir eine kleine einführung bieten in die welt der objektorientierten programmierung das heißt ich möchte dir in diesem video einfach mal erklären was 0:17 objektorientierte programmierung bzw ganz einfach gesagt objektorientierung überhaupt ist denn gerade als anfänger wenn man noch auf der suche nach einer 0:26 bestimmten programmiersprache ist die man lernen möchte hört man diesen begriff objektorientierung beziehungsweise op oder 0:33 objektorientierte programmierung sehr häufig und deswegen möchte ich da jetzt einfach mal erklären was das ist in vielen leuten ist gar nicht klar worum 0:42 es sich dabei überhaupt handelt und ja ich würde sagen wir fangen einfach mal mit einer sehr einfachen frage an was ist die objektorientierte programmierung 0:51 überhaupt diese programm diese frage ist eigentlich ziemlich leicht beantwortet und zwar ist die op also die objektorientierte programmierung ein so 1:02 genanntes programm ihr paradigma und programmiere paradigma ist ein wort das den meisten leuten jetzt nicht wirklich geläufig ist das bedeutet auf deutsch 1:11 gesagt ganz einfach programmiert stil das heißt es handelt sich bei der objektorientierung um einen programmierer stil und um es noch einmal 1:19 ganz deutlich zu erklären es ist eine denkweise die man an den tag legt wenn man programmiert mit einer bestimmten sprache und die 1:29 objektorientierung ist sozusagen so eine denkweise die man beim programmieren haben kann mit einer bestimmten sprache wie zum beispiel sie schafft die 1:36 objektorientiert ist die objektorientierung ist dabei dem menschlichen denkens sehr ähnlich das heißt es handelt sich hierbei um ein 1:44 programm ihr stil der sehr einfach ist zu verstehen da er unserem eigentlichen menschlichen denkens sehr ähnlich ist und das hat einen ganz bestimmten grund 1:54 alles in der objektorientierten programmierung wird durch sogenannte objekte beschrieben das heißt alles was in unserem programm 2:03 existiert wird durch ein objekt beschrieben haben wir zum beispiel einen hund in unserem programm wollen wir zum beispiel ein 2:12 programmieren und da befindet sich ein hund in unserem spiel dann ist dieser hund ein eigenes objekt genau so wie ein mensch der einen hund auf der straße 2:21 sieht das auch eigentlich so wahrnimmt der nimmt den hund als ein existierendes etwas dar als ein objekt das sich in unserer welt befindet ich möchte damit 2:31 jetzt nicht sagen dass hunde objekte sind um gottes willen das könnte ich genauso über menschen jetzt auch sagen damit meine ich ganz einfach es ist eine 2:39 physisch vorstellbare sache die in unserem raum existiert und bei der objektorientierten programmierung ist es im grunde das gleiche alles was da in 2:49 unserem programm sofort kommt alles was wir in unserem programm haben wird durch objekte beschrieben ein hund ist zum beispiel ein eigenes objekt für sich ein 2:58 hund objekt ein mensch in einem programm der durch irgendwie code beschrieben wird wird durch ein objekt beschrieben das heißt wenn wir in unserem spiel 3:08 jetzt zum beispiel noch einen mensch haben der ist dann natürlich auch ein eigenes objekt und falls sich in unserem spiel 3:14 auch ein haus befindet dann ist dieses haus auch ein eigenes projekt objekt und das ist das tolle an der objektorientierten programmierung das 3:23 ist schon mal im grunde der ganze grundsatz davon alles sind objekte das heißt alles wird einzeln für sich programmiert das ist schon mal das erste 3:32 und alles ist getrennt voneinander das ist auf jeden fall sehr toll und alles kann man sich wie ein physisches etwas vorstellen dass das denken beim 3:43 objektorientierten programmieren natürlich auch um einiges erleichtert aber was sind jetzt diese objekte in unseren programmen jedes objekt wird in 3:55 unserem programm durch eigenschaften beschrieben das heißt wir haben zum beispiel in unserem spiel ein haus oder machen wir es mal nicht in 4:03 mit dem beispiel von einem spiel sondern mit dem beispiel von einer verwaltungs software für immobilien jedes haus in unserem programm das wir gespeichert 4:12 haben ist als ein sogenanntes haus objekt abgespeichert und jedes dieser häuser hat eine reihe von eigenschaften die es natürlich beschreiben denn diese 4:23 eigenschaften machen jedes objekt ja von den anderen objekten die ähnlich sind ja sozusagen jedes objekt wird durch eigenschaften etwas einzigartiges 4:33 jedes hat seine eigenen eigenschaften und ein haus könnte zum beispiel die eigenschaften anzahl zimmer haben dieses haus hat zum beispiel acht zimmer dann 4:40 haben wir eine eigenschaft namens anzahl fenster dieses hoster zehn fenster dann hat jedes haus natürlich auch eine farbe das ist auch eine eigenschaft das ist 4:48 blau dann hat ein haus ein baujahr 1990 in diesem fall und einen besitzer und der besitzer heißt es mal hier ganz einfach 4:56 hanswurst so das sind die eigenschaften die dieses objekt beschreiben die dieses objekt zu etwas einzigartigem machen wir könnten jetzt natürlich noch ein 5:06 anderes haus in unserem programm haben dass auch ein haus objekt ist und dieses haus hätte dann natürlich dieselben eigenschaften aber andere werte für 5:14 diese eigenschaften und werden dementsprechend etwas komplett einzigartiges zum beispiel hat dieses haus sechs zimmer neuen fenster die 5:22 farbe grün wurde 1975 gebaut und gehört max mustermann das heißt objekte werden in unserem code durch eigenschaften sozusagen beschrieben und natürlich kann 5:35 es von jedem typ von objekt auch mehrere objekte geben die sich dann natürlich nur in den eigenschaften unterscheiden objekte werden jetzt allerdings nicht 5:44 nur durch eigenschaften beschrieben objekte können natürlich auch etwas tun das heißt ein objekt hat nicht nur eigenschaften und existierte vor sich 5:53 hin sondern ein objekt kann auch etwas in unserem programm auslösen und diese dinge werden methoden genannt objekte können auch sogenannte methoden 6:05 beziehungsweise funktionen aufrufen das heißt ein objekt kann nicht nur stelle dastehen sondern auch etwas machen zb könnte dieses haus hier eine methode 6:15 implementieren die verkaufen heißt und wenn man sein haus verkauft dann bekommt man natürlich geld das wäre eine sinnvolle methode die ein haus 6:26 implementieren könnte so kann jeder besitzer von seinem haus dieses haus verkaufen das heißt ein objekt kann auch 6:33 verschiedene methoden nennt man das ganze in der objektorientierung implementieren eine methode ist sozusagen so 6:39 was wie eine funktion im grunde das gleiche nur das ist halt in der objektorientierung methoden genannt wird und diese methoden können code enthalten 6:48 der etwas bestimmtes auslöst zb die verkaufen methode sorgt dafür dass das haus an einen anderen besitzer weitergegeben wird und der besitzer dem 6:57 es davor gegeben den es davor gehört hat dass der sein geld bekommt genauso könnte dieses haus auch eine methode beinhalten die abreißen heißt und mit 7:07 dieser methode würde man dieses haus objekt im grunde zerstören man würde es einfach vernichten und ja so kann jedes objekt natürlich 7:16 auch implementierte methoden aufrufen die dann irgend etwas bestimmtes machen das heißt wenn du das noch mal zusammenzufassen ein objekt ist im 7:23 grunde ein physisches etwas in unserem programm das durch eigenschaften einzigartig beschrieben wird jetzt kann es von jedem objekttyp auf typen kommen 7:35 wir später noch zu sprechen von jedem typ von objekt kann es natürlich jetzt mehrere verschiedene geben jedes dieser objekte ist allerdings 7:42 einzigartig und für sich weil die eigenschaft werte ja sich unterscheiden können die werte die in den eigenschaften drin stecken wie zb der 7:50 besitzer von einem haus der besitzer von einem haus könnte zb hier mal max mustermann sein und auf der anderen seite für ein anderes haus objekt könnte 7:58 der besitzer hans wurst sein und jedes objekt hat natürlich dann auch die methoden für sich selber die es für sich selber aufrufen kann 8:07 und das wären zum beispiel so dinge wie eine verkaufen methode die das haus verkauft und an einen anderen besitzer weitergibt oder eine abreißen methode 8:15 mit der man sein haus zerstören kann warum auch immer man das wollen würde aber man kann es implementieren jetzt kommen wir aber auf eine ganz ganz 8:25 wichtige sache zu sprechen die für die objektorientierte programmierung eine sehr wichtige grundlage darstellt und zwar die so genannten klassen klassen 8:36 sind nämlich baupläne für objekte das heißt es gibt zum beispiel eine klasse namens haus das heißt wir haben eine klasse die heißt haus ein bauplan für 8:46 häuser so zu sagen und diese klasse implementiert die verschiedenen eigenschaften das heißt diese klasse gibt die verschiedenen 8:53 eigenschaften vor die andere haus objekte haben und jedes objekt das dann tatsächlich in unserem code existiert hat für diese eigenschaften dann seine 9:03 eigenen werte das heißt sie geben die eigenschaften und methoden sozusagen vor die ein objekt hat ja das ist im grunde das was 9:12 eine klasse macht sie beschreiben sozusagen die art von objekt bzw den objekttyp jetzt kann es zb hier diese klasse haus geben wie gerade eben schon 9:23 gesagt und diese haus klasse kann diese eigenschaften hier vorgeben anzahl zimmeranzahl fenster farbe baujahr und besitzer das heißt hier werden in der 9:33 klasse natürlich noch keine werte in diese eigenschaften geschrieben diese klasse gibt nur vor dass ein haus solche eigenschaften hat diese klasse 9:42 beschreibt also eine ja ein haus objekt sozusagen nur ganz abstrakt ohne werte reinzuschreiben und wenn wir von dieser klasse dann ein objekt erzeugen dann 9:54 wird dieses objekt erzeugt und bekommt dann eigene werte für diese eigenschaften genau so werden in einer klasse auch die methoden definiert das 10:03 heißt in einer klasse können wir dann die methoden verkaufen vermieten abreißen oder renovieren implementieren das heißt sie kodieren und wirklich 10:11 programmieren und die können wir dann in den einzelnen objekten die von dieser klasse dann abgeleitet beziehungsweise instanziert werden die dann sozusagen 10:21 von dieser klasse erstellt werden diese objekte in denen können wir diese methoden dann aufrufen das heißt eine klasse ist wie gesagt nur 10:30 einen bauplan der vorgibt was ein objekt von dieser klasse sozusagen dann beinhaltet welche member nennt man das ganze auch diese objekte beinhalten 10:40 member sind so was wie die eigenschaften zum beispiel jede eigenschaft ist ein eigener member und jede methode ist natürlich auch ein member ein mitglied 10:49 sozusagen dieser klasse beziehungsweise einen bestandteil davon von jeder klasse können dabei dann auch beliebig viele objekte erstellt werden 10:58 das haben wir vorhin schon gesehen das heißt wenn wir jetzt zum beispiel eine klasse namens haus haben können wir auch mehrere häuser erstellen die eigene 11:05 eigenschaft werte haben zb hat dieses einer aus dem besitzer max mustermann und das andere haus hat dem besitzer hans wurst völlig egal wir können so 11:13 viele objekte erstellen von einer klasse wie wir wollen eine klasse ist nämlich nur einen bauplan und nach diesem bauplan können wir dann objekte 11:20 erstellen um das ganze einfach noch mal zusammenzufassen alle dinge in einem objektorientierten programm sind objekte und klassen sind ein bauplan für diese 11:34 objekte klassen geben einfach nur die dinge vor die ein objekt beinhaltet wie zb verschiedene eigenschaften oder methoden die eine bestimmte funktion 11:43 beinhalten und die objekte haben dann eigene werte für diese eigenschaften und können diese methoden die wir implementiert haben natürlich für sich 11:52 selbst aufrufen und ja das heißt klassen sind einfach nur baupläne und objekte sind dann tatsächlich physische dinge die in 11:59 unserem programm dann existieren jetzt gibt es in der objektorientierten programmierung allerdings noch ein sehr sehr cool das konzept das sich die 12:09 vererbung nennt und das die programmierung sehr sehr sehr viel einfacher macht von objektorientierten programmen 12:16 denn in der objektorientierten programmierung ist es möglich klassen zu vererben bei der vererbung übernimmt eine klasse 12:25 alle eigenschaften und methoden einer anderen klasse das heißt man kann dadurch eine klasse erweitern ohne diese selber zu verändern und dafür 12:36 habe ich dir mal ein beispiel vorbereitet nehmen wir mal an wir haben eine klasse namens säugetieren unserem programm 12:42 die ganz einfach ein säugetier beschreibt das heißt hier sind eigenschaften drin wie zum beispiel geschlecht von einem tier und methoden 12:52 vielleicht auch noch die zum beispiel sagen essen und trinken das heißt ein säugetier hat ein geschlecht und ein 12:58 zeuge ein säugetier kann essen und trinken das geschlechter sind frau eine eigenschaft implementiert die methoden essen und trinken sind methoden 13:07 so jetzt haben wir diese klasse aber diese klasse naja da kamen wir ja noch nicht wirklich ein objekt von erstellen wir wollen ja nicht einfach nur ein 13:15 säugetier erstellen und nicht wissen was jetzt das eigentlich für ein tier ist wir wollen auf dieser klasse aufbauend natürlich noch neue tiere erstellen die 13:24 ein bisschen spezifischer sind zb einen hund oder eine katze was ist denn jetzt hier das besondere wir haben die grundeigenschaften und 13:35 grund methoden eines säugetiers bereits in der klasse säugetier definiert beziehungsweise auch implementiert das bedeutet dass in säugetier die 13:44 grundfunktionalitäten schon mal vorprogrammiert wurde und jetzt können wir aufbauend auf dieser klasse neue klassen erstellen die all diese 13:53 funktionalitäten schon beinhalten ohne dass wir das ganze neu programmieren müssen ein hund kann eigene methoden zum 14:00 beispiel beinhalten wie zum beispiel bällen oder stöckchen fangen und er kann auch eigene eigenschaften haben wie zb einen namen und ein herrchen und so 14:11 weiter und so fort dieser hund kann allerdings auch weil er von säugetier erbt ein etwas essen und er kann auch etwas trinken und dieser 14:23 hund hat auch ein geschlecht ein vorprogrammiertes geschlecht das wir nutzen können weil es in säugetier schon definiert wurde 14:30 genauso bei der katze eine katze kann zum beispiel rausgehen und die welt erforschen das kann es auch mit einer bestimmten methode machen 14:37 eine katze kann an dem kratzbaum kratzen und so weiter und so fort halt bestimmte dinge die katzen halt so machen ich habe keine ahnung ich bin runde besitzer 14:46 katzen können wir ganz spezifisch für sich als eine klasse programmieren und runde können wir auch ganz spezifisch für sich hat seine klasse programmieren 14:55 aber auch die katze erbt von säugetier und kann dementsprechend etwas essen und etwas trinken und hat ein geschlecht ohne dass wir das ganze in der klasse 15:02 katze noch mal selber programmieren mussten und das ist auch ziemlich cool ich hoffe ich habe dir die objektorientierte programmierung in 15:11 diesem video ein bisschen näher bringen können ich hoffe ich konnte das ganze verständlich erklären und ich hoffe ich konnte dir auch 15:17 erklären was die vererbung bedeutet vererbung ist sozusagen einfach nur eine art und weise um klassen zu erweitern und ja das macht das programmieren 15:25 einfach um einiges einfacher weil wir code nicht immer wiederholt neu schreiben müssen es wäre sehr lästig wenn wir in einer 15:32 klasse und zb auch die methode essen und trinken implementieren müssten und dann in der katze das ganze dann auch noch mal neu machen müssten immer wieder 15:40 denselben code wiederholen das wird durch die vererbung verhindert und diese klassen was auch noch ganz wichtig ist was die objektorientierte programmierung 15:49 auch sehr toll macht diese klassen können mir immer und immer wieder verwenden wenn wir sie einmal programmiert haben vorausgesetzt wir 15:57 haben einen guten programm ihr stil angewendet das heißt wenn wir eine klasse komplett unabhängig von anderen klassen entwickeln wie zb diesen hund 16:05 dann könnten wir diesen hund in einem anderen projekt auch wieder verwenden ohne ihn neu programmieren zu müssen das ist auch sehr cool an der 16:12 objektorientierten programmierung okay aber das war es jetzt mit diesem thema ich hoffe das war eine einfache einführung in das thema ich hoffe ich 16:20 konnte dir das ganze ein bisschen näher bringen und falls es dir gefallen hat dann würde ich mich sehr über einen daumen nach oben freuen es würde mich 16:26 auch sehr freuen wenn du diesen kanal abonnierst denn so wächst dieser kanal und du bekommst auch die neuesten videos immer direkt in deiner abo box geliefert 16:34 das ist also eine win win situation in diesem sinne bedanke ich mich fürs zu sehen wünscht dir noch einen schönen tag und verabschiede mich auf wiedersehen