Apprendre Java pour le développement Android Syntaxe Java

Dans cette série de didacticiels, vous vous familiariserez avec Java, le langage de programmation utilisé pour développer des applications Android. Notre objectif est de préparer ceux qui sont déjà familiarisés avec un langage de programmation, tel que PHP ou Objective-C, à se familiariser avec le langage de programmation Java et à se plonger dans le développement d'applications Android. Dans ce didacticiel spécifique, vous apprendrez les bases de la syntaxe Java, notamment la création de commentaires, la définition de variables, les instructions conditionnelles artisanales et l'itération à l'aide de boucles. Si vous débutez dans Java ou si vous souhaitez simplement améliorer les détails, ce didacticiel est fait pour vous.!

Commencer

En ce qui concerne les conditions préalables, nous n'allons pas formuler beaucoup d'hypothèses sur votre expérience de programmation. nous sont supposons que vous comprenez comment programmer (peut-être en PHP, ou Visual Basic ou C ++), mais que vous ne connaissez pas les spécificités de la programmation en langage Java. Nous n'allons pas entrer dans les détails de Pourquoi vous voudriez faire une boucle for versus une boucle while, mais nous allons vous montrer, en Java, la syntaxe des deux types de boucles. Dit autrement, nous n'allons pas vous apprendre à programmer; nous allons vous fournir des exemples clairs de constructions et de principes du langage Java couramment utilisés, tout en vous proposant des astuces et astuces spécifiques à Android..

Ce dont vous aurez besoin

Techniquement, vous n'avez besoin d'aucun outil pour compléter ce didacticiel, mais vous en aurez certainement besoin pour développer des applications Android..

Pour développer des applications Android (ou des applications Java, d'ailleurs), vous avez besoin d'un environnement de développement pour écrire et créer des applications. Eclipse est un environnement de développement (IDE) très populaire pour Java et l'IDE préféré pour le développement Android. Il est disponible gratuitement pour les systèmes d'exploitation Windows, Mac et Linux..

Pour des instructions complètes sur l'installation d'Eclipse (y compris les versions prises en charge) et le SDK Android, voir le site Web du développeur Android..

Voyons maintenant une syntaxe Java plus utile.

commentaires

La plupart des langages de programmation autorisent les commentaires et Java n’est pas différent. Vous pouvez encapsuler un nombre quelconque de lignes de texte en commençant votre commentaire par / * et en terminant votre commentaire par * /. Par exemple:

/ * COMMENTAIRE MULTILINE * / 

Vous pouvez également fournir des commentaires après le code sur un seul en utilisant //. Par exemple:

int x = 7; // La première variable appelée x est égale à sept int y = 8; // La deuxième variable appelée y est égale à huit int résultat = x + y; // La valeur de la variable de résultat doit être égale à 15 

Java a également un type standard de commentaires appelé Javadoc qui peut être utilisé non seulement pour commenter du code, mais également pour créer facilement une documentation de code. Ce sujet est assez volumineux, mais voici un exemple de ce à quoi ressemblent les commentaires Javadoc:

/ ** Cette méthode effectue quelque chose d'intéressant * * @param someValue traitée et renvoyée *, option @param change le type de traitement effectué en someValue * @return Le résultat du traitement de someValue * / public int sampleMethod (int someValue, option booléenne)  //… 

Variables

Une variable est simplement une donnée. Les variables Java appartiennent généralement à deux catégories:

  • Types de données primitifs, tels que int, float, double, char, etc..
  • Objets Java (définis par une définition de classe)

Les variables sont utilisées à des fins différentes. Parfois, les variables sont utilisées pour stocker des valeurs qui peuvent changer ou être modifiées au fil du temps. Par exemple, une variable appelée counter peut être incrémentée à l'occasion. Les autres variables, notamment les variables de classe qui restent les mêmes pour toutes les instances d'une classe donnée, doivent être définies à l'aide du mot clé static. D'autres fois, les variables peuvent représenter des constantes. Ces variables doivent utiliser le mot-clé final pour indiquer qu'elles ne changent pas au fil du temps..

Une variable n'est valable que sur son territoire, ou portée. La portée variable est souvent contrôlée par des accolades . Lorsqu'une variable est définie, elle est valide entre ces accolades. Si vous essayez d'accéder à une variable en dehors des accolades, celle-ci sera indéfinie. Les variables de membre de classe dans les langages orientés objet sont souvent appelées les attributs. Ils peuvent aussi être appelés champs ou propriétés.

Comme pour les autres langages de programmation courants, vous avez votre opérateur d'affectation, le signe égal:

int i = 5; 

Vous avez également vos opérateurs arithmétiques comme +, -, *, /. N'oubliez pas d'utiliser des parenthèses pour forcer l'ordre des opérations si nécessaire:

int result = (a + b) / c; 

Enfin, vous avez vos opérateurs unaires typiques, qui vous permettent de modifier une seule variable avec une simple déclaration:

iPositive ++; // incrémente de un; équivalent à iPositive = iPositive + 1; iPositive -; // décrémente de un; équivalent à iPositive = iPositive - 1; 

Notez que les opérateurs increment (++) et décrémentation (-) peuvent être préfixes ou postfixés, ce qui signifie que l'incrémentation peut être exécutée avant ou après la détermination de conditions, si l'élément est utilisé dans une boucle. Généralement, nous aimons nous en tenir aux instructions postfixes, donc le code est plus lisible.

Types de données primitifs

Regardons quelques-uns des types de données primitifs disponibles dans le langage de programmation Java:

  • octet
    • Une variable d'octet est un entier signé de 8 bits compris entre -128 et 127. Souvent utilisé pour les tableaux..
  • court
    • Une variable courte est un entier signé de 16 bits compris entre -32 768 et 32 ​​767. Encore une fois, souvent utilisé pour les tableaux.
  • int
    • Une variable int est un entier signé sur 32 bits compris entre -2 147 483 648 et 2 147 483 647. C'est la variable «nombre» la plus utilisée.
  • longue
    • Une variable longue est un entier signé de 64 bits compris entre -9 223 372 036 854 775 808 et 9 223 372 036 854 755 807. Utilisé lorsque le type de données int n'est pas assez grand.
  • flotte
    • Une variable flottante est un nombre à virgule flottante simple précision de 32 bits.
  • double
    • Une variable double est un nombre à virgule flottante double précision de 64 bits. Utilisez ce type de données pour les valeurs décimales.
  • booléen
    • Une variable booléenne n'a que deux valeurs possibles: true et false. Utilisez ce type de données pour les instructions conditionnelles.
  • carboniser
    • Une variable char est un seul caractère Unicode 16 bits.

Les variables de types primitifs peuvent être définies en spécifiant le type de données, suivi du nom de la variable, puis du signe égal et de la valeur initiale. Toutes les instructions Java se terminent par un point-virgule. Par exemple, l'instruction Java suivante définit une variable appelée iVal, avec une valeur initiale de 1:

int iVal = 1; 

Comme de nombreuses autres langues, vous pouvez définir un tableau de type zéro à base zéro. Par exemple, ce qui suit définit un tableau de trois valeurs entières (les quatre premières puissances de 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 

Objets Java couramment utilisés

Les bibliothèques Java fournissent un certain nombre d'objets utiles à utiliser avec des structures de données communes. Tous les objets sont dérivés de la classe Object. Il existe des équivalents de classe pour tous les types de données primitifs. Par exemple, la classe Integer encapsule une valeur int et fournit un certain nombre de méthodes utiles pour manipuler des valeurs de données entières. Par exemple, le code Java suivant instancie une variable entière appelée iVal, puis crée un objet Integer à l'aide d'un constructeur prenant un entier, puis utilise une méthode de contrôle disponible dans la classe Integer pour extraire un équivalent de variable float..

int iVal = 1; Integer integ1 = new Integer (iVal); float f = integ1.floatValue (); 

L'objet le plus courant que vous utiliserez dans les applications Android est peut-être la chaîne. La classe String est utilisée pour encapsuler des caractères de texte lisibles par l'homme, qui sont souvent affichés à l'écran. Si vous modifiez ou construisez des chaînes à partir de petites pièces, vous voudrez également consulter les classes StringBuffer et StringBuilder..

String strHello = new String ("Hello World"); 

Pour une liste des types de données Java courants, la référence Android inclut la documentation du package java.lang. Vous pouvez également rechercher les objets d’entrée / sortie communs dans le package java.io..

Pour les structures de données plus complexes telles que les listes, les files d'attente, les piles, les dates et les heures, les classes appropriées sont dans le package java.util..

Enfin, les applications Android s'appuient sur un certain nombre de classes utiles qui définissent les composants d'application couramment utilisés, tels que Activité, Application, Boîte de dialogue et Service. Ces classes peuvent être trouvées dans le package android.app.

Autorisations de classe et accès

Vous pouvez contrôler la visibilité d'une classe ainsi que ses variables et méthodes en spécifiant le niveau d'accès d'un élément. Les niveaux d’accès sont: public, protégé et privé. De manière générale, si vous souhaitez que quelque chose soit accessible de l'extérieur d'une classe, utilisez public. Si une méthode ou une variable ne doit être accessible qu'à partir de la classe, utilisez private. Utilisez protégé lorsque la classe ou l'une de ses sous-classes a besoin d'un accès.

Par exemple, la définition de classe SillySensor suivante définit plusieurs variables et méthodes avec différents niveaux d'accès:

  • Une variable de classe appelée sensorData, visible uniquement dans la classe
  • Un constructeur public pouvant être appelé en dehors de la classe
  • Une méthode privée appelée calibrate (), qui ne peut être appelée qu'à partir de la classe elle-même
  • Une méthode protégée appelée seedCalibration (), qui peut être appelée à partir de la classe même ou par une sous-classe
  • Une méthode publique appelée getSensorData (), pouvant être appelée de n'importe où, permettant un accès en lecture seule à la variable sensorData
 classe publique SillySensor private int sensorData; public SillySensor () sensorData = 0;  private void calibrate (int iSeed) // Effectuez quelques étalonnages ici protected void seedCalibration (int iSeed) calibrate (iSeed);  public int getSensorData () // Vérifier le capteur ici renvoyer sensorData;  

Les conditions

Java inclut des instructions conditionnelles, qui peuvent être utilisées pour exécuter des extraits de code si et seulement si certaines conditions sont remplies. En règle générale, une déclaration conditionnelle implique deux côtés. Si les deux côtés sont équivalents, la déclaration est vraie, sinon elle est fausse.

Java possède tous les opérateurs conditionnels typiques, tels que:

  • == égal à, comme dans (a == b)
  • != différent de, comme dans (x! = y)
  • > plus grand que, comme dans (z> y)
  • > = supérieur ou égal à, comme dans (q> = z)
  • < less than, as in (b < a)
  • <= less than or equal to, as in (a <= z)

Et lorsque vous devez combiner plusieurs instructions conditionnelles dans un seul test conditionnel plus grand, vous pouvez utiliser AND (&&) et OR (||):

  • ((a == b) && (a == c)) // true que si A est égal à B et égal à C
  • ((a == b) || (a == c)) // vrai que si A est égal à B ou égal à C

Java a des opérateurs de bits (&, |, ^), des décalages (>>, <<), and complement (~) operators as well, should you need them. See the Java documentation for more details.

Maintenant que vous savez comment créer une instruction conditionnelle, vous pouvez créer des segments de code conditionnels. La forme la plus simple d'une instruction de code conditionnel est l'instruction if ():

condition booléenne = vrai; if (condition == true) // Exécutez ce code uniquement si la variable de condition est true 

Si vous souhaitez fournir un code alternatif à exécuter si la condition n'est pas remplie, utilisez la clause else avec l'instruction if ():

condition booléenne = vrai; if (condition == true) // Exécute ce code uniquement si la valeur de la variable de condition est true else // Exécute ce code uniquement si la valeur de la variable de condition est false 

Si vous souhaitez gérer plus de deux cas, vous pouvez utiliser des instructions if-else-if-else en cascade, comme ceci:

if (iVar == 0) // variable = zéro else if (iVar> 0) // variable est un nombre positif else // variable est un nombre négatif 

Déclarations de cas de commutation

Lorsque vous avez un certain nombre de chemins de code différents possibles qui relient une seule valeur de variable, vous pouvez utiliser une instruction switch (). Avec une instruction switch, vous fournissez la variable à vérifier et de nombreuses options à exécuter pour des cas spécifiques. Vous pouvez également fournir une option par défaut à exécuter si aucun autre cas ne s'applique. Chaque cas peut être terminé par une instruction break. Si une instruction break n'est pas fournie, le code continuera de s'exécuter dans l'instruction suivante..

 char singleChar = 'z'; switch (singleChar) case 'a': case 'e': case 'i': case 'o': case 'u': // singleChar est une voyelle! Exécutez ce code! Pause; default: // singleChar est une consonne! Exécutez ce code à la place! Pause;  

Boucles

Lorsque vous souhaitez exécuter du code de manière répétée ou en utilisant la récursivité (hé, regardez-le-là si vous ne savez pas de quoi nous parlons), Java prend en charge plusieurs types de boucles..

Pour une boucle continue à condition qu'une instruction soit vraie, utilisez une boucle while ():

int numItemsToProcess = 3; while (numItemsToProcess> 0) // traiter un élément numItemsToProcess--;  

Si vous souhaitez évaluer l'expression de boucle conditionnelle APRÈS la première itération, vous pouvez utiliser une boucle do-while à la place:

do // recherche les éléments à traiter, met à jour numItemsToProcess selon les besoins // élément de processus, numItemsToProcess mis à jour while (numItemsToProcess> 0); 

Enfin, si vous souhaitez effectuer une boucle pour un nombre spécifique d'itérations, vous pouvez utiliser une boucle for (). Une boucle for () a trois paramètres: la valeur initiale, la valeur finale et la valeur incrémentielle. Par exemple, pour exécuter une boucle 100 fois, en imprimant les nombres de 1 à 100, vous pouvez utiliser la boucle for () suivante:

pour (int i = 1; i <=100; i++)  // print i  

Remarque: vous pouvez également utiliser une instruction break pour sortir, le cas échéant, d'une boucle while (), do-while () ou for (). Vous pouvez également utiliser une instruction continue pour ignorer le reste d'une itération en cours d'une boucle et passer à la prochaine itération (en réévaluant l'expression conditionnelle, bien sûr)..

Passing By Value vs. By Reference

Il n'y a pas d'indicateurs en Java. Ok, ok, vas-y et pousse un soupir de soulagement. La vie est déjà assez dure sans que les personnes qui dirigent l’école ne se trompent, à droite?

Ok, maintenant il est temps de faire attention à nouveau. En Java, les paramètres de méthode sont passés par valeur. Cependant, lorsqu'un paramètre de méthode est un objet (c'est-à-dire tout sauf un type primitif), seule une référence à cet objet est transmise à la méthode [un peu comme les pointeurs, désolé!]. Par conséquent, afin de modifier l'objet transmis dans une méthode donnée, vous transmettez généralement la référence d'objet, puis agissez sur celle-ci, ce qui modifie les données sous-jacentes de l'objet que vous avez transmis. Vous ne pouvez toutefois pas échanger l'objet lui-même. … Voici un exemple rapide:

Ici, nous avons une classe appelée Cat:

Classe publique Cat private String mCatName; Cat (Nom de chaîne) mCatName = name;  public String getName () return mCatName; ; public void setName (String strName) mCatName = strName; ;  

Essayons maintenant d'utiliser cette classe et de passer un objet Cat à certaines fonctions pour voir ce qui se passe:

 void messWithCat (chat) chat = nouveau chat ("Han");  void changeKitty (chat minou) kitty.setName ("Wookie");  Cat haveKitten () Cat chaton = nouveau chat ("Luke"); retourner chaton;  

Enfin, appelons ces méthodes et voyons comment elles agissent sur les instances d'objet Cat:

Cat cat1 = nouveau chat ("Jabba"); Cat cat2 = nouveau chat ("Leia"); cat1.getName (); // retourne Jabba cat2.getName (); // retourne Leia messWithCat (cat1); changeKitty (cat2); Cat cat3 = aKitten (); cat1.getName (); // Retourne Jabba - Notez que l'objet reste inchangé! cat2.getName (); // retourne Wookie cat3.getName (); // retourne Luke 

Emballer

Vous venez de terminer un cours intensif du langage de programmation Java. Bien que vous ne soyez peut-être pas prêt à écrire votre première application Java, vous devriez pouvoir utiliser les classes Java les plus simples pour l'exemple d'application Android et déterminer ce qu'elles sont en train de faire, du moins en termes de syntaxe Java. La première classe sur laquelle vous allez vous pencher pour le développement Android est la classe d'activité. Une application Android utilise des activités pour définir différentes tâches d'exécution. Vous devez donc définir une activité pour qu'elle serve de point d'entrée à votre application. Maintenant que vous maîtrisez la syntaxe Java, nous vous recommandons vivement de suivre un didacticiel pour débutants sur Android..

Vous n'avez fait qu'effleurer le développement Java pour le développement Android. Découvrez tous les autres excellents tutoriels sur Mobiletuts + pour approfondir vos connaissances du développement Java et Android. Nous recommandons vivement les didacticiels Android suivants: Introduction au développement Android de Gyuri Grell et Début d’Android: Prise en main de Fortune Crunch pour commencer à jouer dans le développement d’Android. Bonne chance!

à propos des auteurs

Les développeurs mobiles Lauren Darcey et Shane Conder ont co-écrit plusieurs livres sur le développement Android: un livre de programmation en profondeur intitulé Développement d'applications sans fil Android et Sams TeachYourself Développement d'applications Android en 24 heures. Lorsqu'ils n'écrivent pas, ils passent leur temps à développer des logiciels mobiles dans leur entreprise et à fournir des services de conseil. Vous pouvez les contacter par courrier électronique à l'adresse [email protected], via leur blog à l'adresse androidbook.blogspot.com et sur Twitter @androidwireless..

Besoin d'aide pour écrire des applications Android? Consultez nos derniers livres et ressources!

   


Tutoriels connexes:

  • Apprendre Java pour le développement Android: Introduction à Java
  • Introduction au développement du SDK Android
  • Début d'Android: Premiers pas avec FortuneCrunch
  • Configurations communes de périphériques virtuels Android
  • Lancement de cartes in-app
  • Activation des utilisateurs pour l'envoi de courrier électronique via l'application
  • Utilisation d'alertes, de toasts et de notifications
  • Création de formulaires utilisateur simples