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.