In diesem Lernprogramm lernen Sie Java kennen, die Programmiersprache für die Entwicklung von Android-Anwendungen. Unser Ziel ist es, diejenigen, die bereits mit einer Programmiersprache wie PHP oder Objective-C vertraut sind, darauf vorzubereiten, dass Sie sich mit der Java-Programmiersprache gut auskennen und in die Android-App-Entwicklung eintauchen können. In diesem spezifischen Lernprogramm lernen Sie die Grundlagen der Java-Syntax kennen. Dazu gehören das Erstellen von Kommentaren, das Definieren von Variablen, das Erstellen von Bedingungsanweisungen und das Durchlaufen von Schleifen. Wenn Sie noch nicht mit Java vertraut sind oder einfach nur die Details auf den neuesten Stand bringen wollen, dann ist dies die Tutorial-Serie für Sie!
Was die Voraussetzungen angeht, werden wir nicht viele Annahmen bezüglich Ihrer Programmiererfahrung treffen. Wir sind Sie gehen davon aus, dass Sie verstehen, wie man programmiert (vielleicht in PHP, Visual Basic oder C ++), sich aber mit den Besonderheiten der Programmierung in der Java-Sprache nicht auskennen. Wir werden nicht auf die Details von eingehen Warum Sie möchten eine for-Schleife oder eine while-Schleife machen, aber wir zeigen Ihnen in Java die Syntax beider Arten von Schleifen. Anders ausgedrückt, wir werden Sie nicht lehren, zu programmieren; Wir werden Ihnen anschauliche Beispiele für häufig verwendete Java-Sprachkonstrukte und -prinzipien geben und einige Android-spezifische Tipps und Tricks aufzeigen.
Technisch benötigen Sie keine Tools, um dieses Tutorial abzuschließen, aber Sie werden sie sicherlich benötigen, um Android-Anwendungen zu entwickeln.
Um Android-Anwendungen (oder auch beliebige Java-Anwendungen) zu entwickeln, benötigen Sie eine Entwicklungsumgebung zum Schreiben und Erstellen von Anwendungen. Eclipse ist eine sehr beliebte Entwicklungsumgebung (IDE) für Java und die bevorzugte IDE für Android-Entwicklung. Es ist für Windows-, Mac- und Linux-Betriebssysteme kostenlos verfügbar.
Vollständige Anweisungen zur Installation von Eclipse (einschließlich der unterstützten Versionen) und des Android SDK finden Sie auf der Android-Entwicklerwebsite.
Sehen wir uns nun einige hilfreiche Java-Syntax an.
Die meisten Programmiersprachen erlauben Kommentare und Java unterscheidet sich nicht. Sie können eine beliebige Anzahl von Textzeilen einkapseln, indem Sie Ihren Kommentar mit / * beginnen und Ihren Kommentar mit * / beenden. Zum Beispiel:
/ * MULTILINE KOMMENTAR * /
Sie können auch Kommentare nach Code für einen einzelnen Benutzer mithilfe von // angeben. Zum Beispiel:
int x = 7; // Die erste Variable namens x ist sieben Int y = 8; // Die zweite Variable namens y ist acht. Int result = x + y; // Der Wert der Ergebnisvariablen sollte 15 sein
Java verfügt auch über einen Standardtyp von Kommentaren namens Javadoc, mit dem nicht nur Code kommentiert, sondern auch Codedokumentation einfach erstellt werden kann. Dieses Thema ist recht umfangreich, aber hier ein Beispiel, wie Javadoc-Kommentare aussehen:
/ ** Diese Methode hat etwas Interessantes. * * @Param someValue wird verarbeitet und zurückgegeben. * @Param -Option ändert die Art der ausgeführten Verarbeitung in someValue. * @Return. //…
Eine Variable ist einfach ein Datenelement. Java-Variablen fallen im Allgemeinen in zwei Kategorien:
Variablen werden für verschiedene Zwecke verwendet. Manchmal werden Variablen verwendet, um Werte zu speichern, die sich im Laufe der Zeit ändern oder ändern können. Beispielsweise kann eine Variable, die Zähler genannt wird, gelegentlich inkrementiert werden. Andere Variablen, insbesondere Klassenvariablen, die für alle Instanzen einer bestimmten Klasse gleich bleiben, sollten mit dem Schlüsselwort static definiert werden. Zu anderen Zeitpunkten stellen Variablen möglicherweise Konstanten dar. Diese Variablen sollten das Schlüsselwort final verwenden, um anzuzeigen, dass sie sich im Laufe der Zeit nicht ändern.
Eine Variable ist nur in ihrem Gebiet gültig oder Umfang. Der Umfang der Variablen wird häufig durch geschweifte Klammern gesteuert. Wenn eine Variable definiert ist, gilt sie innerhalb dieser Klammern. Wenn Sie versuchen, auf eine Variable außerhalb der geschweiften Klammern zuzugreifen, ist diese undefiniert. Klassenmitgliedsvariablen in objektorientierten Sprachen werden häufig aufgerufen Attribute. Sie können auch als Felder oder Eigenschaften bezeichnet werden.
Wie andere gängige Programmiersprachen haben Sie Ihren Zuweisungsoperator, das Gleichheitszeichen:
int i = 5;
Sie haben auch Ihre Rechenoperatoren wie +, -, *, /. Denken Sie daran, Klammern zu verwenden, um die Reihenfolge der Operationen nach Bedarf zu erzwingen:
int Ergebnis = (a + b) / c;
Schließlich haben Sie Ihre typischen unären Operatoren, mit denen Sie eine einzelne Variable mit einer einfachen Anweisung ändern können:
iPositive ++; // um eins erhöhen entspricht iPositive = iPositive + 1; iPositive -; // Dekrementierung um eins; äquivalent zu iPositive = iPositive - 1;
Beachten Sie, dass die Operatoren increment (++) und decrement (-) ein Präfix oder ein Postfix sein können. Das bedeutet, dass das Inkrement vor oder nach der Bestimmung von Bedingungen ausgeführt werden kann, wenn das Element in einer Schleife verwendet wird. Im Allgemeinen halten wir uns gerne an Postfix-Anweisungen, sodass Code besser lesbar ist.
Schauen wir uns einige der primitiven Datentypen an, die in der Programmiersprache Java verfügbar sind:
Primärtyp-Variablen können definiert werden, indem Sie den Datentyp angeben, gefolgt vom Variablennamen, einem Gleichheitszeichen und einem Anfangswert. Alle Java-Anweisungen enden mit einem Semikolon. Die folgende Java-Anweisung definiert beispielsweise eine Variable namens iVal mit einem Anfangswert von 1:
int iVal = 1;
Wie viele andere Sprachen können Sie ein nullbasiertes Array mit einem bestimmten Datentyp definieren. Zum Beispiel definiert das Folgende ein Array von drei ganzzahligen Werten (die ersten vier Potenzen von 2):
int [] aiPowersOfTwo; aiPowersOfTwo = new int [4]; aiPowersOfTwo [0] = 1; // 2 ^ 0 = 1 aiPowersOfTwo [1] = 2; // 2 ^ 1 = 2 aiPowersOfTwo [2] = 4; // 2 ^ 2 = 4 aiPowersOfTwo [3] = 8; // 2 ^ 3 = 8
Die Java-Bibliotheken bieten eine Reihe hilfreicher Objekte zur Verwendung mit üblichen Datenstrukturen. Alle Objekte werden von der Object-Klasse abgeleitet. Es gibt Klassengegenstücke für alle primitiven Datentypen. Die Integer-Klasse kapselt beispielsweise einen int-Wert und bietet eine Reihe hilfreicher Methoden zum Bearbeiten von Integer-Datenwerten. Mit dem folgenden Java-Code wird beispielsweise eine Integer-Variable namens iVal instanziiert. Anschließend wird ein Integer-Objekt mit einem Konstruktor erstellt, der eine Integer-Zahl verwendet. Anschließend wird eine in der Integer-Klasse verfügbare Handle-Methode verwendet, um ein Äquivalent der Float-Variablen zu extrahieren.
int iVal = 1; Integer Integ1 = New Integer (iVal); float f = integ1.floatValue ();
Das häufigste Objekt, das Sie in Android-Anwendungen verwenden, ist der String. Die String-Klasse wird zum Einkapseln von lesbaren Textzeichen verwendet, die häufig auf dem Bildschirm angezeigt werden. Wenn Sie Strings aus kleineren Teilen ändern oder aus ihnen zusammenbauen, sollten Sie auch die StringBuffer- und StringBuilder-Klassen überprüfen.
String strHello = neuer String ("Hallo Welt");
Für eine Liste gängiger Java-Datentypen enthält die Android-Referenz Dokumentation für das Paket java.lang. Die allgemeinen Eingabe- / Ausgabeobjekte finden Sie auch im Paket java.io.
Für komplexere Datenstrukturen wie Listen, Warteschlangen, Stacks, Datumsangaben und Zeiten befinden sich entsprechende Klassen im Paket java.util.
Schließlich basieren Android-Anwendungen auf einer Reihe hilfreicher Klassen, in denen häufig verwendete Anwendungskomponenten definiert werden, z. B. Aktivität, Anwendung, Dialog und Dienst. Diese Klassen finden Sie im android.app-Paket.
Sie können die Sichtbarkeit einer Klasse sowie deren Variablen und Methoden steuern, indem Sie die Zugriffsebene eines Elements angeben. Die Zugriffsebenen sind öffentlich, geschützt und privat. Wenn Sie möchten, dass etwas außerhalb einer Klasse zugänglich ist, verwenden Sie public. Wenn eine Methode oder Variable nur von der Klasse aus zugänglich sein sollte, verwenden Sie private. Verwenden Sie protected, wenn die Klasse oder eine ihrer Unterklassen Zugriff benötigen.
Die folgende SillySensor-Klassendefinition definiert beispielsweise mehrere Variablen und Methoden mit unterschiedlichen Zugriffsebenen:
öffentliche Klasse SillySensor private int sensorData; public SillySensor () sensorData = 0; private void calibrate (int iSeed) // Hier einige Kalibrierungen durchführen protected void seedCalibration (int iSeed) calibrate (iSeed); public int getSensorData () // Hier Sensor überprüfen return sensorData;
Java enthält bedingte Anweisungen, mit denen Codeausschnitte nur dann ausgeführt werden können, wenn bestimmte Bedingungen erfüllt sind. Normalerweise umfasst eine Bedingungsanweisung zwei Seiten. Wenn die beiden Seiten gleichwertig sind, ist die Aussage wahr, andernfalls falsch.
Java verfügt über alle typischen Bedingungsoperatoren, wie zum Beispiel:
Wenn Sie mehrere bedingte Anweisungen in einem einzigen größeren bedingten Test kombinieren müssen, können Sie AND (&&) und OR (||) verwenden:
Java hat bitweise Operatoren (&, |, ^), Verschiebungen (>>), <<), and complement (~) operators as well, should you need them. See the Java documentation for more details.
Nun, da Sie wissen, wie Sie eine bedingte Anweisung erstellen, können Sie bedingte Codesegmente erstellen. Die einfachste Form einer bedingten Codeanweisung ist die if () - Anweisung:
boolescher Zustand = wahr; if (Bedingung == wahr) // Diesen Code nur ausführen, wenn bedingungsvariable wahr ist
Wenn Sie einen alternativen Code zur Ausführung bereitstellen möchten, wenn die Bedingung nicht erfüllt ist, verwenden Sie die else-Klausel mit der if () - Anweisung:
boolescher Zustand = wahr; if (Bedingung == wahr) // Diesen Code nur ausführen, wenn der Wert der Bedingungsvariablen wahr ist else // Diesen Code nur ausführen, wenn der Wert der Bedingungsvariablen falsch ist
Wenn Sie mehr als zwei Fälle behandeln möchten, können Sie die kaskadierenden if-else-if-else-Anweisungen wie folgt verwenden:
if (iVar == 0) // Variable ist null else Wenn (iVar> 0) // Variable ist eine positive Zahl else // Variable ist eine negative Zahl
Wenn mehrere Codepfade möglich sind, die von einem einzelnen Variablenwert verzweigen, können Sie eine switch () - Anweisung verwenden. Mit einer switch-Anweisung geben Sie die zu überprüfende Variable an und bieten zahlreiche Optionen für die Ausführung in bestimmten Fällen. Sie können auch eine Standardoption angeben, die ausgeführt werden soll, wenn keine anderen Fälle zutreffen. Jeder Fall kann mit einer break-Anweisung beendet werden. Wenn keine break-Anweisung angegeben wird, wird der Code in der nächsten case-Anweisung ausgeführt.
char singleChar = 'z'; switch (singleChar) case 'a': case 'e': case 'i': case 'o': case 'u': // singleChar ist ein Vokal! Führen Sie diesen Code aus! brechen; default: // singleChar ist ein Konsonant! Führen Sie stattdessen diesen Code aus! brechen;
Wenn Sie wiederholt Code ausführen oder Rekursion verwenden möchten (siehe, wenn Sie nicht wissen, wovon wir sprechen), unterstützt Java verschiedene Arten von Schleifen.
Um eine fortlaufende Schleife auszuführen, vorausgesetzt, dass eine Anweisung wahr ist, verwenden Sie eine while () - Schleife:
int numItemsToProcess = 3; while (numItemsToProcess> 0) // Element bearbeiten numItemsToProcess--;
Wenn Sie den bedingten Schleifenausdruck NACH der ersten Iteration auswerten möchten, können Sie stattdessen eine do-while-Schleife verwenden:
do // prüfe auf zu verarbeitende Elemente, aktualisiere numItemsToProcess nach Bedarf // Element bearbeiten, aktualisiert numItemsToProcess while (numItemsToProcess> 0);
Wenn Sie für eine bestimmte Anzahl von Iterationen eine Schleife erstellen möchten, können Sie eine for () - Schleife verwenden. Eine for () - Schleife hat drei Parameter: den Anfangswert, den Abschlusswert und den Inkrementierungswert. Um beispielsweise eine Schleife 100-mal auszuführen und die Zahlen 1 bis 100 zu drucken, können Sie die folgende for () -Schleife verwenden:
für (int i = 1; i <=100; i++) // print i
Hinweis: Sie können auch eine break -Anweisung verwenden, um bei Bedarf aus einer while () -, do-while () - oder for () - Schleife auszusteigen. Sie können auch eine continue-Anweisung verwenden, um den Rest einer aktuellen Iteration einer Schleife zu überspringen und mit der nächsten Iteration fortzufahren (natürlich wird der Bedingungsausdruck neu bewertet)..
Es gibt keine Zeiger in Java. Ok, ok, mach weiter und atme erleichtert auf. Das Leben ist hart genug, ohne dass Zeiger die Dinge aufmischen, richtig?
Ok, jetzt ist es Zeit wieder Aufmerksamkeit zu schenken. In Java werden Methodenparameter per Wert übergeben. Wenn jedoch ein Methodenparameter ein Objekt ist (d. H. Alles außer einem primitiven Typ), wird nur ein Verweis auf dieses Objekt an die Methode übergeben (ähnlich wie Zeiger, sorry!). Um das in eine bestimmte Methode übergebene Objekt zu ändern, übergeben Sie im Allgemeinen die Objektreferenz und handeln dann darauf, wodurch die zugrunde liegenden Daten des übergebenen Objekts geändert werden. Das Objekt selbst kann jedoch nicht ausgetauscht werden … Hier ein kurzes Beispiel:
Hier haben wir eine Klasse namens Cat:
öffentliche Klasse Cat private String mCatName; Cat (String-Name) mCatName = Name; public String getName () return mCatName; ; public void setName (String strName) mCatName = strName; ;
Versuchen wir nun, diese Klasse zu verwenden und ein Cat-Objekt an einige Funktionen zu übergeben und zu sehen, was passiert:
void messWithCat (Katzenkätzchen) Kitty = neue Katze ("Han"); void changeKitty (Katzenkätzchen) kitty.setName ("Wookie"); Cat haveKitten () Cat Kitten = neue Katze ("Luke"); Rückkehr Kätzchen;
Lassen Sie uns schließlich diese Methoden aufrufen und sehen, wie sie auf Cat-Objektinstanzen reagieren:
Katze cat1 = neue Katze ("Jabba"); Katze cat2 = neue Katze ("Leia"); cat1.getName (); // Gibt Jabba zurück cat2.getName (); // Liefert Leia messWithCat (cat1); changeKitty (cat2); Cat cat3 = haveKitten (); cat1.getName (); // Gibt Jabba zurück - Beachten Sie, dass das Objekt unverändert bleibt! cat2.getName (); // Gibt Wookie zurück cat3.getName (); // Gibt Luke zurück
Sie haben gerade einen Absturzkurs der Programmiersprache Java absolviert. Während Sie möglicherweise nicht bereit sind, Ihre erste Java-App zu schreiben, sollten Sie in der Lage sein, die einfachsten Java-Klassen der Android-Beispielanwendung durchzuarbeiten und festzustellen, was sie tun, zumindest in Bezug auf die Java-Syntax. Die erste Klasse, die Sie für die Android-Entwicklung untersuchen möchten, ist die Activity-Klasse. In einer Android-Anwendung werden Aktivitäten zum Definieren verschiedener Laufzeitaufgaben verwendet. Daher müssen Sie eine Aktivität definieren, die als Einstiegspunkt für Ihre Anwendung dient. Da Sie nun mit der Java-Syntax vertraut sind, empfehlen wir Ihnen dringend, ein Anfänger-Android-Tutorial durchzuarbeiten.
Sie haben nur die Oberfläche der Java-Entwicklung für Android-Entwicklung zerkratzt. In den anderen tollen Tutorials zu Mobiletuts + erfahren Sie mehr über die Entwicklung von Java und Android. Wir empfehlen die folgenden Einstiegsanleitungen für Android: Einführung in die Android-Entwicklung von Gyuri Grell und Einstieg in Android: Erste Schritte mit Fortune Crunch, um mit der Android-Entwicklung zu beginnen. Viel Glück!
Die mobilen Entwickler Lauren Darcey und Shane Conder haben mehrere Bücher zur Android-Entwicklung mitgeschrieben: ein ausführliches Programmierbuch mit dem Titel Android Wireless-Anwendungsentwicklung und Sams TeachYourself Entwicklung von Android-Anwendungen in 24 Stunden. Wenn sie nicht schreiben, verbringen sie ihre Zeit damit, mobile Software in ihrem Unternehmen zu entwickeln und Beratungsdienste anzubieten. Sie können sie per E-Mail an [email protected], über ihren Blog unter androidbook.blogspot.com und über Twitter @androidwireless erreichen.