Getter und Setter in Java - Java Programmieren Lernen Deutsch - 20
Getter und Setter machen es dir möglich, auf private Attribute anderer Klassen zuzugreifen. Getter geben dir ihren Wert und Setter verändern diesen.
0:00 Einleitung
0:14 Zusammenfassung Public & Private
1:19 Konzept Getter & Setter
2:04 Getter in Java
3:22 Aufbau von Gettern
4:11 Setter in Java
4:30 Aufbau von Settern
5:42 Übung: Getter & Setter erstellen
7:44 Das Konzept hinter Getter & Setter
10:06 Challenge: Getter & Setter erstellen
📚Das könnte dich auch interessieren:
- Public & Private in Java: • Public und Private in ...
- For-Each in Java: • FOR EACH Schleife in J...
- Break & Continue in Java: • BREAK, CONTINUE und LA...
Getter und Setter sind öffentliche Methoden, durch die du private Attribute mit anderen Klasse teilen kannst. Dabei geben Getter den Wert deines Attributs zurück, während es Settern anderen Klassen ermöglicht, diesen Wert zu verändern. Der Vorteil an so einer Konstruktion, ist das du "die innere Logik" von Klassen verschleierst. Dieses Konzept nennt sich in Java Kapselung.
🚀 Lerne #Java in einer Playlist - bit.ly/3GKMucx
Getter und Setter können am Anfang kompliziert erscheinen... aber sicher wirst du es trotzdem verstehen! :) Meinen Respekt, wenn du neben dem #Tutorial mitmachst und dich an den Challenges versuchst! Dann wirst du Getter und Setter in Java wirklich verinnerlichen!
Lass mich in den Kommentaren wissen ob dir dieses Video geholfen hat, Getter und Setter besser zu verstehen!
👾 Code aus den Tutorials: github.com/Jonas-Keil/learn-java
============
🔔 Abonniere um kein weiteres Video zu verpassen: kzread.info?s...
============
📢 Link zur Discord-Community: / discord
============
🎉 Wenn dir meine Videos gefallen, unterstütze mich auf Patreon: / jonaskeil
▬👇🏻Hilfreiche Links👇🏻 ▬▬▬▬
1. Java IDEA 💻 aus den Videos: www.jetbrains.com/de-de/idea/...
2. Links zu meinem Equipment 🛠: kit.co/JonasKeil/studio-setup
3. Musik 🎶 aus allen Tutorials: www.epidemicsound.com/referra...
4. Java Bücher📚 die ich dir empfehlen kann: kit.co/JonasKeil/die-besten-j...
▬✨Über diesen Kanal✨ ▬▬▬▬
Du bist Student oder Schüler und möchtest die Programmiersprache Java Lernen, weißt aber nicht wo du anfangen sollst? Dann bist du auf diesem Kanal genau richtig!
Du findest auf diesem Kanal einen Leitfaden, der dir dabei hilft als Java Anfänger Schritt für Schritt Java zu lernen. Ich weiß, dass das nicht immer leicht ist und gebe mein Bestes, dir das Ganze so gut wie möglich zu erklären :) Viel Spaß!!
Jonas Keil❤
#Programmieren #Java
PS: Einige der Links in dieser Beschreibung sind Affiliate-Links, von denen ich eine Rückvergütung erhalte :)
Пікірлер: 64
Sehr geil alle tutorials sehr verständlich und gut zu folgen! mach weiter so
@iTzBoost
Жыл бұрын
; vergessen ;).
@darianw.
Жыл бұрын
@@iTzBoost 😂
Ich wollte nur sagen das deine Stimme sehr angenehm ist, beim zuhören.
@JonasKeil
2 жыл бұрын
Vielen Dank für das Kompliment! Freut mich sehr😁🙌🏻
Wirklich großartig deine Java Reihe, du machst vielen Studenten das leben leichter. Ich finde deinen Erklär Stil perfekt, kurz und knapp aber vollständig und einfach erklärt. Ich liebe dich. Mach weiter so.
Das Video hilft mir weiter bei meiner Informatik Klausur, Danke
Ich lerne gerade für meine Infoklausur morgen. Das Video war perfekt und hat mir extrem geholfen. Vielen Dank!!!
Hi :) Ich finde deine Videos echt klasse. Du hast eine sehr angenehme Stimme und erklärst die Themen in deiner Java Reihe sehr verständlich. Vielen Dank für deine Videos! Mach weiter so :)
@JonasKeil
2 жыл бұрын
Hey, vielen Dank für den tollen Kommentar! Es freut mich sehr dass ich dir mit den Videos helfen kann! 😁✨
Alle deine Videos sind sehr informativ da macht das Coding gleich viel mehr spaß!
@JonasKeil
2 жыл бұрын
Das freut mich sehr, danke dir! 😁✨
Großes Kino! Vielen Dank!
Danke fürs Erklären :D Habs jetzt endlich richtig verstanden, warum man das so macht
Vielen lieben Dank für deine Arbeit. Du hast mir wirklich sehr geholfen!
Ich hab mir bisher jetzt deine Videos rund um Java von dir angesehen ... Und ich sag dir so wie es ist das ist einfach Top erklärt und hilft jedem der das gerade lernen will. Mach weiter so :) Bin gerade im 1. Lehrjahr meiner Umschulung und das is einfach Top!!!
Immer noch super video! Deine Erklärungen sind immer top! So versteh ich alles :D Danke !
super super super Videos! schaue auch die Basics immer wieder durch, um mein Wissen "frisch" zu halten. Thanks! ;)
Einfach nur toll!!
tolles video, malwieder :) sehr nice, dankesehr Jonas!
Danke für die super Erklärungen. Ich lerne mit deinen Videos für die Klausur an der Uni.
@JonasKeil
2 жыл бұрын
Danke für deinen Kommentar Marcel, freut mich sehr, dass ich dir helfen kann😁🙌🏻
Vielen Dank für die coolen Tutorials. Ich finde, du bietest (zumindest im kostenlosen Bereich) das beste Programm an. Nachdem ich mich nun einige Wochen intensiv in Java eingelernt habe und einige kleine Probieraufgaben gelöst habe, wollte ich nun dein Spiel hier als Ausgangspunkt nehmen und mit all dem Gelernten erweitern. Das ist mir bisher auch ziemlich gut gelungen: Ich habe aus diesem Spiel eine Art MiniRPG gemacht, wo das Gold random spawnt und der Spieler beim Aufsammeln Gold, Rüstung und Angriff sammelt (Werte ebenfalls mit random und switch-case), meine Schlange hat einen Angriffs und Verteidigungswert, bewegt sich langsamer als deine und bei Berührung mit Spieler findet ein Kampf statt, der die Schlange besiegt oder das Spiel beendet. Das war alles gar nicht so schwierig. Haarig wurde es erst, als ich das Programm nun OBJEKTORIENTIERT - also in mehreren Klassen - neu schreiben wollte. Aber auch darin habe ich mich so reingefuchst, dass alles läuft. NUN ABER MEINE FRAGE: Kann man den Konstruktor (z.B. meines Spielers) so programmieren, dass er direkt einen Punkt ausgibt? Momentan läuft die bewegeSpieler()-Methode nämlich nur, wenn ich einen Point(newPoint) spieler erzeuge. Da mein Spieler aber auch noch die Attribute Angriff, Verteidigung und Gold hat, muss ich ausßerdem einen Spieler(newSpieler) spieler1 erzeugen, der dann über getter und setter seine x-/y-Koordinate an den Point spieler weitergibt. Das finde ich umständlich und irgendwie auch redundant. Ich hätte gern nur eine Instanz meiner Klasse Spieler, die bestenfalls im Konstruktor einen Punkt erzeugt bzw. die bewegeSpieler()-Methode mit ihren Attributen xPosition und yPosition betreibt. Pogrammiert (ohne Fehlermeldung) habe ich das auch. Aber die Konsole setzt das P dann nach der WASD-Eingabe trotzdem nicht auf einen neue x/y-Stelle... Ich danke schon einmal allen ganz doll für Tipps. Danke dir, Jonas, für die guten Anleitungen!
@JonasKeil
2 жыл бұрын
Hey Blackaver, erstmal vielen vielen Dank für die netten Worte!! Macht mich echt glücklich zu sehen, dass du da so viele neue Ideen einbauen konntest! Zu deiner Frage: Wenn dein Spiel auf einem komplexen Level ist macht es zu 100% Sinn das Ganze objektorientiert zu gestalten. Dein Problem ist ja, dass du die Attribute vom Spieler behalten möchtest, wenn du das Ganze Feld neu generierst. Die Beste Lösung dafür sieht so aus: Du ersetzt den Point „Spieler“ durch eine Klasse Spieler, die die entsprechenden Koordinaten, sowie Angriffs-, Verteidigungswert, etc. als Attribute hat und schreibst in der Klasse Spieler für diese Attribute (also auch deine Position) Getter und Setter. Im Hauptprogramm ersetzt du die SpielerPosition durch ein Objekt vom Typ Spieler. Jetzt kannst du anstatt spielerPosition (die ja nur ein Point ohne Logik ist) mit spieler.getPosition() arbeiten (also der konkreten Position deines Spielerobjektes). Um den Spieler dann zu bewegen würde ich dir raten, im Spieler die Methoden bewegeNachOsten, bewegeNachNorden, etc. zu implementieren und diese dann aufzurufen, wenn du deine Eingabe im Hauptprogramm machst :) Ich hoffe ich konnte dir damit weiterhelfen. Meld dich sonst auch gern mal auf Discord damit wir uns den Code anschauen können! LG Jonas
Liebe deine Videos 👍
Also , ich schaue mir gerade alle videos in reinfolge an , und muss sagen du erklärst alles sehr gut , aber hier hast du einen guten sprung beim schnitt gemacht
Danke dir sehr informativ und gut erklärt :D
@JonasKeil
2 жыл бұрын
Freut mich, danke Hannes!😁💪🏼
Vielen Dank !!!!
vielen Dank👍
Ey ich danke dir. Die erklärung war so simpel aber unser lehrer hat den part einfach übersprungen wo er das uns erklären sollte.
super erklärt, danke dir
@JonasKeil
2 жыл бұрын
Vielen Dank für das Feedback Jan! 🙏🏻👍🏻
Sehr gutes Video! :)
@JonasKeil
2 жыл бұрын
Danke für das Lob!😁🎉
Ich fand das Thema auch sehr angenehm und strukturiert rübergebracht, was mir allerdings gefehlt hat ist, dass man drauf hätte hinweisen können, dass die Setter noch einen anderen Vorteil haben, nämlich die Plausibilitätsprüfung der eingegebenen Werte, denn so kann man z.b im Setter verhindern, dass jemand Jeff ein alter von z.b 179 Jahren gibt.
Danke
🎉Wenn euch die Videos gefallen, dann unterstützt mich auf Patreon : www.patreon.com/JonasKeil 📢Als Community Java lernen *(Discord)* : discord.gg/wkWe3FvdSu 🚀Lerne Java in einer *Playlist* : bit.ly/3GKMucx
danke
nice
mit Lombok @getter und @setter geht es viel angenehmer .. Nun, da ich selbst noch anfänger bin, ist dieses Wissen über getter und setter allgemein, vorrausetzung
habe immer noch nicht verstanden in wie fern jetzt die getter und setter den code schützen sollen? war doch vorher ja auch so. man hat mit strg+p ja auch nur die auswahl gesehen und nachher ebenfalls 🤔🤔 top videos. sehr angenehme erklärmethode 😊👌👌👌
Besser kann man dieses Thema nicht erklären(TOP Daumen hoch + ABO). In meinen Studienheft sind alle Themen sowas von trocken beschrieben, sodass ich mir lieber zuerst deine Videos anschaue, bevor ich mein Studienheft aufschlage ;)
Zuerst einmal: super Video! Ich hätte aber noch eine Frage: wie sehen Getter und insbesondere Setter für ein Array Attribut aus?
du bist der einzige Grund wieso ich meine Prüfung bestanden habe hmdl mein bruder
@JonasKeil
2 жыл бұрын
Hey Lukas, freut mich dass ich dir weiterhelfen konnte! Glückwunsch zur bestandenen Prüfung!!😁👊🏻
Hier auch eine Frage bezüglich Setter: wenn man nun, wie bei den Lieblingssongs, ein Array dadurch ersetzen will, ist dies auch innerhalb der Klammern möglich, oder muss man sich vorher immer eine eigene Variable dafür entwerfen?
Hi, ich hab eine Frage bezüglich der Setter-Methode: Muss man hier auch immer mit " this.x " arbeiten?
@JonasKeil
2 жыл бұрын
Ja denn in der Regel heißt die Variable, die du übergibst genauso wie das Attribut, dem du diesen Wert zuweisen möchtest. Um hier zu unterschieden brauchen wir darum das Schlüsselwort „this“ :)
👏🏼
@JonasKeil
2 жыл бұрын
❤🙌🏻
Jonas eine Sache beschäftigt mich: Nehmen wir mal an, ich möchte eine Android App programmieren, muss ich dann mit anderen Programmen zusammenarbeiten, wie z.B Javascript, html und css? Oder kann man das alles mit Voransicht(wie das App später wird) in Java alles programmieren? Ich denke ich hätte das alles längst verstanden, aber niemand erzählt in einem Video das Gesamtpaket oder ich habe es nicht gefunden. Das ist das selbe, wenn ich jemanden Video Schnitt zeige und am Ende nicht zeige was er nun damit machen soll. Wie man es rendert und in gewünschte Format abspeichert.
@JonasKeil
2 жыл бұрын
Hey, ich verstehe sehr gut was du meinst. Dir fehlt ein Überblick, der dir eine gewisse Richtung im Programmieren vorgibt. Ich versuche es einmal grob zu erklären: - Eigentlich ist alles was du für einen Kunden / Spieler / User programmierst nach dem "3 Schichten Modell" aufgebaut. Die 3 Schichten sind das Frontend (das was der Nutzer sieht), das Backend (dort steckt die Logik, also das was wir programmieren) und eine Datenbankschicht (dort, wo die Daten liegen) - Je nach Plattform und Schicht gibt es unterschiedliche Programmiersprachen - Für die Nutzeransicht (das Frontend) verwendet man z.B. HTML + CSS + JavaScript bei Websiten, bei einer Handyapp könntest du dafür aber auch Java oder Dart (Flutter) verwenden - Für das Backend kannst du eigentlich jede Programmiersprache benutzen. (Außer du willst Handyapps programmieren, dann am besten mit Java oder Dart) Wenn du z.B. WebApps erstellen möchtest (= "Der Code hinter Websiten") hat jede Programmiersprache ein sogenanntes Framework. Bei Java ist das Spring, bei Ruby wäre es Ruby on Rails, bei Go wäre es Martini, etc. Schau dir hierfür gern mal dieses Video an: kzread.info/dash/bejne/eIWEzqene8TcZJs.html - Für die Datenbankschicht kannst du jetzt verschiedene Datenbanken verwenden. Hier auch nochmal ein Video das dir weiterhelfen kann: kzread.info/dash/bejne/iWaOmcibc6-5hNo.html - Diese Schichten sind voneinander unabhängig, das heißt, du kannst die Programmiersprache in deinem Backend austauschen ohne deine Datenbank oder dein Frontend anpassen zu müssen - "Vermischen" kann man Programmiersprachen nicht, es gibt aber eine Schnittstelle, über die verschiedene Programmiersprachen und Computer miteinander kommunizieren: REST API. Hier auch nochmal ein gutes Video dazu: kzread.info/dash/bejne/X4GItbOjp5iqorA.html Ich hoffe das hilft dir weiter :)
Lösung für die Challenge: public String[] getLieblingssongs() { return lieblingssongs; } public void setLieblingssongs(String[] lieblingssongs) { this.lieblingssongs = lieblingssongs; }
@raphcamora
2 жыл бұрын
jeff.setLieblingssongs("Meine Cosuine","Shababs botten");
@JonasKeil
2 жыл бұрын
Perfekte Lösung, ist angepinnt! :))
@Alarium
2 жыл бұрын
@@JonasKeil Das hat bei mir überhaupt nicht funktioniert, selbst wenn ich das hier abtippe funktioniert es nicht
@JonasKeil
2 жыл бұрын
@@Alarium gut dass du es sagst. In der Lösung fehlt leider die Variable String[] lieblingssongs. Wenn du dir die erstellst sollte alles funktionieren :)
@Alarium
2 жыл бұрын
@@JonasKeil das funktioniert immernoch nicht, also Arrays und Getter und Setter klappt bei mir leider gar nicht
Ich finde die Videos wirklich gut und lehrreich... leider nur so unfassbar schnell, dass man gar nicht die Möglichkeit hat, das gesagte zu im Sinn zu verstehen bzw. sich zu merken.
@JonasKeil
2 жыл бұрын
Hey Julian, danke für die Rückmeldung, werde auf jeden Fall dran arbeiten! :)
danke