Bases de Java: un didacticiel pour les débutants
Mise à jour, 28 mai: Vidéo ajoutée.
Original post, le 17 Avril: Si vous avez toujours voulu écrire votre propre application Android, pour le plaisir ou pour le profit, vous allez probablement avoir besoin de faire un peu de programmation. Il ya beaucoup de façons différentes d'écrire des programmes Android, mais la langue officielle d'Android est de Java. Si vous ne voulez pas essayer votre main à Java, alors je vous recommande de lire mon article: Je veux développer les applications Android - Quelles langues dois-je apprendre?
Non seulement est la langue officielle de Java de programmation pour le développement d'applications, Java lui-même est utilisé par Google pour une grande partie des internes Android. Il ya deux parties distinctes à écrire une application Android. L'un est le langage de programmation Java lui-même, l'autre est de comprendre comment créer une application en termes de son interface utilisateur, le système d'exploitation Android, et de la Kit de développement logiciel Android (SDK). Dans ce tutoriel, nous allons traiter avec le premier d'entre eux, le langage de programmation Java.
Pour commencer à écrire des programmes Java, vous avez besoin d'un moyen de compiler le code source et la transformer en un exécutable pour le runtime Java.
Java a été d'abord publié dans les milieu des années 1990 par Sun Microsystems. Il a été conçu pour être facile à apprendre par des programmeurs qui connaissaient déjà C et C ++. En 2006 et 2007 Sun Java libéré tant que logiciel libre et open-source, sous les termes de la licence GNU General Public License (GPL). Sun a été achetée par Oracle en 2009/2010, et Oracle reste déterminé à Java.Pour commencer à écrire des programmes Java, vous avez besoin d'un moyen de compiler le code source et la transformer en un exécutable pour le runtime Java. La façon normale de faire est d'installer le kit de développement Java. Au moment de la rédaction de la version actuelle de Java Java est 8, mais il est relativement nouveau, de sorte que Android utilise Java 7. Si vous n'êtes pas sûr de l'installation du JDK puis lire cette Comment faire pour installer le tutoriel Java Software Development Kit. Oracle fournit également un Guide d'installation de JDK 7.
Toutefois, si vous n'êtes pas tout à fait prêt à installer le JDK, et que vous voulez une voie rapide à essayer votre premier programme Java, alors je recommande Koding.com. Koding vous donne accès à une machine virtuelle gratuitement avec tous les compilateurs et les outils nécessaires pour compiler et exécuter les programmes Java ainsi que de développer dans d'autres langues comme Go, Python, Node, et C. Pour vous inscrire il suffit de visiter Koding.com, le type votre adresse e-mail et un mot de passe de votre choix, puis cliquez sur "Inscription".
La machine virtuelle (VM) est livré avec un accès en ligne IDE et de commandement. La vue Web de la machine virtuelle est divisée en quatre. Sur l'extrême gauche si le panneau de commande Koding avec accès à vos informations de compte, les machines virtuelles que vous avez créé et ainsi de suite. À côté de lui est un gestionnaire de fichiers qui affiche tous les fichiers et dossiers que vous avez sur votre VM. A côté de ce que l'écran est divisé en deux. La moitié supérieure est un éditeur, pour écrire votre code et de la moitié inférieure donne vous commandez un accès en ligne.
De là, dans Je vais supposer que vous utilisez Koding. Cependant, pour ceux qui ont installé le JDK le processus est presque identique sauf que vous aurez besoin d'utiliser un éditeur de texte sur votre PC plutôt que l'éditeur à l'intérieur du Koding IDE.
Coupez et collez le code suivant dans l'éditeur:
public class HelloWorld {static void main (String [] args) {System.out.println publics ("Bonjour, monde») -}}
Et l'enregistrer comme HelloWorld.java. En Java le nom du code source et le nom de classe doivent être les mêmes. La première ligne du code déclare une classe appelée HelloWorld, si ce code source doit être enregistré dans HelloWorld.java.
Dans Koding pour enregistrer le fichier, placez la souris sur l'onglet pour le code (probablement appelé sans titre.txt) et cliquez sur la petite flèche. Puis cliquez sur "Enregistrer sous ...", entrez HellowWorld.java comme nom de fichier et cliquez sur "Enregistrer".
A la partie inférieure de l'écran est la ligne de commande. La machine virtuelle est en cours d'exécution Linux et le terminal est en cours d'exécution Bash. Si vous n'êtes pas familier avec l'utilisation de la ligne de commande Linux, essayez ce tutoriel: Tutoriel Linux pour les débutants, surtout Tutorial Un et Deux. Donc, pour compiler votre premier programme Java il suffit de taper:
javac HelloWorld.java
La compilation ne devrait prendre une seconde ou deux. Puis, exécutez le type de programme:
java HelloWorld
Votre récompense est le texte "Bonjour tout le monde" affiché dans le terminal. Félicitations à vous!
Qu'est-ce que je viens de faire?
Alors prenons un moment pour regarder ce qui vient de se passer. D'abord, le code source. Le fichier fait trois choses. 1) Il déclare une classe appelée HelloWorld. 2) Elle définit une méthode (fonction) dans la classe appelée HelloWorld principal. 3) Le principal() les appels de méthode System.out.println pour délivrer en sortie un texte.
En Java, et dans tous les objets orientés langages de programmation, une classe définit un objet. Un objet est un élément autonome qui interagit avec d'autres objets. Dans Android tel objet serait inclure des éléments dans l'interface utilisateur, une connexion réseau, des données de localisation, et ainsi de suite.
Chaque programme Java doit définir une méthode appelée principale dans au moins une classe. Il est le point d'entrée, où le programme commence à exécuter. Dans l'exemple simple au-dessus du principal() méthode a une seule ligne de code, un appel à System.out.println à la sortie "Bonjour tout le monde". println () est une méthode qui appartient à la classe PrintStream et est inclus dans le cadre de la classe System. Oracle a beaucoup d'informations sur la classe du système et la classe PrintStream.
Pour compiler et exécuter le programme que vous appelé la première fois javac et alors Java. Le premier est le compilateur Java, d'où la lettre «c» à la fin, et la seconde est la machine virtuelle Java. Java est indépendant de l'architecture qui signifie qu'un fichier .java est pas compilé pour un processeur spécifique sur un OS spécifique, comme Windows sur une puce Intel x86, ou Android sur un processeur ARM Cortex-A processeur, mais plutôt il est transformé en Bytecode Java. Le travail de la machine virtuelle Java est de courir que le bytecode sur la plate-forme spécifique.
Variables
Lors de l'écriture de programmes informatiques, vous aurez besoin de stocker des données pour une utilisation temporaire. Par exemple, dans un jeu Android vous voulez stocker le score du joueur actuel. Ces bits de données sont stockées dans des variables - une boîte dans laquelle vous pouvez mettre des données, puis de revenir plus tard une récupérer. Puisque les données prend différentes formes une variable doit être définie avec un type, qui raconte Java ce qui est stocké. Certains des types de données primitives comprennent de Java int (par nombre entier), double (en double précision nombre à virgule flottante), et booléen (pour une valeur true / false).
Voici un programme simple qui définit la valeur d'une variable, imprime la valeur à la console, modifie la variable, puis l'imprime à nouveau:
public class VariableTest {public static void main (String [] args) {int i = 1-System.out.println ("La valeur de i est:" + i) = -i i + 24 System.out.println ( "La valeur de i est maintenant:" + i) -}}
Enregistrez le fichier sous "VariableTest.java". Pour le compiler Type: javac VariableTest.java, et pour l'exécuter utiliser: java VariableTest. La sortie du programme sera:
La valeur de i est: 1La valeur de i est maintenant: 25
Comme vous pouvez le voir le programme définit une variable appelée "i" et lui donne une valeur initiale de 1. La valeur de "i" est imprimé à la console. Puis i est mis à la nouvelle valeur de i + 24, ou 1 + 24, qui est de 25. La nouvelle valeur est ensuite imprimé.
Essayez de modifier le programme à utiliser un «double» plutôt que d'un "int". Réglez "i" à quelque chose comme 1.3 et augmenter sa valeur par un autre nombre décimal comme 24,9.
Si vous jetez un oeil à la println () la méthode que vous verrez un nombre entier étant ajouté à une chaîne: "La valeur de i est:" + i. Qu'est-ce qui se passe réellement ici est que Java sait que la première partie de l'expression est une chaîne, il génère la valeur de chaîne pour je, dans ce cas, "1" et concatène ensuite à la chaîne donnant: "La valeur de i est: 1".
Cordes
Les chaînes sont une partie importante de tout langage de programmation, y compris Java. contrairement à int ou booléen, une chaîne est pas un type primitif, il est une classe. Lorsque vous créez une variable de chaîne que vous êtes vraiment en train de créer un objet String (notez la majuscule S). Comme un objet, il possède certaines propriétés comme sa valeur (la chaîne elle-même) et sa longueur. Les chaînes peuvent être manipulés dans des lots de différentes façons, y compris en cours de disséqué, enchaînés, par rapport, et fouillé.
Voici un exemple de programme qui effectue quelques opérations simples sur une corde:
PlayingWithStrings public class {static void main (String [] args) {String publics bonjour = "Bonjour tout le monde" -System.out.println (bonjour) - // Ajouter une! à l'endhello = bonjour + "!" - System.out.println (bonjour) - // Extraire le mot "Bonjour" à partir de la chaîne // dire à partir du début (0) pour 5 charactersString justHello = hello.substring (0 , 5) -System.out.println (justHello) - // ajouter quelques espaces de fin et puis retirez-les avec trim () = bonjour bonjour + "" -Bonjour = hello.trim () - // Maintenant sortie de la chaîne tout en MAJUSCULES et lowercaseSystem.out.println (hello.toUpperCase ()) - System.out.println (hello.toLowerCase ()) -}}
Enregistrer en tant que PlayingWithStrings.java. Compiler et l'exécuter en utilisant javac et Java comme indiqué précédemment.
Ceci est une méthode spéciale appelée un constructeur. Le constructeur est appelé une seule fois, au moment où l'objet est créé.
La première partie du programme crée un objet de chaîne appelée «bonjour» et il donne une valeur de "Bonjour tout le monde". Bien que cette marque ressembler à la façon dont vous déclarez et d'assigner un nombre entier ou d'un autre type primitif, en fait il ya beaucoup plus de choses ici. Java permet aux opérateurs simples comme + = et à être affectés à des tâches simples. Tellement vrai Chaîne bonjour = "Bonjour tout le monde" - est en fait certains comme Chaîne bonjour = new String ("Bonjour, monde») -, en d'autres termes, créer un nouvel objet de type String et passer la valeur "Bonjour tout le monde" au constructeur. Mais nous allons parler plus à ce sujet dans les objets section ci-dessous.La partie suivante montre comment vous pouvez concaténer des chaînes, dans ce cas, un point d'exclamation est ajouté à la fin de la chaîne. Depuis String est un objet, il peut avoir des méthodes. String.substring () est une méthode qui renvoie une partie d'une chaîne. Dans ce cas, les 5 premiers caractères. String.trim () est une autre méthode qui supprime les espaces avant et arrière. La dernière partie du programme démontre la String.toUpperCase () et String.toLowerCase () méthodes.
La sortie du programme sera:
Bonjour, WorldHello, World! HelloHELLO, MONDE! Bonjour tout le monde!
Vous pouvez en savoir plus sur l'objet String dans Chaîne tutoriel Oracle et à partir de la documentation de Java String.
Boucles
Si il ya une chose un ordinateur est bon, il est en train de faire des tâches répétitives. Pour effectuer une tâche répétitive dans un langage de programmation que vous utilisez une construction appelée une boucle - quelque chose qui fait une boucle autour encore et encore.
Java a trois types de boucle simple: pour boucle, la tandis que boucle, et la faire pendant boucle. Chaque type de boucle suit la même idée de base, vous avez besoin de répéter quelque chose, encore et encore jusqu'à ce qu'une certaine condition est remplie.
Voici un exemple qui montre comment imprimer les numéros 1 à 10, 11 à 20, et 21 à 30, en utilisant les trois types de boucle différents:
Loops public class {static void main (String [] args) {// Pour publiques loopfor (int i = 1- ILT; = 10 i ++) {System.out.println ("i est:" + i) -} / / Alors que Loopint j = 11-tout (JLT; = 20) {System.out.println ("j est:" + j) -j ++ -} // Do While Loopint x = 21-do {System.out.println ( "x est:" + x) -x ++ -} while (x lt; = 30) -}}
Créez un fichier appelé Loops.java avec le code d'en haut, puis le compiler et exécuter comme indiqué précédemment.
La pour boucle comme trois parties. Tout d'abord l'initialisation (int i = 1), Qui est exécuté une seule fois. Dans l'exemple ci-dessus l'initialisation est utilisée pour déclarer un nombre entier je et définir sa valeur à 1. Puis vient l'expression de test (ILT; = 10). Cette expression sera testé chaque fois que la boucle est exécutée. Si le résultat du test est vrai, alors la boucle sera refaire un tour. Dans cet exemple, le test est de vérifier que i est inférieure ou égale à 10. Après chaque itération, la troisième section, l'itération sera exécuté. Dans cet exemple, on augmente la valeur de je par une. Noter que i = i + 1 est le même que i ++.
La tandis que boucle est similaire à la pour boucle, sauf qu'il ne contient pas la phase d'initialisation et la phase de l'itérateur. Cela signifie que l'initialisation doit être fait séparément, d'où la déclaration int j = 11-. L'itérateur doit également être codée séparément. Dans notre exemple, il est de la ligne j ++ qui se trouve à l'intérieur de la boucle après la println ().
UN faire pendant boucle est très similaire à un tandis que boucle avec une grande différence, le test pour voir si la boucle doit continuer est à la fin de la boucle et non au début. Cela signifie qu'un faire pendant est garanti pour exécuter au moins une fois, mais un tandis que boucle n'a même pas besoin d'exécuter du tout, si les conditions ne sont pas remplies à l'entrée dans la boucle.
Comme le tandis que boucle, l'initialisation doit se produire en dehors de la boucle, en l'occurrence: int x = 21- et l'itérateur se produit à l'intérieur de la boucle: x ++. Quand X va plus de 30 la boucle arrêter.
Objets
Comme je l'ai mentionné avant, Java est ce qui est connu comme un (OO) langage de programmation orientée objet et de vraiment réussir dans la programmation Java et la programmation Android il est important de comprendre les concepts OO.
À son niveau le plus simple d'un objet est un ensemble de méthodes (fonctions) qui travaillent sur un ensemble de données. Les données et les méthodes appartiennent à l'objet, et de travailler pour l'objet.
Voici le code source d'un programme très simple qui crée un compteur objet:
Contre public class {int COMPTEUR-publique () {count = 0-} incrément public void () {count ++ -} public int GetCount () {return comptage} static void main (String [] args) publics {Compteur myCounter = nouveau compteur () - System.out.println ("MyCounter est" + myCounter.GetCount ()) - myCounter.Increment () - System.out.println ("MyCounter est" + myCounter.GetCount ()) -}}
L'objet de compteur a un élément de données, la variable entière compter et trois méthodes (autres que principal): Compteur (), incrément (), et GetCount (). Laissant la première méthode pour le moment, vous pouvez voir que Incrément() et GetCount () sont très simples. Le premier ajoute un à la variable interne compter et la seconde renvoie la valeur de compter.
Jusqu'à présent, toutes les méthodes que nous avons commencé avec déclarés public void mais si vous remarquez que la GetCount() Procédé commence par public int. Nous allons parler plus sur public à un moment, mais la différence entre vide et int Est-ce: vide déclare que la méthode ne retourne rien, il n'y aura pas de résultat revenir sur la méthode. Mais int nous dit que la méthode va retourner un certain nombre, en particulier un nombre entier. Vous pouvez effectivement créer des méthodes qui sera de retour tous les types de données, y compris les objets.
Notez que la première méthode a le même nom que la classe elle-même, c.-à- Compteur(), et il n'a pas un type de retour (même pas vide). Ceci est une méthode spéciale appelée un constructeur. Le constructeur est appelé une seule fois, au moment où l'objet est créé. Il est utilisé pour initialiser l'objet avec des valeurs par défaut et effectuer d'autres tâches d'initialisation nécessaires. Dans cet exemple, on met simplement compter à zéro.
Héritage
La grande chose au sujet des classes est que vous pouvez créer une classe générale pour une idée abstraite, puis créer des classes spécifiques qui sont issus de la classe d'origine. Par exemple, vous pouvez créer une classe appelée animal puis dériver une nouvelle classe à partir pour un animal spécifique, dire un Elk.
Voici un exemple, je vais développer ce qui se passe ici, à un moment ... Vous allez avoir besoin de créer deux fichiers pour cet exemple, Animal.java et Elk.java. Voici Animal.java:
Animal public class {int NumberOfLegs-publique animale (int n) {} n = NumberOfLegs GetNumLegs public int () {return NumberOfLegs-}}
Et voici Elk.java:
public class Elk étend animal {int lengthOfAntlers-publiques Elk (int l) {super (4) -lengthOfAntlers = l-} public int GetAntlerLength () {return lengthOfAntlers-} public static void main (String [] args) {Elk myElk = nouvelle Elk (30) -System.out.println ("Antler:" + myElk.GetAntlerLength ()) - System.out.println ("Jambes:" + myElk.GetNumLegs ()) -}}
Pour compiler le programme il suffit de taper:
javac Elk.java
La classe des animaux est ce qui est connu comme un super-classe, alors que la classe dérivée Elk est connu comme une sous-classe, car il est hiérarchiquement en dessous de la classe Animal. Quand une classe est prolongée (c. vous créez une sous-classe) la nouvelle classe prend sur les données et les méthodes de la super classe. Voilà pourquoi le programme est capable d'appeler (myElk.GetNumLegs) même si elle fait partie de la classe Animal. La nouvelle classe Elk a deux variables: NumberOfLegs et lengthOfAntlers. Il dispose également de deux méthodes: GetAntlerLength et GetNumLegs. Si nous avons créé un autre sous-classe, dire Le mouton, il serait hériter de la NumberOfLegs variable et la Méthode GetNumLegs.
Lors de la conception d'objets vous découvrirez que vous voulez quelques méthodes pour être exposés au reste du programme, de sorte qu'ils peuvent être appelés. Mais d'autres méthodes que vous pouvez garder privé, de sorte que seul l'objet lui-même a accès. Ceci est où ce mot public entre en jeu. Nous avons été déclarons tout comme public ce qui signifie que la méthode peut être appelée de partout ailleurs dans le code. Cependant, vous pouvez déclarer des méthodes comme privé ou protégé, ce qui limitera l'accès à ces méthodes. Les mêmes règles d'accès peuvent également être appliquées aux variables de l'objet. Une discussion plus approfondie est au-delà du cadre de ce tutoriel, mais si vous voulez un peu plus d'informations, vous devriez lire Contrôle de l'accès aux membres d'une classe et Déclaration de variables de membres à partir de Java à la documentation d'Oracle.
Une autre chose à noter est de savoir comment les constructeurs travaillent. Le constructeur Elk () initialise le lengthOfAntlers variable dans ce cas à 30, le nombre passa lorsque l'objet a été créé. Mais avant cela, il appelle le constructeur de la classe super (c.-à- Animal() ) en utilisant la notation spéciale Java super.
Il ya beaucoup plus qui peut être dit à propos de la programmation orientée objet (POO), mais cela devrait être suffisant pour vous donner un avant-goût et vous aider à démarrer.
Conclure
Il ya beaucoup de tutoriels en ligne pour en apprendre davantage à propos de Java. Voici quelques-uns d'Oracle:
- Mise en route - Une introduction à la technologie Java et des leçons sur l'installation de logiciels de développement Java et de l'utiliser pour créer un programme simple.
- Apprendre le langage Java - Leçons décrivant les concepts et les caractéristiques essentielles du langage de programmation Java.
- Classes essentielles Java - Leçons sur les exceptions, Basic Input / sortie, la concurrence, les expressions régulières, et l'environnement de la plate-forme.
Vous pouvez également regarder les tutoriels suivants:
- Tutoriels Point - Tutorial de Java
- Introduction à la programmation Utilisation de Java
Pour ceux d'entre vous qui voudraient un ebook ou un livre imprimé sur la programmation Java, alors vous voudrez peut-être envisager les mesures suivantes:
- Java: Guide du Débutant
- Head First Java
- Programmation Java pour les débutants - Un Simple Start Pour Programmation Java
En outre, de bons livres sur la programmation Android comprennent:
- Programmation Android: Le Guide Ranch Big Nerd
- Le Guide du débutant à Jeu Android développement
- Java apprentissage en construisant Jeux Android