Results 1 to 10 of 10

Neues Java Tutorial

  1. #1 Reply With Quote
    Krieger
    Join Date
    Jun 2012
    Posts
    420
    Hallo,
    ich mache derzeit Java Tutorial Videos.

    Es gibt schon eine Million davon auf Youtube, was soll der Mehrwert für den Zuschauer sein?
    Auch wenn ich nicht weiß, ob die Zertifikate sinnvoll sind oder nicht,
    ich arbeite die Themen der Oracle Documentation durch, die zu jenen Zertifikaten führen.

    Erstens:
    Ich finde die Oracle Documentation richtig gut, aber sie ist nur in Textform und mich persönlich ermüdet das ziemlich.
    Ich kann zwar ein paar Lektionen am Stück durchgehen, aber wenn man das einige Stunden macht, lässt die Konzentration nach und man versteht gar nicht mehr, was man liest.
    Ich selbst fänd es nützlich auch andere Formate als nur Text zu haben, daher könnte ich mir vorstellen, dass es anderen Leuten auch so geht.
    Und für bequeme Leute ist es praktisch, wenn man nicht jede Lektion selbst ausprobieren muss, aber im Video dann sehen kann, wie es angewendet aussieht (schwächstes Argument, aber kann Nutzen bieten).

    Zweitens:
    Bei bisherigen Youtube Tutorials ist mir Folgendes aufgefallen:
    Es gibt viele Individuen, die Java Tutorial Serien angefangen haben, die teilweise auch echt gut sind, aber die immer so ziemlich nach den Basics aufhören. Jeder erklärt, was Variablen sind, was Klassen sind etc., aber sobald man etwas weiter machen will, hören die Tutorials meist auf.
    Ich glaube, dass es viele viele Themen, die man in der Documentation lernt, gar nicht auf Youtube gibt,
    oder nur oberflächlich oder nur teilweise und/oder aber 10 Jahre alt.

    Wenn ich selbst etwas programmieren wollte, musste ich immer nach Videos trotzdem noch über Google und Foren die Details in Erfahrung bringen, es gibt nie kompakte Videos, die einfach das ganze Thema abdecken und auch den Hintergrund erläutern.

    Beispiel: Ich habe vor längerer Zeit nach JFrames gesucht. Es gibt viele Videos, die den einen oder anderen Befehl erwähnen.
    "Wir brauchen ein Fenster, das machen wir mit `new JFrame`."
    Aber ich habe kein Video gesehen, das erläutert, wie man Layered Panes in einem JFrame benutzt und eben die ganzen Infos, die man in der Documentation lernen kann.
    Das ein oder andere Video enthält immer mal ein Nugget, aber insgesamt musste ich mir die Infos immer aus lauter Quellen zusammensuchen, anstatt dass man sie kompakt in einem Video bzw. auf einem Kanal angucken kann.


    Ich würde hoffen, genau derartiges in meinen eigenen Videos dann bereitzustellen.

    Abgesehen davon, dass ich die Themen der Documentation durchgehe,
    mache ich zusammenfassende Videos, die ich selbst als Nachschlagewerk benutzen würde/werde.
    Auch `Code-Templates`, wo man einfach schnell die Syntax angucken kann, falls man sie grad nicht mehr parat hat.

    Wenn ich selbst sowas nützlich fände, gehe ich frecherweise davon aus, dass das noch mehr Leuten so gehen könnte.


    Keine Ahnung, was Leute davon halten, aber ich mache das jetzt erstmal und mal sehen, ob es vielleicht (positives) Feedback gibt.

    Hier ist der Link zu der ersten Playlist:
    https://www.youtube.com/watch?v=t2wx...M9PJ4bDvDYqRC5

    Achja, nebenbei bemerkt, es werden auch noch Artwork-Sachen dort folgen.
    Gothicforum is offline

  2. #2 Reply With Quote
    Ritter
    Join Date
    Feb 2003
    Posts
    1,554
    Bleib lieber bei der deutschen Sprache. Dieser deutsche Dialekt ist da sehr stark rauszuhören und du hast offenbar auch Schwierigkeiten Englisch zu sprechen. Du wirst sicherlich auch keine internationale Community aufbauen können, sodass sich englische Tutorials wirklich lohnen und auf Englisch gibt es genug Tutorials.

    Ansonsten finde ich das Tutorial auch nicht wirklich gelungen. Es krankt einfach daran, so wie die meisten Tutorials, dass nicht die Grundlagen erklärt werden. Die elementarste Frage, nämlich was ist überhaupt Objektorientierung, wird nicht beantwortet. Es fehlt immer die Definition von Alan Key:

    Quote Originally Posted by https://de.wikipedia.org/wiki/Objektorientierte_Programmierung
    1. Alles ist ein Objekt
    2. Objekte kommunizieren durch das Senden und Empfangen von Nachrichten (welche aus Objekten bestehen)
    3. Objekte haben ihren eigenen Speicher (strukturiert als Objekte)
    4. Jedes Objekt ist die Instanz einer Klasse (welche ein Objekt sein muss)
    5. Die Klasse beinhaltet das Verhalten aller ihrer Instanzen (in der Form von Objekten in einer Programmliste)
    6. Um eine Programmliste auszuführen, wird die Ausführungskontrolle dem ersten Objekt gegeben und das Verbleibende als dessen Nachricht behandelt
    Wenn man sich Punkt 5 der Definition und dein Video über Objekte anschaut, fällt auf, dass du Objekte mit Klassen vertauschst. Nicht Objekte beinhalten das Verhalten, sondern Klassen. Ein Objekt ist nichts weiter, als Daten im Speicher (Punkt 3) und repräsentiert eine Instanz einer Klasse (Punkt 4).

    Beim Interface-Video erklärst du nicht mal, wofür Interfaces überhaupt gedacht sind. Deine Erklärung ist einfach nur, dass garantiert wird, dass die Car-Klasse die Methoden implementiert aber das tut die Klasse schon. Der Benefit wird überhaupt nicht klar. Du implementierst keine zweite Car-Klasse mit einer anderen Methodenlogik und somit wird überhaupt nicht ersichtlich, was das soll.

    Das nächste ist zwar ein Naming-Problem aber im Video über Vererbung erbt die Klasse Truck von Car aber ein Truck ist kein Auto. Das ist das klassische Beispiel von Robert C. Martin, mit seinen Rechtecken, Quadraten und Kreisen.

    Was mich auch ständig stört, ist, man schreibt zwar schön ein "Hallo Welt"-Beispiel aber man wird schon mit so vielen Schlüsselwörtern konfrontiert aber diese werden nie erklärt. Was bedeutet denn public/private? Was bedeutet static? Was sollen die geschweiften Klammern? etc.

    Wieso du auch ständig Copy&Paste verwendest, ist mir auch ein Rätsel. Du hast eine IDE mit Autovervollständigung und Codeformatierung also nutze diese auch. Mache dich mit deinen Werkzeugen vertraut.

    Es ist auch witzig, dass du selbst die Oberflächlichkeit der Tutorials bemängelst aber selber nicht mal schaffst, tiefer in die Materie einzudringen. Wie z.B. Syntax, Objekte, Klassen und Interfaces. Die primitiven Datentypen erklärst du auch nicht vollständig. z.B. erwähnst du nicht, dass das höchstwertige Bit für das Vorzeichen ist. Auch das Problem der Fließkommazahlen erklärst du nicht. Fließkommazahlen sind nur Näherungswerte und keine exakten Werte. Sie unterliegen einer gewissen Genauigkeit und dies kann z.B. bei Geldbeträgen eine besondere Rolle spielen. Wenn du z.B. 0.1 + 0.2 rechnest, erhälst du nicht 0.3, sondern 0.30000000000000004.

    Das Video über das Kopieren von Arrays ist auch so unnötig, wie ein Kropf. Es gibt da wesentlich mehr zu erklären, als das Kopieren von Arrays. In den 6 Jahren, in den ich beruflich als Softwareentwickler unterwegs bin, musste ich vielleicht zwei Mal manuell ein Array kopieren. Reine Arrays verwendet man eigentlich kaum. Meist instanziiert man sich eine Arrayliste, mit der man dann arbeitet. Dann entfällt auch das Problem der Reallokation (Anlegen eines neuen Arrays und kopieren der Elemente vom alten ins neue Array), denn das übernimmt schon die Arrayliste.
    Whiz-zarD is offline Last edited by Whiz-zarD; 23.09.2018 at 02:45.

  3. #3 Reply With Quote
    Krieger
    Join Date
    Jun 2012
    Posts
    420
    Jetzt fühle ich mich ganz schön niedergeschmettert, aber
    danke Whiz-zard, für die konstruktive Kritik. Es sind ja alles berechtigte, konstruktive Punkte.

    Ganz kurz zu meiner Verteidigung wenigstens ein paar Punkte.

    Quote Originally Posted by Whiz-zarD View Post
    In den 6 Jahren, in den ich beruflich als Softwareentwickler unterwegs bin
    Scheinbar sind diese Tutorials nicht sehr nützlich für jemanden, der seit 6 Jahren Softwareentwickler ist.
    Jemand, der nicht bereits Softwareentwickler ist, würde vermutlich dennoch etwas lernen.


    Quote Originally Posted by Whiz-zarD View Post
    Ansonsten finde ich das Tutorial auch nicht wirklich gelungen. Es krankt einfach daran, so wie die meisten Tutorials, dass nicht die Grundlagen erklärt werden. Die elementarste Frage, nämlich was ist überhaupt Objektorientierung, wird nicht beantwortet. Es fehlt immer die Definition von Alan Key:
    Quote Originally Posted by Whiz-zarD View Post
    Es ist auch witzig, dass du selbst die Oberflächlichkeit der Tutorials bemängelst aber selber nicht mal schaffst, tiefer in die Materie einzudringen. Wie z.B. Syntax, Objekte, Klassen und Interfaces.
    Quote Originally Posted by Whiz-zarD View Post
    Was mich auch ständig stört, ist, man schreibt zwar schön ein "Hallo Welt"-Beispiel aber man wird schon mit so vielen Schlüsselwörtern konfrontiert aber diese werden nie erklärt. Was bedeutet denn public/private? Was bedeutet static? Was sollen die geschweiften Klammern? etc.
    Quote Originally Posted by Whiz-zarD View Post
    Beim Interface-Video erklärst du nicht mal, wofür Interfaces überhaupt gedacht sind. Deine Erklärung ist einfach nur, dass garantiert wird, dass die Car-Klasse die Methoden implementiert aber das tut die Klasse schon. Der Benefit wird überhaupt nicht klar.
    Quote Originally Posted by Whiz-zarD View Post
    Das Video über das Kopieren von Arrays ist auch so unnötig, wie ein Kropf.

    Wie gesagt, ich richte mich nach der Oracle Documentation und die haben am Anfang halt nicht mit den von dir genannten Dingen angefangen und auch nicht eine Definition von Alan Key eingebaut.

    Was bedeutet public/private etc etc, kommt dort alles später.

    Ebenso haben Sie eine Lektion über das Kopieren von Arrays dabei, die ich ins Video eingebaut habe.

    Und als Benefit von Interfaces geben sie in der entsprechenden Lektion an:
    "Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfaces form a contract between the class and the outside world, and this contract is enforced at build time by the compiler. If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile."
    und das ist der Punkt, den ich drin hatte.

    Quote Originally Posted by Whiz-zarD View Post
    Das nächste ist zwar ein Naming-Problem aber im Video über Vererbung erbt die Klasse Truck von Car aber ein Truck ist kein Auto. Das ist das klassische Beispiel von Robert C. Martin, mit seinen Rechtecken, Quadraten und Kreisen.
    Den Punkt verstehe ich nicht ganz. Redest du jetzt von den Begriffen (unabhängig von Programmierung)? Also ein Lastwagen sei kein Auto?
    Habe deswegen jetzt mal nach der Definition geguckt. Ein Auto ist ein motorbetriebenes Straßenfahrzeug zur Beförderung von Personen oder Gütern (auch Lastwagen).

    Aber ich weiß nicht, ob du vielleicht etwas anderes meintest.



    Naja, insgesamt würde ich sagen, du bist zu fortgeschritten, um was aus meinen Videos zu lernen und vermutlich ist es richtig, dass du ein besseres Tutorial machen könntest.

    Ich werde trotzdem weitermachen, denn die Alternative wäre gar nichts zu machen, das bringt auch nichts.
    Wenn ich durch die Documentation durch bin, dann kann ich zusammenfassende Videos machen, die anders aufgebaut und vielleicht umfangreicher sind.

    Danke für's Feedback.
    Gothicforum is offline

  4. #4 Reply With Quote
    Ritter
    Join Date
    Feb 2003
    Posts
    1,554
    Quote Originally Posted by Gothicforum View Post
    Scheinbar sind diese Tutorials nicht sehr nützlich für jemanden, der seit 6 Jahren Softwareentwickler ist.
    Jemand, der nicht bereits Softwareentwickler ist, würde vermutlich dennoch etwas lernen.
    Das ist einfach unnützes Wissen, was man sowieso wieder schnell vergisst und wieder nachschauen muss, wenn man es mal braucht. Viel wichtiger wäre z.B. das Wissen um verschiedene Datenstrukturen (Listen, Bäume, Stacks, etc.)

    Quote Originally Posted by Gothicforum View Post
    Und als Benefit von Interfaces geben sie in der entsprechenden Lektion an:
    "Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfaces form a contract between the class and the outside world, and this contract is enforced at build time by the compiler. If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile."
    und das ist der Punkt, den ich drin hatte.
    Du hast aber den Punkt selber nicht ganz verstanden. Dein Beispiel ist vollkommen überflüssig, da es nur eine Implementierung von Car gibt. Der Vorteil von Interfaces ist, dass es eine Schnittstelle der Klassen definiert. Beispiel wäre das List-Interface. Es gibt nun mehrere Implementierungen von Listen. z.B. ArrayList oder LinkedList. Beide diese Klassen implementieren das List-Interface und dem Aufrufer ist es dann egal, ob er eine ArrayList oder LinkedList anspricht. In deinem Beispiel sollte es ein Vehicle-Interface geben und Car und Truck implementieren dieses Interface. So werden die Interfaces auch deutlicher.

    Quote Originally Posted by Gothicforum View Post
    Den Punkt verstehe ich nicht ganz. Redest du jetzt von den Begriffen (unabhängig von Programmierung)? Also ein Lastwagen sei kein Auto?
    Habe deswegen jetzt mal nach der Definition geguckt. Ein Auto ist ein motorbetriebenes Straßenfahrzeug zur Beförderung von Personen oder Gütern (auch Lastwagen).
    Die Übersetzung von Car ist aber Personenkraftwagen und ein Truck ist ein Lastkraftwagen.
    Ergo: Car != Truck

    Wie ich schon sagte, entweder machst du ein Interface oder eine abstrakte Klasse mit dem Namen Vehicle und Car und Truck implementieren das Interface bzw. erben von der abstrakten Klasse.

    Quote Originally Posted by Gothicforum View Post
    Ich werde trotzdem weitermachen, denn die Alternative wäre gar nichts zu machen, das bringt auch nichts.
    Du kannst auch aufhören und die Erde wird sich dennoch weiterdrehen. Keine Ahnung, was du dir damit versprichst, denn deine Videos sind auch nicht besser als die Milliarden anderen Java-Tutorials, die man auf Youtube findet.
    Whiz-zarD is offline

  5. #5 Reply With Quote
    Pretty Pink Pony Princess  Multithread's Avatar
    Join Date
    Jun 2010
    Location
    Crystal Empire
    Posts
    10,718
    Ich höre mit jetzt gerade das mit den Interfaces an..

    Und Ich muss sagen: das Turtorial ist nicht besser als die anderen 99% aller Turtorials.
    Nicht nur hilft die Definition von Interface nicht weiter, sie ist sogar teilweise Falsch, aus dem Gesichtspunkt des Programmierers.

    Car hat z.B. am Wahrscheinlichsten ein Interface 'IVehicle'.

    Am ende bringt dir das Interface nichts, da du weder mit der Implementierung, noch mit der Begründung derer ein Problem lösen kannst.

    Das ist hier z.B. etwas besser erklärt. Auch wenn auch er noch kein Problem damit löst.
    [Bild: AMD_Threadripper.png] Bei Hardware gibt es keine eigene Meinung, bei Hardware zählen nur die Fakten.


    Probleme mit der Haarpracht? Starres Haar ohne Glanz? TressFX schafft Abhilfe. Ja, TressFX verhilft auch Ihnen zu schönem und Geschmeidigen Haar.
    [Bild: i6tfHoa3ooSEraFH63.png]
    Multithread is offline

  6. #6 Reply With Quote
    Ritter
    Join Date
    Feb 2003
    Posts
    1,554
    Quote Originally Posted by Multithread View Post
    Auch wenn auch er noch kein Problem damit löst.
    Das ist hier auch das größte Problem. Es werden keine Probleme zu den jeweiligen Lösungen gezeigt.
    Wozu muss man denn jetzt schon zeigen, wie Arrays kopiert werden, wenn man nicht mal weiß, wozu? Was soll man damit? Wozu überhaupt Arrays? Was sollen die?

    Wozu soll man jetzt schon lernen, wie man Arrays kopiert, wenn man noch nicht mal die Syntax vollständig erklärt hat?
    Whiz-zarD is offline

  7. #7 Reply With Quote
    Pretty Pink Pony Princess  Multithread's Avatar
    Join Date
    Jun 2010
    Location
    Crystal Empire
    Posts
    10,718
    Ich gestehe ein, es ist nicht einfach ist sowas zu planen, würde dir aber anraten das ganze von hinten aufzurollen.

    Also: Wo soll der Besucher des Videos am ende sein?
    Welche Schritte sind dafür nötig?
    Welche muss man zuerst machen?
    Auf welcher Stufe startet das Video?

    Wenn die Letzte Stufe nicht stimmt, sollte man nochmals den ganzen Ablauf überlegen. Denn Ohne einen richtigen Anfang, macht es keine Freude.
    Und wenn die erste stufe nicht vorhanden ist, bietet das Video keinen Mehrwert.

    Mein 15min Versuch. Ich habe aber vor einer Erklärung mit Unittests abgesehen, da Ich gerade den Aufwand dafür gescheut habe.
    [Bild: AMD_Threadripper.png] Bei Hardware gibt es keine eigene Meinung, bei Hardware zählen nur die Fakten.


    Probleme mit der Haarpracht? Starres Haar ohne Glanz? TressFX schafft Abhilfe. Ja, TressFX verhilft auch Ihnen zu schönem und Geschmeidigen Haar.
    [Bild: i6tfHoa3ooSEraFH63.png]
    Multithread is offline

  8. #8 Reply With Quote
    Forschungsreisender  jabu's Avatar
    Join Date
    Jul 2011
    Posts
    4,813
    Ich versuche, mich weitgehend auf Punkte zu beschränken, die noch nicht abgegrast sind (kleine Überschneidungen möge man mir verzeihen):

    Bild- und Tonqualität sind schlecht (versuche, für mehr Schärfe eine pixelgenaue Abbildung zu erreichen, und würge das Audio nicht vorzeitig durch einen Codec). Informiere dich vorher, welche Formate YT ausgibt und meide nachträgliches Konvertieren, zumindest bei Pixeln wie auch bei den FPS (aber bitte keine 60 fps verwenden, denn das würde ältere HW ausgrenzen und bringt nichts).

    Der Titel deiner Playlist geht gar nicht, weil er etwas suggeriert, was nicht ist. Zwar kann man aus deinem Tutorial durchaus schon etwas lernen, aber bei dem Titel erwartet man eben, dass es sich um eine gezielte Vorbereitung auf das Zertifikat handelt, was nicht stimmt. Somit führst du deine Zuschauer in die Irre, was gar nicht gut ist (weder für sie noch für dich). Es sollte mindestens zu erwarten sein, dass du aus Erfahrung mit dem Zertifikat sprichst, bevor du das auch nur ansatzweise wagst.

    Zu den Datentypen:
    Dem Lernenden dürfte der Unterschied zwischen Wert- und Referenztypen nicht klar sein. Ich weiß nicht, ob dir das schon etwas sagt, wegen deiner nicht ganz korrekten Aussage über die Unveränderlichkeit von Strings (Zuweisen eines neuen Strings an die Referenz ist nämlich problemlos möglich) sowie über deine zu knappe Aussage über null (null ist nicht dasselbe wie das Null-Zeichen) und 0, denn dort scheint mir einiges (zumindest in der Darstellung) zu verwischen. Falls du es selber doch besser weißt, dürfte der Lernende dennoch irritiert werden, was nicht gut ist.

    Manche Tutorials erwähnen den Unterschied zwischen Wert- und Referenztypen erst wegen der Parameterübergabe und wieseln sich um den Kern der Sache herum, was beim Lernenden zu einem falschen Verständnis von Variablen und Objekten führt, was sich festsetzt und dann kaum noch ausschleichen lässt. Das unglückliche Vorgehen liegt daran, dass die Autoren den Unterschied selber nicht durchdrungen haben oder weil sie unterschätzen, was falsch Gelerntes oder Konfusion anrichten kann. Diesen didaktischen Fehlgriff solltest du nicht wiederholen.

    Dabei wäre das alles ganz einfach, wenn es einem denn jemand gleich gesagt hätte. Referenztypen haben Ähnlichkeit mit den Zeigern aus C, sind aber sicherer, da sie automatisch referenziert und dereferenziert werden. Der Name steht daher nicht wirklich für ein Objekt, sondern referenziert dieses bloß. Man kann also die vorhandene Referenz auf ein neues Objekt verweisen lassen, sodass das alte nicht geändert werden muss (es darf immutable sein). Wenn das Objekt nicht mehr referenziert wird, dann darf es vom Garbage Collector abgeräumt werden. Bei anderen Objekt-Typen sowie bei Arrays funktioniert das genauso. So verkürzt sollte das aber in keinem Tutorial landen.

    Wegen der Referenzen ist es meistens gar nicht nötig, ein Array zu kopieren. Zudem hat ArrayList Vorteile wegen der besseren Interoperabilität. Aber es gibt Fälle, wo dein Beispiel angebracht ist, nämlich wenn man eine echte Kopie braucht, wobei der Kopiervorgang möglichst performant ausfallen soll, ohne dass die fehlende Interoperabilität den Performancevorteil woanders aufzehrt (was aber meistens passiert).
    Simple Arrays sind (zur Vereinfachung pauschalisiert) ungefähr dreimal so schnell wie ArrayList zu verarbeiten, weswegen die durchaus ihre Daseinsberechtigung haben, vor allem in schnellen Algorithmen. Aber aus didaktischer Sicht dürfte das Thema dort fehl am Platz sein. Was du mit diesem Kopieren anfängst, zerreißt den Faden, den du angefangen hast. Vielleicht kommt der Lernende irgendwann mal dorthin, dass er eine maximal performante Kopie haben will, aber bis er die wirklich braucht, dürfte er mit deinem Tutorial längst durch sein.

    Es dürfte zwar allgemein nötig sein, Arrays zu erklären, aber damit kommst du jetzt von Hölzchen auf Stöckchen, wie du nun selber merkst. Dann gesellen sich, wenn du das Level weiter bedienst, Schleifen über Arrays hinzu, und schon bist du meilenweit von der Objektorientierung weg, die du mal so engagiert angefangen hast. Es mag sein, dass du das daher nur kurz einschieben wolltest, um mit OOP weiterzumachen, aber das Kopieren zieht dann einfach zu viel Aufmerksamkeit ab, während einige Grundlagen, die vorher dran wären bzw. wichtiger sind, fehlen - während die OOP eben in den Hintergrund gerät. Damit erhältst du bei einem Dilemma das Schlechteste aus beiden Varianten.

    Zu OOP haben die anderen schon gesagt, was gesagt werden musste. Ich habe mal bei YT ein Tutorial herausgesucht, wo bei Fahrzeugen sowohl ein Interface als auch eine abstrakte Klasse gezeigt wird, siehe hier. Es sollte nicht schaden, sich das mal zur Einführung anzusehen, aber der eigentliche Nutzen wird leider auch hier nicht ersichtlich, aber sehr wohl in dem Video, welches dir Multithread erstellt hat (zeigt das Konzept, bitte nicht als Vorbild für ein Tutorial verstehen).

    Es ist längst nicht alles schlecht:
    Gut finde ich, dass du schnell zur Sache kommst und deinen Zuschauern unnötige Geräusche (z.B. Musik) ersparst und dass du nicht wie ein Werbefuzzy sprichst und dich nicht beim Sprechen überschlägst. Ich finde deine grundsätzliche Herangehensweise, dass du Neues sofort zu erklären versuchst, gut. Auch die Länge der Einheiten finde ich angemessen. Du langweilst nicht. Deine Stimme ist tauglich. Dein deutscher Akzent dürfte zwar für einen Native Speaker zu hart klingen, aber immerhin verständlich sein. Mit etwas Übung sollte das schon gehen.

    Ich hoffe, dass du dich nicht entmutigen lässt. Es ist gewiss nicht einfach. Das Glas ist halb voll, so sollte man das sehen.
    jabu is offline Last edited by jabu; 24.09.2018 at 00:53.

  9. #9 Reply With Quote
    Krieger
    Join Date
    Jun 2012
    Posts
    420
    Mal kurz an euch Java-Experten, ich mache jetzt einfach mal keinen Extra-Thread auf, sondern frage hier in meinem alten:

    Wenn man ein Spiel programmiert, angenommen folgendes Szenario:

    Man hat eine 1. Klasse, die die Main method enthält und darin eine methode aufruft aus einer 2. Klasse, die beinhaltet,
    dass ein Fenster geöffnet wird und dieses gefüllt wird mit einem Game-Menü.
    Das Game Menü enthält einen Button, der das eigentliche Spiel startet.
    Das bisherige Fenster soll verwendet werden. Es soll geleert werden bzw. neu befüllt mit dem eigentlich Spiel-Bildschirm.

    Bis hier gibt es nur diese 2 Klassen. Die erste ruft nur die Methode aus der 2. auf
    und die 2. enthält alles bisherige (auch einen ActionListener für den Button (oder sollte man den in die 1. packen?)).

    Sollte nun das neue Befüllen des selben Fensters mit dem eigentlichen Spiel(-Hintergrund etc.) mit einer dritten Klasse gemacht werden
    oder sollte man dieses auch in die 2. Klasse schreiben oder sollte man es in der 1. Klasse hinzufügen.

    oder sollte man die 2. Klasse nur dazu verwenden, das Fenster zu erzeugen
    und dann die 1. (main) Klasse dazu verwenden das erzeugte Objekt (Fenster) zu befüllen
    mit
    Fenster.add(xyz) ?

    ..versteht ihr, was ich meine? Wie würdet ihr das ganze auf Klassen aufteilen?
    Gothicforum is offline

  10. #10 Reply With Quote
    Ritter
    Join Date
    Feb 2003
    Posts
    1,554
    Zuerst informiere dich über den sog. Game Loop. Das beantwortet wohl schon viele Fragen. Sonstige Fragen beantworten wohl das SOLID-Prinzip.
    Whiz-zarD is offline

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •