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.
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!!!
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 :)
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
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!
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
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.
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 ;)
🎉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
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
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?
Lösung für die Challenge: public String[] getLieblingssongs() { return lieblingssongs; } public void setLieblingssongs(String[] lieblingssongs) { this.lieblingssongs = lieblingssongs; }
@@Alarium gut dass du es sagst. In der Lösung fehlt leider die Variable String[] lieblingssongs. Wenn du dir die erstellst sollte alles funktionieren :)
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“ :)
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.
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: ua-cam.com/video/FQPlEnKav48/v-deo.html - Für die Datenbankschicht kannst du jetzt verschiedene Datenbanken verwenden. Hier auch nochmal ein Video das dir weiterhelfen kann: ua-cam.com/video/W2Z7fbCLSTw/v-deo.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: ua-cam.com/video/-MTSQjw5DrM/v-deo.html Ich hoffe das hilft dir weiter :)
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.
Sehr geil alle tutorials sehr verständlich und gut zu folgen! mach weiter so
; vergessen ;).
@@iTzBoost 😂
@@iTzBoost und public static void main(String[] args) {
}
als main methode :D
Ich wollte nur sagen das deine Stimme sehr angenehm ist, beim zuhören.
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
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.
Ich lerne gerade für meine Infoklausur morgen. Das Video war perfekt und hat mir extrem geholfen. Vielen Dank!!!
Alle deine Videos sind sehr informativ da macht das Coding gleich viel mehr spaß!
Das freut mich sehr, danke dir! 😁✨
Danke fürs Erklären :D
Habs jetzt endlich richtig verstanden, warum man das so macht
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!!!
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 :)
Hey, vielen Dank für den tollen Kommentar! Es freut mich sehr dass ich dir mit den Videos helfen kann! 😁✨
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
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!
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
Super Videos, super Playlist. Danke dir!
Danke für die super Erklärungen. Ich lerne mit deinen Videos für die Klausur an der Uni.
Danke für deinen Kommentar Marcel, freut mich sehr, dass ich dir helfen kann😁🙌🏻
Großes Kino! Vielen Dank!
super super super Videos! schaue auch die Basics immer wieder durch, um mein Wissen "frisch" zu halten. Thanks! ;)
Immer noch super video! Deine Erklärungen sind immer top! So versteh ich alles :D Danke !
Vielen lieben Dank für deine Arbeit. Du hast mir wirklich sehr geholfen!
tolles video, malwieder :) sehr nice, dankesehr Jonas!
Vielen Dank. 😊
Danke dir sehr informativ und gut erklärt :D
Freut mich, danke Hannes!😁💪🏼
Einfach nur toll!!
Liebe deine Videos 👍
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.
super erklärt, danke dir
Vielen Dank für das Feedback Jan! 🙏🏻👍🏻
Sehr gutes Video! :)
Danke für das Lob!😁🎉
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 😊👌👌👌
Vielen Dank !!!!
Danke
vielen Dank👍
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 ;)
🎉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
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
danke
du bist der einzige Grund wieso ich meine Prüfung bestanden habe hmdl mein bruder
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?
nice
Lösung für die Challenge:
public String[] getLieblingssongs() {
return lieblingssongs;
}
public void setLieblingssongs(String[] lieblingssongs) {
this.lieblingssongs = lieblingssongs;
}
jeff.setLieblingssongs("Meine Cosuine","Shababs botten");
Perfekte Lösung, ist angepinnt! :))
@@JonasKeil Das hat bei mir überhaupt nicht funktioniert, selbst wenn ich das hier abtippe funktioniert es nicht
@@Alarium gut dass du es sagst. In der Lösung fehlt leider die Variable String[] lieblingssongs. Wenn du dir die erstellst sollte alles funktionieren :)
@@JonasKeil das funktioniert immernoch nicht, also Arrays und Getter und Setter klappt bei mir leider gar nicht
dankee
Zuerst einmal: super Video! Ich hätte aber noch eine Frage: wie sehen Getter und insbesondere Setter für ein Array Attribut aus?
👏🏼
❤🙌🏻
Hi, ich hab eine Frage bezüglich der Setter-Methode: Muss man hier auch immer mit " this.x " arbeiten?
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“ :)
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.
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: ua-cam.com/video/FQPlEnKav48/v-deo.html
- Für die Datenbankschicht kannst du jetzt verschiedene Datenbanken verwenden. Hier auch nochmal ein Video das dir weiterhelfen kann: ua-cam.com/video/W2Z7fbCLSTw/v-deo.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: ua-cam.com/video/-MTSQjw5DrM/v-deo.html
Ich hoffe das hilft dir weiter :)
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.
Hey Julian, danke für die Rückmeldung, werde auf jeden Fall dran arbeiten! :)
danke