Java-Programmierung für Anfänger: Programmieren in einer Stunde | Derek Wan | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Java-Programmierung für Anfänger: Programmieren in einer Stunde

teacher avatar Derek Wan, Software Engineer and Teacher

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      3:35

    • 2.

      Programmanatomie

      4:39

    • 3.

      Methoden

      13:05

    • 4.

      Replit-Demo

      6:35

    • 5.

      Kontrolle

      12:25

    • 6.

      Objekte Teil 1

      7:54

    • 7.

      Objekte Teil 2

      3:37

    • 8.

      Kommentare

      2:25

    • 9.

      Arrays und ArrayLists

      6:56

    • 10.

      Sudoku

      6:32

    • 11.

      Deine Reise fortsetzen

      0:59

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

1.026

Teilnehmer:innen

2

Projekte

Über diesen Kurs

(Teil 2 hier: https://skl.sh/3MjaB72)

Dieser Kurs behandelt wichtige Themen für jeden Programmierer und bringt dir alles bei, was du wissen musst, um ein voll funktionsfähiges, interaktives Sudoku-Spiel zu bauen. Dies ist kein Kurs, der Abkürzungen nimmt; stattdessen habe ich die Grundlagen von Java auf eine Stunde destilliert, damit du schnell eine Grundlage aufbauen kannst, auf der du deine Programmierkenntnisse erweitern kannst. 

Was du lernen wirst

  • Zugriffsmodifikatoren
  • Dateistruktur
  • Pakete
  • Methoden
  • Replit
  • Boolesche Ausdrücke
  • Steuerung der bedingten Logik
  • Loops
  • Objekte
  • Instanz vs. statische Paradigmen
  • Kommentare
  • Arrays
  • ArrayListen

Es sind keine Vorkenntnisse oder Kenntnisse erforderlich. Vielleicht noch wichtiger ist, dass auch keine spezielle Hardware oder Einrichtung erforderlich ist, da der gesamte Code durch eine Sandbox-Umgebung in deinem Browser ausgeführt wird. Du kannst deine ganze Energie auf Java konzentrieren, anstatt mit den Macken deines Computers zu feilschen. Alles, was du für diesen Kurs brauchst, ist Internet, dein Gerät und eine Stunde Zeit. 

Folien findest du hier: https://drive.google.com/drive/folders/1W_K68_lFghJ2PsFXYkt035Ikt4X-lxW2?usp=sharing

Triff deine:n Kursleiter:in

Teacher Profile Image

Derek Wan

Software Engineer and Teacher

Kursleiter:in

I was formerly an instructor for the largest computer science course at the University of California, Berkeley, where I taught undergraduates for several years. I am now a full-time software engineer working on experimentation platforms at a large tech company based in Cupertino, California. However, I'm still passionate about tech education and decided to start making Skillshare courses to get more people excited about coding! I have more courses in the works, but check out what I have so far by scrolling down.

Website | Github | Research | Thesis

 

Featured Reviews

"Derek is an amazing [instructor]. He is n... Vollständiges Profil ansehen

Skills dieses Kurses

Entwicklung Programmiersprachen Java
Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Hallo zusammen. Mein Name ist Derek und willkommen zu meinem Kurs über Java. Sie haben wahrscheinlich Ihre Gründe, warum Sie hier sind. Vielleicht waren Sie in letzter Zeit Job Clinton, nur um zum Abschnitt Qualifikationen zu scrollen, und haben nur um zum Abschnitt Qualifikationen zu scrollen, und festgestellt, dass Sie Java und andere Programmiersprachen als Grundvoraussetzung kennen müssen . Vielleicht haben Sie sich die Vergütungsbänder angesehen und festgestellt, dass Softwareingenieure sehr großzügig bezahlt werden. Oder vielleicht möchten Sie einfach etwas Interessantes lernen , um das neue Jahr zu beginnen. Unabhängig davon, warum Sie hier gelandet sind, Java ist eine großartige Fähigkeit zum Erlernen. Aber was ist Java? Java ist eine leistungsstarke und beliebte Programmiersprache, was bedeutet, dass Sie schnelle Programme schreiben können . Sie werden für Ihre Fähigkeiten sehr gefragt sein. Java ist auch leicht zu erlernen und übertragbar, was bedeutet, dass das Erlernen anderer Programmiersprachen, sobald Sie Java gelernt haben das Erlernen anderer Programmiersprachen noch einfacher macht . Das klingt alles großartig, aber es gibt jede Menge anderer Programmierklassen. Warum sollten sie diesen wählen? Nun, wir haben viel für dich auf Lager. Zunächst haben wir den gesamten Quellcode in diesem Kurs für Sie in einer Online-Umgebung bereit, was bedeutet, dass Sie nur die grüne Run-Taste drücken müssen. Sie müssen nicht stundenlang mit dem Kopf gegen Ihren Computer schlagen, um herauszufinden , was mit Ihrem lokalen Setup nicht stimmt. Mit einem Klick auf eine Schaltfläche sind Sie bereit, die Ausgabe Ihrer Programme zu sehen. Wir haben auch ein sehr visuelles Projekt für den Lebenslauf auf YouTube, was bedeutet, dass du am Ende dieses Kurses etwas hast, das du deinen Freunden zeigen und in deinen Lebenslauf aufnehmen kannst. Wir haben in jeder Lektion konkrete Codebeispiele , damit Sie nicht durch abstrakte Konzepte verwirrt werden. Konzepte werden mit einer leicht verständlichen und visuellen Anleitung eingeführt . Schließlich werde ich in diesem Kurs aktiv betreut. Also zögern Sie nicht, Fragen zu stellen, wenn die Dinge nicht klar sind. Bevor ich Sie auf die Kursinhalte einlasse, sollte ich mich wahrscheinlich zuerst vorstellen. Ich bin ein professioneller Softwareingenieur und habe während meiner gesamten Karriere bei einigen der bekanntesten und wertvollsten Technologieunternehmen der Welt gearbeitet . Ich habe praktische Erfahrung in der Lieferung konkreter technischer Produkte, von denen Sie vielleicht auf einige gestoßen sind. Vorher war ich Softwareingenieur. Ich habe Informatik im Grundstudium an der University of California in Berkeley unterrichtet im Grundstudium an der University of California in , wo wir in diesem Semester regelmäßig Tausende von Studierenden lösen. Course wurde von Bloomberg zu einem der fünf besten des Landes gekürt . Und ich bin derzeit einer der beliebtesten Dozenten unter 61 Jahren, ein YouTube-Kanal der Abteilung, auf dem wir 2022 etwa 900.000 Aufrufe hatten. Während meiner Zeit in Berkeley möchte ich auch mehrere Lehrpreise erhalten und wurde 2020 mit dem angesehenen GSA Award ausgezeichnet, der an die 13 besten Dozenten und die gesamte Informatik verliehen wurde die gesamte Informatik Abteilung von mehreren hundert. Schließlich habe ich einen Hochschulabschluss in Informatik, ebenfalls aus Brooklyn. Wie Sie sehen, liebe ich alles, was mit Technik zu tun hat, und ich liebe es zu unterrichten. Ich freue mich sehr, dass ihr mit mir auf der Fahrt seid. Eine letzte Sache, bevor wir mit dem Kurs beginnen, bitte ich Sie, ein Konto auf repl it.com zu erstellen und Ihre E-Mail-Adresse zu überprüfen, sobald Sie dies getan haben. Jetzt weiß ich, dass ich es weiß. Vielleicht haben Sie gerade ein Skillshare-Konto erstellt und sind wahrscheinlich nicht in der Stimmung, ein weiteres Konto zu erstellen. Nun, wie ich bereits erwähnt habe, haben wir eine Online-Umgebung eingerichtet, mit der Sie herumspielen und Ihr Projekt erstellen können. Und glauben Sie mir, die Alternative ist viel, viel schlimmer. Die Alternative zur Online-Umgebung wäre die Einrichtung einer lokalen Entwicklungsumgebung auf Ihrem Computer. Es gibt 1 Million Möglichkeiten, die schief gehen könnten , und die Fehlerbehebung kann Stunden dauern. Deshalb bitte ich Sie, sich jetzt ein paar Minuten Zeit zu nehmen, um hier ein Konto zu eröffnen. Das war's für mich in diesem Video, wir sehen uns im nächsten. Wenn Sie auf die Folien zugreifen möchten. Der Link wird in der Kursbeschreibung veröffentlicht. 3. Methoden: Willkommen Freunde. In diesem Video werden wir über Methoden sprechen. Zuallererst, was ist eine Methode? Eine Methode ist so ziemlich alles, was eine Aktion innerhalb einer Klasse ausführt. Und die Definition von Untätigkeit ist ziemlich weit gefasst. Es könnte alles Mögliche sein. Es könnte einfache Arithmetik sein. Es könnte ein Algorithmus für maschinelles Lernen ausgeführt werden. Es könnte ein Bild rendern. Klassen enthalten Methoden, und Methoden enthalten die gesamte Logik innerhalb eines Programms. Jetzt müssen Methoden deklariert werden, bevor wir anfangen können, Logik in sie zu schreiben. Diese Erklärung besteht aus vier Komponenten . Zuerst haben wir den Zugriffsmodifikator. Wir haben vier Typen: öffentlich, privat, privat und geschützt. Der Zugriffsmodifikator für eine Mirth-Methode funktioniert genauso wie für Klassen. Wenn die Achse nicht explizit angegeben ist, die Methode standardmäßig package private, genau wie es eine Klasse tun würde. Eine öffentliche Methode kann von jeder Klasse aus referenziert werden. private Methode von Panda Package ist eine Methode, auf die nur zugegriffen werden kann, wenn von einer Methode einer Klasse innerhalb desselben Pakets aus darauf verwiesen wird von einer Methode einer Klasse innerhalb desselben Pakets aus darauf verwiesen . Denken Sie auch an das zuvor versprochene, ich werde privat und geschützt erklären , sobald wir angefangen haben, über Methoden zu sprechen . Nun, es stellt sich heraus, dass wir noch mehr über Java wissen müssen , bevor wir darüber sprechen können geschützt. Also lassen wir das vorerst weg. Wir können jedoch von privatem Code sprechen, der als privat markiert ist, auf den nur innerhalb derselben Klasse zugegriffen werden kann. Wenn ich also z. B. Methode X als privat deklariert habe, bedeutet das, dass nur andere Methoden innerhalb derselben Klasse Methode X referenzieren dürfen. Methoden anderer Klassen unabhängig von ihrem Paket, wäre nicht erlaubt, auf eine private Methode zu verweisen. Als nächstes haben wir Statik. Wir können uns dafür entscheiden, das Wort statisch in unserer Deklaration wegzulassen In diesem Fall wird die Methode standardmäßig auf nicht statisch gesetzt. Sie sich jetzt noch keine Gedanken darüber, was statisch eigentlich bedeutet. Leider benötigen Sie mehr Kontext zu Java, bevor Sie es verstehen können. Beachten Sie also vorerst, dass das statische Schlüsselwort existiert und nach dem Zugriffsmodifikator steht. Als nächstes haben wir den Rückgabetyp , der immer vorhanden sein muss. Der Rückgabetyp ist, wie der Name schon sagt, der Typ des Werts, der von einer Methode zurückgegeben wird. In diesem Fall wird mit dieser Methode nichts zurückgegeben. Wir sagen also, dass sein Rückgabetyp ungültig ist. Jetzt sind Sie vielleicht etwas verwirrt darüber, was es für eine Methode bedeutet, etwas zurückzugeben. Der Rückgabewert einer Methode ist der ausgegebene Wert. Stellen Sie sich zum Beispiel vor, wir haben eine Methode namens add und sie addiert lediglich zwei ganze Zahlen. Also z.B. die Addition von 1.2 gibt uns drei. In der Programmierung nennen wir diese drei den zurückgegebenen Wert der Funktion add. Der Rückgabewert ist ein Synonym für den Ausgabewert. Und in diesem Camp und in unserem Anzeigenbeispiel wäre der Typ des Rückgabewerts eine Ganzzahl, da drei eine Ganzzahl ist. Schließlich haben wir den Methodennamen. Namen können im Allgemeinen so sein, wie Sie es möchten. Die einzige Einschränkung ist meiner Meinung nach, dass das erste Zeichen des Methodennamens ein Buchstabe sein muss. Lassen Sie uns nun über Typen in Java sprechen. Wie wir auf der vorherigen Folie gesagt haben, muss jede Methode den Typ zurückgeben. Daher ist es wichtig, dass wir verstehen, was einige dieser Typen sein können. Zuerst haben wir eine Zeichenfolge, die ein doppelt zitiertes, menschenlesbares Textstück ist. Erinnern Sie sich an die vorherige Folie, wir hatten Hello World, genau hier, genau hier. Dies ist ein menschenlesbarer Text mit doppelter Quote. Es ist ein Beispiel für eine Zeichenfolge. Als nächstes haben wir eine Ganzzahl, ein Int, das ist Java-Sprache für Integer. Wir haben auch Floats, das ist Javas Art, eine Zahl mit einem Dezimalpunkt zu sagen , wie 1,3, z. B. haben wir boolesche Werte , die nur wahr oder falsch sein können. Wir haben auch Array-Typen, die wie ganze Klammer, Klammer oder boolesche Klammer aussahen . Ein Array von Elementen ist im Grunde nur eine geordnete Sammlung von Elementen dieses Typs. Wenn wir also zB eine Klammer vom Typ int angeben, bedeutet das, dass dieser Wert eine geordnete Sammlung von ganzen Zahlen sein wird . Und wenn wir eine boolesche Klammer, Klammer haben, dann wird das eine Sammlung von wahren oder falschen Werten sein . Java hat viel mehr Typen als Justice, aber das sind einige der gängigsten Typen, die ich sehen werde. Und sie werden als gute Grundlage für den Rest dieses Kurses dienen . Als Nächstes müssen wir über Methodenargumente sprechen. Ein Methodenargument ist nur eine formale Art, die Eingaben oder Parameter einer Methode anzugeben. Die Argumente der Methode werden in Klammern hinter dem Namen der Methode angegeben . Und der Java-Typ der Argumente muss explizit angegeben werden. ZB haben wir hier einen String-Array-Typ und wir erhalten den Namen des Arguments args. Das bedeutet, dass wir, wenn wir diese Methode aufrufen, ihr eine Eingabe vom Typ String-Array geben müssen. Andernfalls weigert sich Java, den Code zu kompilieren und wird nicht ausgeführt. Es gibt ein paar subtile Punkte, die Sie beachten sollten. Die erste ist, dass diese Methode hier etwas ganz Besonderes ist. In der Regel handelt es sich um eine Java-Anwendung, wir haben mehrere Dateien und müssen einen Einstiegspunkt angeben. Andernfalls hätte Java keine Möglichkeit zu wissen, welcher Code zuerst ausgeführt wird. In diesem Fall würden wir also angeben, dass die Helloworld-Klasse unser Einstiegspunkt sein soll. An diesem Punkt würde Java dann nach einer Hauptmethode suchen , die genau diese Signatur hat, public static, void main mit einem Argument vom Typ string array. Es wird diese Methode ausführen, wenn sie als erster Einstiegspunkt in das Programm existiert . Andernfalls gibt Java eine Fehlermeldung die besagt, dass keine Hauptmethode definiert ist. Zweitens, wenn Sie möchten eine Methode mehrere Argumente verwendet, müssen wir jedes dieser Argumente explizit eingeben und durch ein Komma trennen. In diesem Anzeigenbeispiel haben wir zwei Argumente, x und y, und wir geben die Typen Int für beide an. Und diese Funktion add gibt einfach das Ergebnis der Addition dieser beiden Zahlen zurück x plus y. Als Randnotiz beachten Sie, dass, wenn wir einen Rückgabetyp und die Methodensignatur angeben , z. B. hier, muss in dieser Methode eine Zeile enthalten, in der explizit return in Maine steht, z. B. haben wir eine Lücke, was bedeutet, dass wir nichts zurückgeben. Beachten Sie, dass diese Methode keine Zeile enthält, in der Return steht. Drittens ist es völlig in Ordnung , dafür keine Argumente zu haben. Sie würden einfach einen leeren Satz von Klammern hinter den Methodennamen setzen . Jetzt denken Sie vielleicht, dass diese Anforderung, alles explizit in Java einzugeben, wirklich lästig ist und nur dazu da ist, Sie zu verlangsamen. Aber wenn das wahr wäre, wäre Java heute nicht eine der beliebtesten Programmiersprachen und der Softwareindustrie. Der Grund, warum wir diese Anforderungen haben, ist, dass sie es Java ermöglichen , etwas durchzuführen, das wir als Überprüfung bei der Kompilierung bezeichnen. Bevor Sie ein Java-Programm ausführen, muss Ihr Computer den Code zunächst in einen sogenannten Bytecode konvertieren . Wir nennen diesen Prozess Kompilierung. Wenn die Kompilierung abgeschlossen ist und Sie das Programm ausführen, Sie tatsächlich den erzeugten Bytecode aus. Der Vorteil eines Kompilierungsschritten vor der Ausführung des Codes besteht nun darin, dass der Java-Compiler Ihren Code analysieren und einige grundlegende Plausibilitätsprüfungen durchführen kann . Eine dieser Plausibilitätsprüfungen besteht darin, dass alle angegebenen Typen in Ihrer Logik konsistent sind. Erwartet zB, wie wir bereits hier erwähnt haben , zwei ganze Zahlen. Stellen Sie sich vor, ich würde versuchen, die Zahl zwei, eine Zeichenfolge, Hallo Welt, als Argument in die Anzeige zu übergeben. Nun, das würde keinen Sinn ergeben. Wie fügt man die Zahl zwei zu einem Text hinzu Hello World. Der Vorteil von Java ist also, dass es diese Plausibilitätsprüfungen bei Kompilierung durchführt und Sie über alle Fehler informiert der Kompilierung durchführt und Sie über alle Fehler informiert, bevor der Code ausgeführt wird. In anderen Sprachen ohne Überprüfung der Kompilierzeit möglicherweise ein Problem in Ihrem Code vor, Sie erst erfahren würden, wenn der Code ausgeführt wird. Und das könnte sehr verheerend sein, wenn Ihr Code beispielsweise in einer Bank oder vielleicht bei Google eingesetzt wird , das täglich von 1 Milliarde Menschen verwendet wird. Lassen Sie uns nun über den Methodentext sprechen. Zuerst. Der Methodenkörper besteht einfach dem gesamten Code innerhalb dieser Klammern. Es gibt keine wirkliche Einschränkung, was Sie im Körper tun können , und der Methodentext kann so lang sein, wie Sie möchten. Unabhängig davon, für welche Logik Sie sich entscheiden. Das Wichtigste, was Sie sicherstellen müssen , ist , dass der Typ des Rückgabewerts der angegebenen Rendite in der Methodendeklaration übereinstimmen muss . Hier geben wir some zurück, eine Variable, die wir deklariert und mit dem Wert x plus y initialisiert haben. Da x und y beide Ints sind, ist die Addition von zwei auch ein Int. Daher entspricht die Rückgabe der Summe unserer Anforderung, in dieser Methode ein Int zurückzugeben. Der nächste Punkt, den ich hervorheben möchte , ist , dass die Rückleitung ein Terminal ist. Java-Kompilierung schlägt fehl, wenn Sie versuchen, Code hinter die Rückgabezeile einer Methode zu setzen . Dies ist sinnvoll , da der Rückgabewert der Ausgabewert der Methode ist. Warum zusätzliche Logik ausführen nachdem Sie bereits einen Endwert ausgegeben haben? Wir müssen auch ein wenig über Variablen sprechen , die Sie innerhalb einer Methode erstellen und verwenden. Genau wie Methodenargumente müssen Variablen, die Sie innerhalb der Methode definiert explizit eingegeben werden , wenn Sie sie erstellen. Und Sie können sie beliebig benennen, solange das erste Zeichen des Namens ein Buchstabe ist. Nachdem wir z. B. die Variable sum als int deklariert haben, können wir ihren Typ innerhalb derselben Methode nicht mehr ändern. Ich kann also nicht so etwas wie int sum ist x plus y machen. Und dann in der nächsten Zeile Zeichenfolge sum ist gleich hallo world. Sie können die Art der Summe zwar nicht ändern, aber ihren Wert. Und wenn Sie das tun, müssen Sie es nicht explizit eingeben. Also nachdem die Mine-Int-Summe gleich x plus y ist, kann ich etwas wie sum ist gleich eins ohne die, ohne die explizite Typdeklaration, machen. Übrigens sind diese drei Aussagen nur innerhalb derselben Methode wahr. Ich könnte eine ganz andere Methode namens Subtract haben. Und subtrahieren, ich könnte die Summe als Zeichenfolge deklarieren, wenn ich das möchte. Diese Variable müsste eine Zeichenfolge innerhalb dieser Methode bleiben. Methodenvariablen in einer Methode sind unabhängig von Methodenvariablen in einer anderen Methode. wir nun wissen, wie man Methoden definiert, schauen wir uns an, wie wir sie verwenden. Wir nennen das einen Methodenaufruf. Wenn wir auf den Methodennamen verwiesen und Argumente in Klammern übergeben haben, wird, wie Sie sich wahrscheinlich vorstellen können, wie Sie sich wahrscheinlich vorstellen können, bei 12 von 12 die Coderückgabe x plus y ausgeführt. Und dieser zurückgegebene Wert wird jetzt in Maine an X gebunden. Übrigens, dieses Ding, das wir die ganze Zeit benutzt haben, System Dot Out, Dot Print LN, ist auch eine Methode. Es besteht aus einem Verweis auf einen Methodennamen und enthält Klammern, in denen wir ein Argument für unsere Reise zum Ausdruck auf den Bildschirm übergeben . In diesem Fall der Wert von x, der drei ist. Der Grund, warum wir all diese Punkte brauchen , wird im zukünftigen Video sinnvoller sein. Pop-Quiz. Woher weiß Java, dass es den Wert drei ausdrucken muss, in diesem Fall statt des buchstäblichen Zeichens x, das wir in den Druck eingegeben haben, fahren Sie fort und halten Sie das Video an. Ich werde die Antwort in 321 enthüllen. Der Grund, warum Java weiß, dass es drei ausgibt , ist, dass dieses x nicht ist. WIR, die am X zitiert wurden, waren in doppelten Anführungszeichen gesetzt. Java würde x als literales Zeichen x behandeln, da es keine doppelten Anführungszeichen enthält. Java versteht, dass x ein Variablenname ist , an den ein Wert angehängt ist. Es wird also zuerst auswerten, was x ist und dann das Ergebnis dieser Bewertung ausdrucken. Hier sind die Links zu den Codebeispielen, die dieses Video verwenden. Da wir in diesem Video ziemlich viele Inhalte behandelt haben, bitte ich Sie, diese Links zu besuchen. Klicken, Forken, Ripple und basteln Sie am Code. Es muss nichts Schickes sein. Experimentieren Sie einfach mit dem Hinzufügen von Variablen zu Methodenkörpern oder ändern Sie vielleicht den Rückgabetyp und die Methodendeklaration. übrigens daran, Semikolons hinzuzufügen. Java-Zeilen müssen mit einem Semikolon enden es sei denn, Sie öffnen einen neuen Codeblock mit verschnörkelten Klammern. 4. Replit Demo: In diesem Video möchte ich Ihnen einen kurzen Überblick über die Ripple-Umgebung geben. Und was ich meine, wenn ich sage, ich ermutige Sie, am Code herumzubasteln. Stellen Sie zunächst sicher, dass Sie ein Konto auf repl it.com erstellt haben. Ich weiß, dass es nervig ist, ein weiteres Konto einzurichten, aber die Alternative dazu besteht darin, eine lokale Programmierumgebung auf Ihrem Computer einzurichten . Das Problem ist, ich weiß nicht, welchen Computer Sie haben. Ich weiß nicht, welches Betriebssystem Sie verwenden und ich weiß nicht, was Umgebungsvariablen sind, Aliase, die Sie auf Ihrem Computer eingerichtet haben. Als ich an der UC Berkeley unterrichtet habe brauche ich manchmal mehr als eine Stunde um eine lokale Umgebung für eine kleine Gruppe von vielleicht zehn Studenten einzurichten . Und da Skill-Share-Klassen grundsätzlich über unbegrenzte Kapazitäten verfügen, der Aufwand, der allein mit der Einrichtung verbunden würde der Aufwand, der allein mit der Einrichtung verbunden ist, unerschwinglich lange dauern. Dies ist ein Kurs über Java, nicht über Computer und Repl, er hat Java bereits für Sie eingerichtet. Ich denke, dies ist eine äußerst wertvolle Ressource , die Sie verwenden können , und sie ist für unsere Anwendungsfälle kostenlos. Wenn wir nun diese Links auf den Folien besuchen, sieht es so aus, wenn wir den Link auf der Folie besuchen. Sobald Sie ein REPL-Konto erstellt haben, klicken Sie hier, um auf die Schaltfläche „ Grappled“ zu klicken. Jetzt haben wir eine Kopie des Projekts in Ihrem Konto. Dies ist der Code aus dem Video zur Programmierung von Anatomie. der Seitenleiste hier können Sie die Dateistruktur des Projekts erkunden. Wir können in den Ordner klicken, um seinen Inhalt zu erweitern, und wir klicken auf, Dateinamen einfügen, um deren Inhalt hier anzuzeigen. In diesem Beispiel druckt die Hauptmethode hier einfach Hello World. Also lasst uns die Plausibilität überprüfen. Fahren Sie fort und klicken Sie auf die grüne Schaltfläche. Sie können die kryptischen Texte hier ignorieren. Dies ist nur REPL, das System unter der Haube, das Build- und Run-Befehle ausgibt . Versuchen wir nun, eine weitere Welle zu forken und Änderungen daran vorzunehmen. Hier ist der Code aus dem Methodenvideo. Lass uns weitermachen und versuchen , dasselbe zu tun. Also hier ist der Link. Schon wieder. Lassen Sie uns auf Fork Ripple klicken und es auf unser Konto weiterleiten. Schauen wir uns jetzt an, was wir tun können. Zuerst überprüfen Sie einfach die Plausibilitätsprüfung mit der grünen Taste und stellen Sie sicher, dass diese Werte in der Hauptmethode ausgedruckt werden. Okay, wir können jetzt sehen , dass wir die Nummer drei ausgedruckt haben. Und wenn Sie sich den Code ansehen, sollte das, das sollte Sinn machen. Wir haben 4 von 12 und drucken das Ergebnis der Addition von 1,2 aus , was drei ist. Lassen Sie uns nun sehen, ob wir zwei Methodenaufrufe zusammenfügen können . Das wäre also das erste Beispiel für das Herumbasteln am Code. Nehmen wir an, wir haben eins zu plus eins hinzugefügt. Denn wenn man einen anruft, wird eine Nummer eins zurückgegeben. Klingt vernünftig , dass vielleicht einer zum Ergebnis der Addition von 1.2 hinzugefügt werden kann. Lass uns weitermachen und das ausführen. Jetzt siehst du, dass wir eine Fehlermeldung bekommen. Es heißt, wir haben 21 sagt keine Aussage, mach andere wie erwartet, ein Semikolon. Wie Sie vielleicht bemerkt haben, enden alle Java-Zeilen mit einem Semikolon, außer denen, die geöffnet sind, also neuen Codeblöcken wie Methodendeklarationen. Vielleicht wäre es also ratsam hier am Ende ein Semikolon hinzuzufügen. Lassen Sie uns nun fortfahren und diesen Code erneut ausführen. Okay, wir haben also immer noch das, kein Anweisungsfehler, aber zumindest haben wir den Semikolon-Fehler beseitigt. Keine Aussage ist also ein ziemlich großer Fehler. Also lass uns weitermachen und das googeln. Lass uns weitermachen und das kopieren und einfügen. Geh zu Google und geh zu Java. Keine Aussage. Wir klicken auf den ersten Ergebnisstapel. Overflow ist für die meisten Programmierer eine äußerst hilfreiche Ressource. Und wir können hier nach unten zur Antwort scrollen. Und beachte, was sie sagen. Sie sagen. Java schränkt die erlaubten Ausdruckstypen und die sogenannten Ausdrucksanweisungen ein. Es verbietet semantisch bedeutungslose Aussagen wie Null oder a plus b. Hey, weißt du was? Ist das nicht genau das, was wir vorhin gemacht haben. Wir addieren eins zu plus einem Semikolon, was im Grunde dasselbe ist wie ein Plus-B-Semikolon. Wenn wir etwas weiter nach unten scrollen, werden Sie sehen, dass sie ein Zitat aus der Java-Sprachspezifikation enthalten. Bestimmte Arten von Ausdrücken können als Anweisungen verwendet werden , indem ihnen ein Semikolon folgt. Und dann schauen wir uns die Liste hier an. Nun, wir haben eine Aufgabe, die als Beispiel für einen gültigen Ausdruck aufgeführt ist . Gehen wir also zurück zu unserem Code und verwandeln ihn in einen Aufgabensausdruck , der so aussehen würde. Y ist gleich eins plus eins addieren. Lass uns weitermachen und das noch einmal ausführen. Und jetzt wird der Code kompiliert und erfolgreich ausgeführt. Wir sehen das Ergebnis des Hinzufügens von 12.1 nicht , da wir es nicht ausgedruckt haben. Also lass uns weitermachen und diese Zeile hinzufügen und erneut ausführen. Okay, und jetzt haben wir eine Vier, was Sinn macht, weil wir eins zu zwei hinzugefügt haben und dann eine weitere Eins dazu hinzugefügt haben, was vier ist. Versuchen wir nun, eine Methode zu finden, eine andere Methode, die nicht das statische Schlüsselwort hat , und sehen, was passiert. Also vielleicht ist das ein Aufruf, zu dem diese Öffentlichkeit zurückkehren soll. Beachten Sie auch hier, dass ich das statische Schlüsselwort weggelassen habe. Versuchen wir nun zu sehen, was passiert, wenn wir 12 plus eins plus zwei machen. Lassen Sie uns weitermachen und diesen Code ausführen. Interessant. Diesmal haben wir einen weiteren Java-Fehler. nichtstatische Methode kann nicht aus einem statischen Kontext heraus referenziert werden . Sie lassen das sogar direkt auf die nichtstatische Methode hinweisen , die die Luft verursacht. Das ist also ein Java-Fehler, der eigentlich etwas hilfreicher ist. Sie sagen Ihnen, dass nichtstatische Methoden nicht von statischen Methoden aus verwiesen werden kann . Und zweitens ist unsere nichtstatische Methode. Jetzt haben wir nicht wirklich darüber gesprochen, was statisch bedeutet. Also mach dir darüber keine Sorgen. werden wir in einem zukünftigen Video sprechen und diese Fehlermeldung wird sinnvoller sein. Dann ist die wichtigste Erkenntnis wie wichtig es ist, an Code herumzubasteln. Obwohl wir den Code mehrfach kaputt gemacht haben, lernen wir Dinge über Java, die uns später helfen werden. Es ist am besten, dass Sie diese Fehler jetzt bei vielen Projekten im Zusammenhang mit diesen Videos machen jetzt bei vielen Projekten im Zusammenhang mit , damit Sie später bei der Arbeit an größeren Projekten nicht verwirrt werden. 5. Kontrolle: Willkommen Freunde. In diesem Video werden wir über Kontrolle sprechen. Um einen komplexeren Logikfluss in Java auszuführen, müssen wir zunächst einige gängige Operatoren verstehen. Zunächst haben wir einige grundlegende arithmetische Operatoren , die ziemlich selbsterklärend sind. Dies sind die Symbole für Plus, Minus und Zeiten, und sie funktionieren genau so, wie Sie es erwarten. Sie addieren, subtrahieren und multiplizieren jeweils. Der Schrägstrich ist Javas Divisionsoperator. Aber eine Sache, die Sie beachten sollten , ist , dass die Division von Ganzzahlen in Java eine Floordividierungsoperation ist, was bedeutet, dass auf eine Floordividierungsoperation ist, was bedeutet, die nächste Ganzzahl abgerundet wird, z. B. 3/2, und der normale Sprachgebrauch ist 1,5. In Java ist jedoch drei, in Florida zwei eins. Da wir ab 1,5% runterrunden heißt das Symbol Modulo oder kurz Mod. Es gibt den Rest einer Division zurück, z. B. 14 mod vier ist zwei. Warum? Denn vier geht 143 Mal rein und wir haben den Rest von zwei übrig. Wenn du nicht weißt, was ein Rest ist, empfehle ich dir, ihn nachzuschlagen, dann zu diesem Video zurückzukehren und die letzten paar Sekunden noch einmal dann zu diesem Video zurückzukehren abzuspielen um zu bestätigen, dass 14 Mod vier tatsächlich zwei entspricht. Mit dem Gleichheitszeichen weisen wir Variablen Werte zu, die wir zuvor gesehen haben, Beispiel wenn int x gleich eins ist. Wir haben auch einige boolesche Operatoren, wie der Name schon sagt. Dies sind Operatoren, die wahr oder falsch zurückgeben. Zunächst haben wir einige ziemlich selbsterklärende Operatoren größer als, kleiner als, größer oder gleich und kleiner als oder gleich. Dieses Ausrufezeichen wandelt „ True“ in „Falsch“ und „Falsch“ in „Wahr“ um. Auf der nächsten Folie werden wir sehen, wie die genaue Syntax funktioniert. Jetzt sind wir doppelt gleich. Das heißt, gib wahr zurück, wenn es gleich ist, gib False zurück, wenn es nicht gleich ist. Denken Sie daran, da es ziemlich schwierig ist, wird ein doppeltes Gleichheitszeichen verwendet, um die Gleichheit zu vergleichen. Ein einzelnes Gleichheitszeichen wird verwendet, um Werte zuzuweisen. Doppeltes Ampersand bedeutet, dass wahr zurückgegeben wird, wenn beide Bedingungen erfüllt sind, andernfalls wird Falsch zurückgegeben. Und diese doppelte gerade Linie bedeutet, dass wahr zurückgegeben wird, wenn der Bedingungen wahr ist, andernfalls wird falsch zurückgegeben. Dieser Operator ist den meisten Menschen möglicherweise nicht bekannt. Also hier ist es. Auf einer Logitech-Tastatur. Es befindet sich normalerweise neben den Klammertasten. Schauen wir uns ein Anwendungsbeispiel an. Erstens ist eins plus zwei offensichtlich 3,1 minus zwei ist offensichtlich negativ eins. ist nichts kniffliges. nun für den Quotienten, bei dem wir 3/2 haben, daran, Denken Sie nun für den Quotienten, bei dem wir 3/2 haben, daran, dass die Java-Division für ganze Zahlen für die Division 3/2 ist eins. Da wir von 1,5 abrunden, entspricht das Produkt sechs. ist nichts kniffliges. Drei mal zwei ist sechs, und Java macht damit nichts Besonderes. Der Rest ist gleich Eins, weil zwei zweimal in Fünf geht und wir eine Eins übrig haben, nachdem wir nach der Multiplikation von zwei mit zwei diesen booleschen Wert erhalten haben, wahre Unterstrich Null ist gleich wahr weil wir hat dieses Ausrufezeichen direkt vor einem Falschen hinzugefügt. Das Ausrufezeichen wandelt also die falschen Ausdrücke wahre Ausdrücke und wahre Ausdrücke in falsche Ausdrücke um. Das ist also wahr, ein wahrer Unterstrich Eins ist auch wahr, wahrer Unterstrich Eins ist auch wahr weil drei tatsächlich größer ist als minus Eins. wahre Unterstrich zwei ist auch wahr, weil wir Null negieren, gleich eins ist. Nun, Null ist nicht gleich Eins. Dieser Ausdruck in Klammern wird also falsch zurückgeben. Dann wird die Umkehrung davon wahr sein. Also wahr, unterstrich zwei, wird wahr. Falscher Unterstrich Null entspricht Falsch. Denn denken Sie daran, doppeltes Ampersand gibt nur dann wahr zurück, wenn beide Ausdrücke wahr sind. Ein wahrer Unterstrich Null ist wahr. Die Umkehrung von true underscore one wird jedoch falsch sein. Daher ist es nicht wahr, dass beide wahr sind, und daher ist das Ergebnis falsch. Schließlich wird wahr, Unterstrich drei, gleich wahr sein , weil wir dieses Ding mit doppelter gerader Linie nennen. Es gibt wahr zurück, wenn eine der Bedingungen wahr ist. In diesem Fall ist der falsche Unterstrich Null falsch. wahre Unterstrich Null ist jedoch wahr. Da also eine der Bedingungen wahr war, wird der gesamte Ausdruck als wahr ausgewertet. Nachdem wir uns mit den grundlegenden Operatoren befasst haben, schauen wir uns an, wie wir den Logikfluss innerhalb eines Programms steuern können . Zuerst haben wir das Wenn-Else-Muster. Wir platzieren einen booleschen Ausdruck in Klammern unmittelbar nach dem IF-Operator. Wenn dieser Ausdruck hier als wahr ausgewertet wird, führen wir die gesamte Logik innerhalb der geschweiften Klammern aus, die unmittelbar auf den booleschen Ausdruck folgen. In diesem Fall geben Sie x plus y zurück. Dieser Ausdruck ergibt falsch. Dann würden wir den gesamten Code, der die geschweiften Klammern einschließt, hier überspringen den gesamten Code, der die geschweiften Klammern einschließt, hier und stattdessen den Code innerhalb der geschweiften Klammern des Else-Falls hier ausführen , in diesem Fall wird Null zurückgegeben. erinnere mich an ein früheres Video , in dem ich erwähnt habe, dass die Rückkehr ein Terminal ist und wir nach einer Rückgabezeile keine Codezeilen haben sollten . Warum haben wir hier mehrere Rückleitungen? Denk darüber nach und ich werde die Antwort in 321 enthüllen. Der Grund dafür ist, dass bei jedem Aufruf der Methode immer nur einer dieser Codeblöcke ausgeführt wird. Diese Codeblöcke schließen sich zu 100% gegenseitig aus. Der subtile Punkt daran Returnminen terminal sind, ist, dass sie nur für den angegebenen Codeblock , in dem sie existieren, terminal sind. Und das macht Sinn , wenn Sie darüber nachdenken. Dieses erste Methodenbeispiel wurde so deklariert, dass es eine Ganzzahl zurückgibt. Stellen Sie sich vor, wir würden nur diese Rückgabezeile x plus y schreiben, aber wir hätten diese Nulllinie für die Rückgabe nicht. Stellen Sie sich dann weiter vor , wir übergeben ein x , sodass dieser Ausdruck als falsch ausgewertet wird. Dann würden wir diese Rückgabezeile überspringen und zum Else-Block kommen , wo wir keine Null mehr haben, dann gibt diese Methode nichts zurück. Und dann würde diese Methode dieses Versprechen brechen , dass sie eine Ganzzahl zurückgibt. Dies würde also zu einem Java-Kompilierungsfehler führen. Hier ist ein weiteres Wenn-Else-Muster, diesmal jedoch einigen Operatoren, über die wir bereits gesprochen haben. Auch hier schließen wir den gesamten booleschen Ausdruck in Klammern ein. Wenn x mod two gleich eins ist oder y mm R2 gleich Null ist. Dann führen wir den gesamten Codeblock aus, der X plus Y zurückgegeben hat. Andernfalls geben wir Null zurück, wenn beide Bedingungen falsch sind. Hier ist ein weiteres Beispiel, diesmal mit der Einführung eines neuen Operators. Sonst, wenn der Name des Operators ziemlich intuitiv ist und das tut, was Sie erwarten könnten, wenn dieser boolesche Ausdruck als falsch ausgewertet würde. Es würde die Rückgabezeile x plus y überspringen und dann versuchen der Else-If-Zeile enthaltenen booleschen Ausdruck auszuwerten in der Else-If-Zeile enthaltenen booleschen Ausdruck auszuwerten. Wenn dieser Ausdruck x mod three gleich eins ist wahr ausgewertet wird, geben wir x zurück. Andernfalls, wenn dieser Ausdruck falsch wäre, würden wir return x überspringen und zum Fall else kommen, in diesem Fall wir geben y zurück. Lassen Sie uns nun über das Wildmuster sprechen. Manchmal kann es hilfreich sein, einen bestimmten Codeblock mehrmals auszuführen. Angenommen, Sie möchten Zahlen von eins bis eintausend ausdrucken . Eine Möglichkeit, dies zu tun, wäre, system.out.print LAN 1.000 Mal auszuschreiben . Eine andere Möglichkeit, dies zu tun, wäre jedoch, einen einzelnen Systempunkt mit Punkt und Druck LN zu schreiben und ihn in einen Wildcode-Block einzuschließen. Also hier ist ein Beispiel. Das funktioniert so, dass wir zuerst den Ausdruck hier auswerten. Und obwohl n größer als Null ist, wir, falls das stimmt, führen wir, falls das stimmt, den gesamten Code innerhalb dieses Codeblocks aus. Am Ende des Codeblocks sind wir zum Anfang zurückgekehrt und werten diesen Ausdruck erneut aus. Ist n größer als Null? Wenn ja, führen wir den Codeblock erneut aus. Und dann wiederholen wir und kehren immer wieder zu diesem booleschen Ausdruck zurück, bis er falsch ist. Diese Syntax hier ist Ihnen vielleicht etwas ungewohnt. Lassen Sie uns das aufschlüsseln, beginnend mit dieser Zeile, n ist gleich n minus eins. Denken Sie daran, dass der Gleichheitsoperator bedeutet, einer Variablen n einen Wert zuzuweisen. Bevor wir n jedoch einen Wert zuweisen können, müssen wir zuerst verstehen, welchen Wert dieser Ausdruck hat, n minus eins. Im Grunde genommen subtrahiert es zuerst eins von n und weist dann diesen Wert wieder n zu. Im Grunde genommen verringern wir also einfach den Wert von n um eins. Wenn n also als Fünf kommt, werten wir fünf minus 15 aus, minus eins ist vier, und dann weisen wir n den Wert Vier zurück. Also ist n jetzt für diese anderen beiden Zeilen und minus, minus und minus ist gleich eins, sie sind eigentlich beide Abkürzungen für dasselbe, n ist gleich n minus eins. Dieser gesamte Codeblock verringert also effektiv n bei jeder Ausführung um drei. ähnliche Syntax gibt es, wenn Sie den Wert von n erhöhen möchten Wir könnten einfach n plus plus und plus gleich eins und n entspricht n plus eins. Ich möchte auch eine Warnung aussprechen. Java führt während der Kompilierung viele Plausibilitätsprüfungen durch. Eine Sache, die jedoch nicht überprüft ist, ob Ihr Loop beendet wird. Stellen Sie sich z. B. vor, dass sich diese drei Linien alle inkrementieren. Wir erhöhen den Wert von n. Also ist n plus plus und plus gleich eins und n gleich n plus eins. Stellen Sie sich nun vor, wir übergeben auch einen Wert von n, der bereits größer als Null ist, dann erhöht dieser Codeblock n noch weiter. Und dieser Ausdruck hier und größer als Null wird niemals falsch sein. Deshalb wird dieser Codeblock für immer laufen. In diesem Fall wird Ihr Code nicht fehlerhaft und der Compiler wird auch nicht fehlerhaft sein. Es läuft einfach ewig weiter bis Sie das Problem erkennen und den Code beenden. Seien Sie also vorsichtig, wenn Sie Loops schreiben und stellen Sie sicher, dass Ihre Bedingung irgendwann beendet wird. Hier ist unser endgültiges Kontrollmuster für dieses Video. Hier ist ein Beispiel. Wir haben vier, gefolgt von drei Ausdrücken in Klammern eingeschlossen und durch Semikolons getrennt sind. Der erste Ausdruck befindet sich im Initialisierungsschritt. Die Variable i existiert in dieser Methode noch nicht, also deklarieren wir sie beide und weisen sie einem Wert Null zu. Als Nächstes haben wir den booleschen Ausdruck, ähnlich dem booleschen Ausdruck in der while-Schleife. Dies ist ein boolescher Ausdruck, der ausgewertet wird , bevor der Codeblock ausgeführt wird. Wenn es wahr ist, führen wir den Codeblock aus. Wenn es falsch ist, brechen wir aus dem Codeblock aus und führen jeden Code aus, der nach dieser For-Schleife kommt. Schließlich haben wir den Staat geändert. Dieses I plus plus wird ausgeführt, nachdem der Codeblock ausgeführt wurde. Da wir also bei Null beginnen und laufen, bis I nicht mehr kleiner als n ist und I bei jeder einzelnen Iteration um eins zunimmt. Wir drucken praktisch nur Zahlen von Null bis n minus eins. Hier sind ein paar weitere Beispiele für For-Loops. Beachten Sie hier, dass wir i initialisieren können, eine völlig separate Codezeile. Wenn für die For-Schleife keine Initialisierung erforderlich ist. Lassen Sie mich einfach ein Semikolon setzen und den ersten Initialisierungsausdruck leer lassen . Hier haben wir ein weiteres Beispiel. Ich möchte, dass Sie die Initialisierung hier besonders zur Kenntnis nehmen . Erinnern Sie sich an unsere vorherige Lektion , dass, sobald eine Variable deklariert wurde, zukünftige Verweise auf diese Variable keinen Typ mehr benötigen , um angegeben zu werden. Das ist der Grund, warum wir hier nur sagen, dass I gleich drei ist, aber nicht, dass int I gleich drei ist. Dieselben Regeln gelten sowohl für den Initialisierungsausdruck auch für eigenständige Ausdrücke außerhalb der For-Schleifenklammern. Jetzt fragen Sie sich vielleicht Was ist der Unterschied zwischen einer For-Schleife und einer while-Schleife, außer der Tatsache , dass die Syntax unterschiedlich ist? Nun, die Antwort ist, dass sie eigentlich dasselbe sind. Der einzige große Unterschied ist wirklich ihre Syntax. Denken Sie also nicht zu lange darüber was die Unterschiede zwischen diesen beiden sein könnten. Hier ist der Link zu dem in diesem Video verwendeten Code. Bitte klickt wie immer auf den Link, klickt zum Grapple und experimentiert am Code. Eine Sache, die Sie dieses Mal ausprobieren sollten , ist, wenn Sie auf Java-Fehler stoßen, die Sie möglicherweise als kryptisch empfinden, und Sie dazu ermutigen , diese Fehlermeldung zu kopieren und in Google einzufügen. Die Grundursache von Fehlermeldungen ist normalerweise ziemlich ähnlich. Und oft findet man wirklich hilfreiche Ergebnisse Programmierforen , die Google Direct C2 anbietet. 6. Objekte Teil 1: Willkommen Freunde. Heute werden wir über Objekte sprechen. Jetzt wurde mir klar, dass, das klingt wirklich dämlich, dass wir über Objekte sprechen werden. Aber ich verspreche dir, dass du am Ende dieser Lektion etwas Wertvolles lernen wirst . Bevor wir uns nun mit dem Inhalt dieses Videos befassen, möchte ich versuchen, Sie davon zu überzeugen, warum Sie überhaupt für Objekte interessieren sollten. Bisher haben wir uns nur mit dem funktionalen Aspekt von Java befasst , wie Methoden und Steuerlogik. Java ist jedoch eigentlich das, was wir eine objektorientierte Sprache nennen. Das bedeutet, dass wir unsere Programme als Objekte mit Verhalten betrachten und nicht als eine Sammlung von Funktionen. Das ist vielleicht etwas schwer zu verstehen. Eine Analogie, an die Sie denken könnten ist, wie Sie ein Videospiel betrachten. Sagen wir Mario, z. B. falls Sie mit Mario nicht vertraut sind. Hier ist ein Screenshot aus einem der Mario-Spiele. Dieser Typ hier ist Mario. Und die Prämisse des Spiels ist, noch eine Reihe von Hindernissen zu überwinden, um eine Prinzessin zu erreichen. Und diese komisch aussehenden Pilz-Dinger hier, sie bewegen sich normalerweise und wenn sie dich berühren, verlierst du ein Leben. Nun, ein Mario-Spiel ist offensichtlich ein Stück Code, oder? Es gibt wahrscheinlich einen Code, der die Entfernung vom Pilz zu Mario überprüft. Und in der Entfernung ist es weniger als ein Schwellenwert. Dann subtrahieren wir eins von Marios Leben. Aber so denken wir nicht über dieses Spiel. Wir betrachten diese Pilze nicht als Methoden, die ständig nach der Entfernung zu Mario suchen. Und wir glauben nicht, dass ein Mario eine Reihe von Methoden ist , die ständig seine vertikale und horizontale Geschwindigkeit berechnen. Wir stellen uns Mario einfach als eine einzige Einheit vor, die Spring- und Laufverhalten zeigt. Und wir betrachten diese Pilze als Wesen, die aktiv versuchen, uns davon abzuhalten, die Prinzessin zu retten. Dieser Paradigmenwechsel ist derselbe, den wir in Richtung Java als funktionale Sprache im Vergleich zu Java als objektorientierter Sprache haben. Auch wenn wir kein Videospiel programmieren, finden es Entwickler nützlich, sich ihren Code als diskrete Objekte vorzustellen Verhalten zeigen, anstatt als eine Sammlung abstrakter Funktionen. Wenn Sie an immer größeren Java-Projekten arbeiten, wird es deutlich einfacher das Programm als Ganzes zu verstehen. Wenn Sie ein solides objektorientiertes Design haben, denn so nehmen Menschen die Welt als eine Sammlung von Objekten wahr. Hier ist ein Beispiel für eine Klasse, die objektorientierte Programmierung verwendet, sowie für eine Hauptmethode, die diese Klasse als Objekt verwendet. Zunächst möchte ich darauf hinweisen, dass trotz einiger unbekannter Syntax hier tatsächlich viel gibt, das wir bereits behandelt haben. Hier. Wir haben Pakete, wir haben öffentliche Kurse. Wir haben eine Hauptmethode, die als Einstiegspunkt für das Programm dient. Und wir haben hier Methodendeklarationen. Und wir haben hier einen if else Block mit einem booleschen Ausdruck. Die Menge an Dingen, die wir wissen müssen, um objektorientiertes Programmieren zu verstehen, ist also objektorientiertes Programmieren zu verstehen überhaupt nicht schlecht. Lassen Sie uns hier über diesen Codeblock sprechen. Das nennen wir einen Konstruktor. Eine Möglichkeit, zu erkennen, dass es sich einen Konstruktor handelt, besteht darin, dass es keinen Rückgabetyp gibt und die Methodendeklaration und der Name dieses Codeblocks mit dem Namen der Klasse übereinstimmen. Aber abgesehen von der Tatsache , dass sich die Deklaration dieses Codeblocks von der einer Methode unterscheidet. Wirkt im Grunde wie eine Methode. Und dieser Codeblock wird bei der Instanziierung ausgeführt. Bei der Instanziierung erstellen wir eine neue Instanz eines Objekts. Es könnte etwas schwierig sein , Beispiele für diese Hundeklasse zu verstehen . Erinnern wir uns stattdessen an unsere vorherigen Beispiele. Wenn wir eine Integer-Variablen erstellen. Stellen Sie sich vor, wir haben zwei ganzzahlige Variablen, x und y. Vielleicht ist x gleich eins und y ist gleich zwei. Da sowohl x als auch y ganze Zahlen sind, können Sie sie sich als zwei Instanzen des Integer-Typs vorstellen . Nur sie haben unterschiedliche Werte. In ähnlicher Weise können Sie sich vorstellen, dass wir zwei Variablen haben könnten, x und y, die beide Dog eingegeben haben und unterschiedliche Werte für ihren Namen und ihr Alter haben. Eine Instanz eines Objekts ist genau das, wonach es sich anhört. Es ist eine Version eines Objekts. werden wir darüber sprechen, wie man ein Objekt instanziiert Im nächsten Video werden wir darüber sprechen, wie man ein Objekt instanziiert. Moment müssen Sie nur wissen , dass bei der Instanziierung Im Moment müssen Sie nur wissen, dass bei der Instanziierung dieser Codeblock als erstes ausgeführt wird. Und wir werden auch darüber sprechen, was das eigentlich bedeutet. Diese.Name entspricht dem Namen und dieser Punkt entspricht dem Alter. Dies hier sind Beispiele für was wir Instanzvariablen nennen. Genauer gesagt deklarieren sie Instanzvariablen, initialisieren sie aber nicht mit einem bestimmten Wert. Wir könnten diese Variablen und den Anfangswert bei der Deklaration angeben , z. B. der private Stringname entspricht Bob, genau hier in dieser Zeile. Normalerweise delegieren wir jedoch die Variableninitialisierung an den Konstruktor , da der Konstruktor sowieso als Erstes aufgerufen wird. Und vielleicht ist es keine kluge Idee, all unseren Hunden einen Namen zu geben, Bob. Das wäre für all unsere Welpenfreunde äußerst verwirrend . Wie Sie sehen können, müssen diese Instanzvariablen wie jede andere Variable in Java müssen diese Instanzvariablen einen explizit deklarierten Typ haben. Sie benötigen auch Zugriffsmodifikatoren, genau wie Klassen und Methoden. Es gibt zwei wichtige Unterschiede zwischen Methodenvariablen und Instanzvariablen. Der erste Unterschied besteht darin, dass Instanzvariablen bei Methodenaufrufen bestehen bleiben. Eine Methodenvariable existiert nur so lange, wie die Methode noch läuft. Sobald eine Methode zurückkehrt alle ihre Variablenwerte aus dem Speicher gelöscht. Bei Objekten bleiben diese Instanzvariablenwerte bestehen solange die Objektinstanz existiert. Dies wird sinnvoller sein, wenn wir im nächsten Video ein Beispiel für die Objektinstanziierung sehen . Der zweite Unterschied sind ihre Zugriffsregeln. Methodenvariablen sind nur innerhalb des innersten Codeblocks zugänglich , in dem sie erstellt wurden. ZB wenn wir eine While-Schleife in der Methode getName hätten. Und innerhalb dieser while-Schleife haben wir eine Variable erstellt. Variable wäre nur innerhalb des Codeblocks der while-Schleife zugänglich . Instanzvariablen kann jedoch von allen nichtstatischen Methoden innerhalb derselben Klasse zugegriffen werden. Wir werden im nächsten Video darüber sprechen, was Statik eigentlich bedeutet. Vorerst müssen Sie jedoch nur wissen, dass eine nichtstatische Methode eine Methode ist, die keine statische Methode hat, bevor sie Rückgabetyp und die Methodendeklaration deklariert werden. Wie Sie hier sehen können, können wir den Wert von Name und Alter aus diesen Methoden hier zurückgeben . Diese Instanzvariablen sind für diese Methoden zugänglich , da diese Methoden nicht statisch sind Das Präfix dieses Punktes teilt Java , dass wir uns auf eine Instanzvariable namens name beziehen. Nun, Sie denken vielleicht, dass dies eine lächerliche Anforderung ist , dass wir noch mehr Sprachregeln hinzufügen mussten um auf Instanzvariablen zu verweisen. Aber dafür gibt es einen guten Grund. Kannst du sagen, was es ist? Pausiere das Video und ich werde die Antwort in 321 enthüllen. Der Grund dafür ist, dass wir möglicherweise Namenskonflikte zwischen Instanzvariablen und Methodenvariablen haben. Ein Beispiel dafür befindet sich tatsächlich hier im Konstruktor. Wir haben den Variablennamen in den Argumenten des Konstruktors deklariert. Wenn ich das Präfix in dieser Zeile weglassen würde , this.name ist gleich name, dann hätten wir im Grunde nur Name gleich Name, was nichts bewirkt, weil name bereits gleich name ist. Dieses Präfix ist also wichtig für die Unterscheidung zwischen Instanzvariablen und Methodenvariablen. Wenn es dieses Präfix nicht gibt und es eine Methodenvariable mit demselben Namen wie die Instanzvariable gibt, Java davon aus, dass Sie sich auf die Methodenvariable beziehen. Hier ist der Code, der in diesem Video verwendet wird. Bitte klicken Sie wie immer auf den Link, klicken Sie auf Fork Ripple und experimentieren Sie. Wenn Sie auf kryptische Fehlermeldungen stoßen, versuchen Sie bitte, Ihre Fehlermeldung in Google einzufügen und sehen Sie, was andere Leute dazu sagen. Andernfalls können Sie in diesem Kurs gerne Fragen stellen. 7. Objekte Teil 2: Willkommen Freunde. In diesem Video werden wir unsere Diskussion über Objekte abschließen. Wir haben die Objektinstanziierung im vorherigen Video erwähnt. Mal sehen, wie es funktioniert. Denken Sie zunächst daran, dass der Hundekonstruktor so aussieht. Es hat zwei Argumente, Name und Alter. In unserer Hauptklasse erstellen wir zwei Instanzen der Dunkelklasse auf diese Weise. Zunächst spezifizieren wir gemäß der Java-Tradition explizit den Typ der Variablen, die wir erstellen, nämlich den dunklen Typ. Der nächste Teil hier, es sieht fast wie ein Methodenaufruf aus, außer dass wir dieses Schlüsselwort haben, neu. Das neue Schlüsselwort gepaart mit dem Konstruktoraufruf weist Java an, zunächst Speicher für eine Kopie des Dog-Objekts zuzuweisen. Und sobald dieser Speicher zugewiesen wurde, wird der Konstruktor aufgerufen. Code ausführen, der in der Konstruktordefinition enthalten ist. Nachdem diese beiden Codezeilen ausgeführt wurden, haben Bobby und Sam nun ihren Namen und ihr Alter in den Instanzen für den ersten Hund und den zweiten Hund gespeichert . Da wir diese Daten in ihren Instanzvariablen speichern , die persistent bleiben. Lassen Sie uns nun über Statik sprechen. Hier ist der Hundekurs aus dem letzten Video, aber mit ein paar Add-Ons. Wir haben das statische Schlüsselwort zwischen dem Zugriffsmodifikator und dem Typ in der Methoden - und Variablendeklaration hinzugefügt zwischen dem Zugriffsmodifikator und . Denken Sie daran, dass Variablen und Methoden ohne das Schlüsselwort static oder non-static, auch als Instanzvariablen und Instanzmethoden bezeichnet werden. Wie der Name schon sagt, sind Instanzvariablen und Instanzmethoden spezifisch für Instanzen eines Objekts. Statische Variablen und statische Methoden sind jedoch das Gegenteil. Sie können nicht an eine bestimmte Instanz eines Objekts gebunden werden. Dieses dunkle Beispiel könnte Ihnen helfen, das zu verstehen. Wenn Sie die Anzahl der Beine eines Hundes wissen möchten, benötigen Sie einen bestimmten Hund, um diese Frage zu beantworten? Natürlich nicht. Sie wissen, dass Hunde im Allgemeinen vier Beine haben. Die Anzahl der Beine eines Hundes ist nicht spezifisch für ein bestimmtes Exemplar eines Hundes. Wenn Sie andererseits den Namen oder das Alter des Hundes wissen möchten , benötigen wir einen ganz bestimmten Hund, um diese Frage zu beantworten. Instanzmethoden und Variablen sind also spezifisch für bestimmte Instanzen der Klasse. Statische Methoden und Variablen gelten für alle Instanzen der Klasse. Schauen wir uns an, wie wir statische Methoden im Vergleich zu Instanzmethoden abfragen . Da non legs ein öffentliches und statisches Attribut ist, können wir direkt mit dog dot non legs darauf zugreifen. Beachten Sie, dass Hund keine spezifische Instanz der Hundeklasse ist. Die Hundeklasse selbst hat keinen Namen oder Alter. Wir können auch ohne Instanz direkt auf get numb tails auf die Dot-Klasse zugreifen . das Alter zu ermitteln, müssen wir jedoch über eine bestimmte Instanz darauf zugreifen. Zweiter Hund, da nur bestimmten Hunden Altersdaten zugeordnet sind. Beachten Sie auch, dass wir weiterhin von einer Instanz eines Objekts aus auf statische Methoden und Variablen zugreifen können statische Methoden und Variablen . Und noch einmal, wenn Sie darüber nachdenken, ist es ziemlich intuitiv. Ich kann Ihnen das Alter des Hundes ohne einen bestimmten Hund nicht sagen, aber ich kann Ihnen nicht sagen, wie viele Beine und Schwänze Hunde im Allgemeinen haben, wenn ich Ihnen eine spezifische Dr. Referenz gebe. Hier ist der Code, der in diesem Video verwendet wird. Bitte klickt wie immer auf den Link für den Ripple und bastelt am Code, um zu sehen, was funktioniert und was nicht. 8. Kommentare: Willkommen Freunde. In diesem Video werden wir über Kommentare sprechen. Manchmal kann Java-Code sehr verwirrend sein, insbesondere wenn Sie einen Codeblock haben, der andere Methoden aufruft und diese Methoden noch mehr Methoden aufrufen. Dies führt später zu Problemen da Sie feststellen werden, dass Sie manchmal schon nach ein paar Tagen Probleme haben, Ihren Code zu verstehen . Und falls Sie jemals planen, mit anderen Personen zusammenzuarbeiten, müssen Sie sicherstellen , dass Ihre Mitarbeiter Ihren Code auch verstehen können. Um die Lesbarkeit des Codes zu verbessern, bietet Java Entwicklern die Möglichkeit, ihrem Code menschenlesbare Notizen hinzuzufügen . Hier ist ein Beispiel. Inline-Kommentaren wird ein doppelter Schrägstrich vorangestellt und sie werden normalerweise entweder nach dem Code in derselben Zeile oder in der Zeile unmittelbar über dem Code hinzugefügt entweder nach dem Code in . Der Kommentar beschreibt die Texte, die fallen. Der doppelte Schrägstrich ist ein für Menschen lesbarer Text, der von Java nicht ausführbar ist. Es dient einzig und allein dazu, dem menschlichen Leser zu helfen, das Programm beim Verstehen mit dem nebenstehenden Code leistet. Hier ist ein weiteres Beispiel. Das nennen wir einen Java-Doc-Kommentar. Es gibt Tools, die Dokumentation für Ihren Code generieren , indem sie Dateien nach Kommentaren durchsuchen , die diesem Format entsprechen. Wir werden in diesem Kurs kein Java-Dokumentationstool verwenden, aber es ist gut, wenn Sie wissen, wie man ordentliche und schöne Methodenbeschreibungen schreibt . Java, Dokument, Kommentare oder mehrzeilig. Sie beginnen mit einem Schrägstrich, einem Stern, einem Stern und einem Sternstrich. Zwischenzeilen sollten am Anfang ein einzelnes Sternchen haben . Typischerweise enthalten Java-Punkt-Kommentare eine allgemeine Beschreibung der Methode, wie wir sie hier haben, gefolgt von den Tags Program und at return. Wenn wir mehrere Argumente hätten, hätten wir mehrere App-Tags pro m. Jeder würde den Umfang, den es beschreibt, mit FirstName versehen, gefolgt von einer Beschreibung des Arguments. Das Return-Tag ist für eine nicht ungültige Methode vorhanden und enthält eine Beschreibung dessen, was zurückgegeben wird. Es ist nicht notwendig, sich strikt an dieses Format zu wenn Sie keine Dokumentation mit dem Java-Doc-Tool generieren . Aber auch wenn Sie es nicht sind, empfiehlt es sich im Allgemeinen, dieses Format zu befolgen, wann immer Sie können. Hier ist der Code, der in diesem Video verwendet wird. Bitte besucht den Link, klickt, Fork, Ripple und bastelt an dem Code. 9. Arrays und ArrayLists: Willkommen Freunde. Herzlichen Glückwunsch , dass Sie es im Kurs bis hierher geschafft haben. In diesem Video werden wir über Arrays und ArrayLists sprechen . Vor ein paar Videos. Als wir uns das erste Mal mit Java-Typen , haben wir den Array-Typ erwähnt, aber wir sind nicht wirklich detailliert darauf eingegangen , was er ist. Heute. Wir werden uns die Arrays noch einmal viel genauer ansehen. Denken Sie daran, dass wir zum ersten Mal ein String-Array in der Methodensignatur der Hauptmethode gesehen haben. Hier ist eine Möglichkeit, wie wir ein Array erstellen können. Wenn Sie bereits wissen, welche Werte wir Initialisierung verwenden möchten, können wir sie direkt wie folgt auffüllen indem wir den Typ des Arrays angeben, in diesem Fall ein Integer-Array, und indem wir Werte und geschweifte Klammern wie diese. Wenn Sie noch nicht wissen, welche Werte Sie verwenden möchten, können wir zunächst ein Array von Nullen mit dem neuen Schlüsselwort initialisieren und die Länge des Arrays in Klammern angeben. Wenn wir dann bereit sind, das Array zu füllen, können wir die Elemente direkt so setzen. Ein paar Dinge, die es hier zu beachten gilt. Erstens ist die Länge eines Arrays fest und kann nicht mehr geändert werden, sobald es erstellt wurde. Also werden sowohl Array eins als auch Array zwei die Länge drei haben und das werden sie immer sein. Also. Zweitens beginnen Array-Indizes bei Null. In vielen Sprachen, einschließlich Java, fast allen datenstrukturübergreifenden Indizierungen beginnen wir bei fast allen datenstrukturübergreifenden Indizierungen ebenfalls bei Null. Wenn Sie nun alle Elemente des Arrays nacheinander ausdrucken möchten , erstellen wir eine Variable I, die auf den Index des Arrays verweist. Und wir erhöhen diesen Wert I um eins, bis wir die Länge des Arrays erreicht haben, die wir anhand dieses Attributs length ermitteln können. Wir können mit diesen Klammern und dem Index von 01 oder zwei auf ein einzelnes Element im Array zugreifen , was sich auf das erste, zweite bzw. dritte Element im Array bezieht . Das sind also Arrays. Als nächstes haben wir ArrayLists , eine flexiblere Version von Arrays. Ähnlich wie Arrays. Arraylisten sind auch geordnete Sammlungen von Elementen. Ein wichtiger konzeptioneller Unterschied besteht jedoch darin, dass ArrayLists in der Größe veränderbar sind und ArrayLists auch eine unterschiedliche Syntax haben. Lassen Sie uns diese Unterschiede untersuchen. Die erste ist, dass ArrayList auf diese Weise initialisiert werden. Das Ding in den spitzen Klammern gibt den Elementtyp in der geordneten Sammlung an. Und wir müssen nur den Typ explizit auf der linken Seite der Initialisierung angeben . Diese Zeile würde eine ArrayList mit der Länge Null instanziieren . Mir ist auch aufgefallen, dass wir hier eine große Ganzzahl anstelle von Int in Kleinbuchstaben verwenden . Das nennen wir ein Feld, um Java einzugeben. Es ist für diesen Kurs nicht besonders relevant, daher müssen wir nicht zu viel Zeit damit verbringen. Wir nennen den Typ int einen primitiven Typ und den Integer-Typ mit einem großen I einen Referenztyp. Ints und Integer sind im Allgemeinen interkonvertierbar und werden eins zu eins einander zugeordnet. ZB würde ein Integer-Wert von Eins einem Integer-Wert von Eins entsprechen. Alles, was Sie wirklich wissen müssen , ist , dass der Referenztyp Integer mit einem großen I für einige Datenstrukturen wie ArrayLists benötigt wird . Da ArrayLists nur Referenztypen als Elemente akzeptieren können . So wurde Java entworfen. Gehen Sie also nicht zu sehr darauf ein. Behalte es einfach im Hinterkopf. Wenn Sie jemals versucht haben, eine Array-Liste zu verwenden, wenn Sie das nächste Mal einkaufen gehen. Als Nächstes fügen Sie der Liste Elemente wie folgt hinzu. Also eins ist bei Index 012 ist bei Index eins, minus sieben ist bei Index 2,19 ist bei Index drei. Wir können auch Elemente aus der Liste entfernen, wodurch das Element am angegebenen Index gelöscht und die Listengröße um eins verringert wird. In diesem Fall entfernen wir den Index zwei , der in unserem Beispiel der Wert von minus sieben sein wird . Nachdem wir diese Zeile ausgeführt haben, haben wir also den Wert eins bei Index Null, den Wert 12 bei Index eins und den Wert 19 bei Index zwei. Da alle Werte nach Index zwei um eins verschoben werden , um das Löschen zu berücksichtigen. Ein weiterer Unterschied ist die Art und Weise, wie wir die Länge des Arrays ermitteln. While I erase hatte eine öffentliche Attributlänge. Arraylisten haben eine öffentliche Methode namens size. Wir haben auch den Listenpunkt get here anstelle von Klammern , um auf Elemente zuzugreifen. stellen wir viele Methoden und Attribute In diesem Video stellen wir viele Methoden und Attribute vor, die spezifisch zum Löschen einer ArrayList sind, was etwas überwältigend sein könnte. Wenn du dich so fühlst. Mach dir keine Sorgen. Informatik ist keine Disziplin, die auf Auswendiglernen basiert. Wenn Sie jemals etwas Kleines vergessen oder versuchen, zusätzliche Funktionen für diese Datenstrukturen zu finden , googeln Sie es einfach. Google-Ergebnisse für grundlegende Programmierfragen sind in der Regel sehr relevant, da viele Leute vor Ihnen wahrscheinlich dieselben Fragen hatten , als sie mit dem Programmieren begannen. Abschließend möchte ich Ihnen eine kurze Methode zeigen , wie Sie die Liste durchgehen können. Dieser Codeblock macht genau dasselbe wie dieser Codeblock über dem Int-Element. Er teilt Java mit, dass wir jedes Element in der Liste als eine Variable behandeln, die als jedes Element in der Liste als eine Variable behandeln, die als Element vom Typ int bezeichnet wird . und die Doppelpunktliste teilt Java mit, dass dies die Liste ist, über die wir iterieren möchten. Als Randnotiz hätten wir den Typ hier auch als Integer mit einem großen a schreiben können. Denken Sie daran, dass int und integer im Allgemeinen interkonvertierbar sind. Wir mussten nur Integer mit einem großen I verwenden wenn wir deklarierten, dass der Typ der ArrayList zunächst angezeigt wird. Wie dem auch sei, bei der ersten Iteration dieses Codeblocks wird das Element an eins gebunden. In der zweiten Iteration wird es an 12 gebunden sein. Du verstehst die Idee. Java übernimmt mit dieser vereinfachten Syntax lediglich die Inkrementierung der Indexvariablen für Sie. Jetzt fragen Sie sich vielleicht, ArrayList kann alles , was Arrays können. Und ArrayLists haben sogar zusätzliche Funktionen, da sie in der Größe geändert werden können. Warum haben die Java-Entwickler die Sprache nicht einfach entfernt oder aus der Sprache gelöscht? Pausiere das Video und ich werde die Antwort in 321 enthüllen. Der Grund dafür ist, dass bei der Verwendung einer ArrayList anstelle eines Arrays Leistungseinbußen auftreten. Arraylist mit Referenztypen sind im Allgemeinen etwas langsamer als Arrays, die primitive Typen verwenden. den meisten Anwendungsfällen ist der Leistungseinbußen jedoch nicht wirklich spürbar genug, um einen Unterschied zu machen. Aber es ist etwas, das Sie im Hinterkopf behalten sollten, falls Sie einmal an etwas arbeiten, das latenzempfindlich ist, z. B. wenn Sie einen ultrahochpräzisen Laser programmieren oder versuchen, einen zu bauen ultraschneller Aktienhandel. Aber hier ist der Code, der dieses Video verwendet. Bitte besuchen Sie den Link, klicken Sie auf Fork, Ripple und basteln Sie an dem Code. 10. Sudoku: Hallo Freunde. Herzlichen Glückwunsch zum Abschluss aller Lehrvideos in diesem Kurs. Heute können wir das Gelernte nutzen, um ein interaktives visuelles Spiel zu entwickeln ein interaktives visuelles Spiel , das du in meinem Lebenslauf und mit deinen Freunden teilen kannst. Ich habe auf der Registerkarte Projekte und Ressourcen ein ziemlich umfassendes Dokument verlinkt . Fahren Sie fort und klicken Sie auf diesen Link. Und es sollte Sie zu diesem Dokument führen. Ich lasse Sie den Großteil dieses Dokuments in Ihrer Freizeit lesen , aber ich werde es jetzt kurz durchgehen, nur damit Sie zumindest eine allgemeine Vorstellung davon haben , was vor sich geht. Vorab möchte ich sagen , dass dieses Projekt nicht übertrieben, einfach oder innerhalb von 10 Minuten abgeschlossen sein soll . Ich weiß, dass einige der anderen Kurse auf dieser Plattform kinderleicht sind, wie zum Beispiel eine Klasse zu schreiben, die drei Methoden enthält. Aber ich glaube nicht wirklich, dass du so viel lernen wirst, wenn das alles ist, was du tust nachdem du dir diese Videos angesehen hast. Dieses Projekt erfordert also möglicherweise mehr Nachdenken als andere Projekte, wenn Sie andere Java-Kurse auf dieser Plattform besucht haben , aber lassen Sie sich nicht entmutigen. Es wurde so konzipiert. So können Sie Erfahrung mit einer echten Codierungsaufgabe sammeln, die Sie tatsächlich dazu ermutigt, objektorientierte Programmierung zu verstehen. Lesen Sie unbedingt das gesamte Dokument. Es ist wahrscheinlich, dass Sie viele Fragen zu dem Projekt haben , die hier bereits beantwortet wurden. Bevor du anfängst. Stellen Sie sicher, dass Sie ein Konto auf repl it.com erstellt haben ein Konto auf repl it.com und dass Sie Ihre E-Mail-Adresse bestätigt haben. Andernfalls werden Sie nicht in der Lage sein, die Dateien zu forken und Änderungen an ihnen vorzunehmen. Sobald Sie dies getan haben, besuchen Sie diesen Link und nehmen Sie an der Verlosung teil. Dieses Projekt, das wir hier verlinkt haben, wird Skelett genannt. Das bedeutet, dass ein Teil des Codes für Sie erledigt wurde. Viele Methoden wurden leer gelassen und enthalten einen Kommentar zum Erstellen von Codeblöcken, bei denen der Todo-Kommentar bedeutet, dass Sie den Code für diesen Abschnitt eingeben mussten. In diesem Projekt werden Sie Sudoku implementieren , falls Sie sich nicht auskennen. Ich habe eine Beschreibung dieses Spiels im Übersichtsbereich hier geschrieben . Hier habe ich eine kurze Beschreibung der einzelnen Dateien in diesem Projekt geschrieben . Die Reihenfolge, in der diese aufgeführt sind, ist die Reihenfolge, in der Sie das Projekt abschließen sollten. Du solltest dich zuerst selbst machen, dann rudern, dann blockieren, dann brettern. Der Hauptteil wurde bereits für dich erledigt. Hier habe ich aufgeschrieben, was ich dir gerade ausdrücklich gesagt habe. Nachdem Sie jeden Kurs abgeschlossen haben, sollten Sie alle Komponententests durchführen und sicherstellen, dass sich die Komponententests auf die Klasse beziehen, die Sie gerade bestanden haben. Zuerst. Nachdem Sie die Zelle ausgefüllt haben, sollten Sie sicherstellen, dass alle Einheiten mit dem Verkaufspass verknüpft sind. Nachdem Sie die Zeile abgeschlossen haben, sollten Sie sicherstellen , dass alle Komponententests, die mit Zelle und Zeile verknüpft sind, bestehen usw. Im nächsten Abschnitt erfahren Sie, wie Sie den Test tatsächlich ausführen. Im linken Bereich des Werkzeugbereichs auf Repl it können Sie auf Tools zugreifen. Werkzeuge. Und nachdem Sie auf die Registerkarte Tools geklickt haben, sollten Sie die Komponententests sehen können. Sobald Sie auf Unit-Tests geklickt haben, sollte dieses Fenster mit der Schaltfläche Test ausführen angezeigt werden. Auch wenn wir noch nicht angefangen haben zu programmieren. Lassen Sie uns einfach den Komponententest durchführen und sehen, was passiert. Kommen wir zurück zu unserem Sudoku-Skelett. Gehen wir erneut zur Registerkarte Tools. Wir klicken auf Komponententests und dann auf Tests ausführen. Nachdem wir auf Tests ausführen geklickt haben, können wir zur Registerkarte Konsole wechseln. Ich habe es hier bereits geöffnet, aber falls Sie es nicht haben, finden Sie es im Bereich Tools. In den Tools gehst du also zur Konsole. Und jetzt können wir die Ausgabe sehen. In diesem Fall haben wir null von 20 Tests bestanden, siehe Fehler oben. Das ist also gut. Das bedeutet, dass alle unsere Tests tatsächlich aussagekräftig sind. Denk darüber nach. Wenn einer unserer Tests bestanden obwohl noch kein Code geschrieben wurde, wäre das ein sehr schlechtes Zeichen. Das würde bedeuten , dass der Test überhaupt nichts testet. Nachdem Sie das Projekt abgeschlossen haben, sollten alle diese Tests bestanden werden. Im nächsten Abschnitt hier habe ich einige Debugging-Tipps geschrieben falls Sie Probleme haben. Da Sie jedoch wahrscheinlich neu im Programmieren sind, ist es völlig in Ordnung, wenn Sie das Problem nicht alleine lösen können. Wenn Sie auf Probleme stoßen, haben Sie zwei Möglichkeiten. Option eins besteht darin, einen kurzen Blick auf die Lösung zu werfen, die ich ganz unten in diesem Dokument veröffentlicht habe. Option zwei besteht darin, eine Frage zum Skillshare-Kurs unter dem Tab Diskussion zu stellen. Und ich melde mich so schnell wie möglich bei dir. Nachdem Sie alle Komponententests bestanden haben, können Sie schließlich auf die große grüne Schaltfläche klicken. Das Spiel sollte so aussehen. Hier ist meine Lösung. Also klickst du auf den grünen Button. Nachdem das Kompilieren abgeschlossen ist, wird das Programm ausgeführt und es druckt dieses Sudoku-Board aus , in das einige Werte eingegeben wurden. Jetzt können wir mit diesem Spiel spielen. Nehmen wir also zum Beispiel an , dass wir die Zahl, sagen wir zwei, in Dislokation setzen möchten . Das wird also Zeile Nummer eins sein, da diese Reihe von Perioden Zeile Null ist. Das ist also Zeile eins und das ist Spalte eins, weil diese hier Spalte Null ist. Nehmen wir an, setzen wir 11 auf zwei. Und Sie können sehen, dass zwei jetzt in Dislokation besiedelt wurden. Wenn wir das rückgängig machen wollen, können wir Clear 11 machen, weil 11 die Koordinate ist , die wir löschen, und wir werden sie wieder leer machen. Versuchen wir nun, hier eine Neun einzugeben, was nicht funktionieren sollte, da wir in diesem Block bereits eine Neun haben. Wir setzen 11 auf B9. Es sagt dir irgendwie, dass Block Null mehrere Namen hat und du dort keine Neun eingeben kannst. Wenn Sie frustriert sind und ein Sudoku-Rätsel nicht mehr lösen möchten , können Sie einfach lösen eingeben. Und jetzt wird es das gesamte Board für dich lösen. Und es wird das Programm beenden und Ihnen sagen , dass Sie die Run-Taste erneut ausführen müssen, wenn Sie ein neues Rätsel möchten. Es besteht die Möglichkeit, dass die Komponententests von mir geschrieben wurden oder nicht umfassend sind. Ich bin mir ziemlich sicher, dass Sie das Spiel erfolgreich ausführen können, wenn Sie einen Komponententest bestehen . Wenn Sie jedoch alle Komponententests bestehen und das Spiel immer noch nicht ordnungsgemäß ausführen können. Ich würde empfehlen, dass Sie Ihre Lösung einfach mit der von mir geposteten vergleichen . Wenn Sie die Diskrepanz feststellen, posten Sie bitte eine Notiz im Skillshare-Kurs, damit ich das Skelett oder den Unit-Test korrigieren kann , falls sie behoben werden müssen. Denken Sie noch einmal daran, dieses Dokument vollständig zu lesen und regelmäßig darauf zurückzugreifen. Und das ist alles, was ich zu diesem Video zu sagen hatte. Viel Spaß bei deiner ersten richtigen Programmieraufgabe. 11. Fortsetzung deiner Reise: Hallo alle zusammen. Ich bin Derek und danke, dass du dir meine Videos Ich habe in den letzten Monaten hart gearbeitet und gerade ein neues Follow-up oder Citizens One veröffentlicht Ich füge den Link in die Beschreibung ein. Ich habe den Kurs überarbeitet, um professionellere Folien und insgesamt eine bessere Produktionsqualität Ich habe zum Beispiel dieses Stativ, das meine Kamera hält. Es gibt ein neues Projekt , das die Lektionen aus diesem Kurs einbezieht die Lektionen aus diesem Kurs Aber dieses Mal habe ich Walkthrough-Videos für Fortgeschrittene hinzugefügt , damit Sie sich nicht völlig verirren Dieser Kurs, den Sie gerade abgeschlossen haben, behandelt grundlegende Java-Kenntnisse, die für das Schreiben funktionierender Programme unerlässlich sind Wenn Sie jedoch jemals versucht haben, Ihren Code angesichts unvorhergesehener Umstände oder aufgrund sich ändernder Anforderungen zu skalieren angesichts unvorhergesehener Umstände , werden Sie feststellen, dass dies wirklich schwierig ist. Daher ist die Verwaltung der Codekomplexität eine wichtige Fähigkeit für einen Und wir behandeln viele Konzepte, mit denen Sie voraussichtlich vertraut sind , wenn Sie sich jemals für eine formelle Ausbildung im Bereich Programmierung entscheiden oder wenn Sie sich für die Jobsuche entscheiden Ich hoffe, Ihnen hat der Unterricht in diesem Kurs gefallen und dass Sie sich entscheiden, Ihre Reise mit mir im nächsten Kurs fortzusetzen , Ihre Reise mit mir im nächsten Wir sehen uns im nächsten Video.