Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Centre un

Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Centre universitaire de BBA Institut des Sciences et de la Technologie Département d'électronique Filière : Électronique et Télécommunication SUPPORT DE COURS JAVA INTRODUCTION ET PROGRAMMATION OBJET AVANCÉE Par : Mezaache Salah Eddine ANNEE UNIVERSITAIRE 2011/2012 1 Partie 1 Introduction au langage Java 2 1.Introduction Nous traitons Java d'abord comme un langage de programmation classique. Nous aborderons les objets ultérieurement. Le langage Java est un langage orienté­objet fortement typé. ‒ un des langages objets les plus utilisés ! Parmi les avantages de Java, on peut citer : ‒ langage populaire, ‒ une grande bibliothèque de fonctionnalité prédéfinies, ‒ un typage fort, ce qui permet au compilateur d’effectuer de nombreuses vérifications lors de la compilation ==> moins de «bugs»... , ‒ langage indépendant de la plate­forme, ‒ langage adapté aux systèmes de communications (programmation distribuée). 2.La structure d'un programme Java Un programme Java n'utilisant pas de classe définie par l'utilisateur ni de fonctions autres que la fonction principale main pourra avoir la structure suivante : public class test1{ public static void main(String arg[]){ ... code du programme }// fin de la méthode ou fonction statique main } // fin de la class test1 La fonction main, appelée aussi méthode est la première méthode à être exécutée lors de l'exécution d'un programme Java. Elle doit avoir obligatoirement la signature : public static void main(String arg[]) Ou public static void main(String[] arg) Le nom de l'argument arg peut être quelconque. C'est un tableau de chaînes de caractères représentant les arguments de la ligne de commande. Nous y reviendrons un peu plus loin. Au début du code source et avant la définition de la classe, il est usuel de trouver des instructions d'importation de classes. Par exemple : import java.io.*; public class test1{ public static void main(String arg[]){ ... code du programme }// main }// class Prenons un exemple. Soit l'instruction d'écriture suivante : 3 System.out.println("Hello, world"); qui écrit Hello, world à l'écran. Il y a dans cette simple instruction beaucoup de choses : ‒ System est une classe dont le nom complet est java.lang.System ‒ out est une propriété de cette classe de type java.io.PrintStream, une autre classe ‒ println est une méthode de la classe java.io.PrintStream. On peut assimiler une classe à une ressource. Ici, le compilateur aura besoin d'avoir accès aux deux classes java.lang.System et java.io.PrintStream. Les centaines de classes de Java sont réparties dans des archives aussi appelées des paquetages (package). Les instruction import placées en début de programme servent à indiquer au compilateur de quelles classes externes le programme a besoin (celles utilisées mais non définies dans le fichier source qui sera compilé). Ainsi dans notre exemple, notre programme a besoin des classes java.lang.System et java.io.PrintStream. On le spécifie avec l'instruction import. On pourrait écrire en début de programme : import java.lang.System; import java.io.PrintStream; Un programme Java utilisant couramment plusieurs dizaines de classes externes, il serait pénible d'écrire toutes les fonction import nécessaires. Les classes ont été regroupées dans des paquetages et on peut alors importer le paquetage entier. Ainsi pour importer les paquetages java.lang et java.io, on écrira : import java.lang.*; import java.io.*; Le paquetage java.lang contient toutes les classes de base de Java et il est importé automatiquement par le compilateur. Aussi finalement n'écrira­t­on que : import java.io.*; 2.1.Compilation et exécution d'un programme Java Le cycle de développement d'un programme en java est illustré par la figure. À la différence des langages classiques, le compilateur java ne produit pas du code binaire directement exécutable par le processeur cible, mais un code intermédiaire appelé bytecode. 2.2.2.2.Notion de bytecode Bytecodes1 Java est un “langage intermédiaire” entre compilation et exécution : 1 Le terme bytecode vient de byte car chaque instruction de la JVM est codée à l’aide d’un byte ==> à chaque instruction correspond un opcode de 8 bits. Exemple : l’addition de deux entiers est représenté par l’opcode IADD et correspond à 60 en hexadécimal. 4 − Langage dans lequel est compilée un programme Java : javac Salut.java produit Salut.class contenant des bytecodes. − Pas vraiment “humainement lisible” et dans ce sens, il ressemble à du code assembleur, mais attention, les bytecodes sont interprétés par la machine virtuelle et donc pas exécutés directement par le processeur. C’est à la machine virtuelle de traduire ces bytecodes en code machine : java Salut − La machine virtuelle va ouvrir le fichier Salut.class et interpréter les bytecodes contenus ! 2.3.Indépendance de la plateforme Java : La JVM pour processeurs Intel ou AMD peut interpréter du bytecode généré sur Sparc (voire figure ci­ dessus) C++ : le code machine généré sur Pentium est inutilisable sur Sparc (sauf éventuelle cross­compilation) − Le bytecode rend le programme indépendant de la plateforme; − Possibilité de démarrer le programme sur un autre processeur sans ré­compilation Pour autant que la JVM soit installée; − L’idée de la “platform independence” (et de Java) : “Write once, run anywhere”; − Salut.java ==> autre processeur; – Compilation + interprétation nécessaire; – La compilation est lente; – Le compilateur est un gros programme. − Salut.class ==> autre processeur – Seulement l'interprétation est nécessaire; – L'interprétation est rapide; – La JVM est petite. 5 2.4.Cycle de développement − Les phases d'écriture et de Correction sont effectuées à l’aide d’un éditeur de texte (emacs, Xemacs, gedit, notepad, . . . ). Exemple : gedit Salut.java (système Gnu/Linux) − La phase de Compilation se fait à l’aide de la commande javac. Exemple : javac Salut.java − La compilation produit un fichier avec l'extension .class Exemple : javac Salut.java produira le fichier Salut.class − La phase d'interprétation se fait à l’aide de la commande java. Exemple : java Salut 6 3.Éléments du langage Java Cette section présente les concepts fondamentaux relatifs aux éléments du langage de programmation Java. 3.1.Identificateur L’identificateur est le nom que vous choisissez pour appeler un élément (une variable ou une méthode, par exemple). Java accepte tout identificateur correct, mais, pour un bon usage, il vaut mieux utiliser un terme simple du langage modifié pour répondre aux exigences suivantes : ‒ Il doit commencer par une lettre. A vrai dire, il peut commencer par un symbole monétaire Unicode ou par un caractère de soulignement (_), mais certains de ces symboles peuvent être utilisés dans les fichiers importés ou par les traitements internes. Il vaut donc mieux les éviter. ‒ Il peut contenir tous les caractères alphanumériques (lettres ou chiffres), des caractères de soulignement ou des symboles monétaire Unicode (£ ou $, par exemple), mais pas d’autres caractères spéciaux. ‒ Il doit être constitué d’un seul mot (sans espace ni tiret). L’utilisation des majuscules dans un identificateur dépend de son type. Java distingue les majuscules des minuscules, soyez donc attentif à l’utilisation des majuscules. 3.2.Type de données Les types de données permettent de répertorier le type d’information que peuvent contenir certains éléments de programmation Java. Les types de données se divisent en deux catégories : ‒ Primitifs ou de base ‒ Composites ou de référence Différents types de données peuvent contenir différentes quantités d’informations. Vous pouvez convertir le type de données d’une variable en un autre type en respectant certains règles, Java vous empêche de faire courir un risque à vos données. Cela veut dire qu’il vous laissera convertir une variable ou un objet en un type plus grand, mais essaiera de vous empêcher de les convertir en un type plus petit. Pour changer un type de données ayant une grande capacité en un type de capacité moindre, vous devez utiliser une instruction particulière, qu’on appelle le transtypage. 3.2.1.Types de données primitifs Les types de données primitifs, ou de base, sont les booléens (qui spécifient un état actif ou inactif), les caractères (simples ou Unicode), les entiers (nombres entiers) ou les nombres en virgule flottante (nombres décimaux). Dans le code, les types primitifs sont tout en minuscules. Le type de données booléen est appelé boolean, et prend une des deux valeurs : true ou false. Java ne stocke pas ces valeurs sous forme numérique, mais utilise pour cela le type de 7 données boolean. Le type de données caractère est appelé char et prend comme valeurs des caractères Unicode simples d’une longueur de 16 bits. Dans Java, les caractères Unicode (lettres, caractères spéciaux et marques de ponctuation) sont placés entre apostrophes : ’b’. La valeur par défaut d’un caractère Unicode dans Java est \u0000, et les valeurs vont de \u0000 à \uFFFF. En Java, la taille des types de données primitifs est absolue, elle ne dépend pas de la plate­forme. Cela renforce la portabilité. Les types de données numériques acceptent les nombres de différentes sortes et de différentes tailles. Leurs noms et leurs capacités sont énumérés ci­dessous : Type Attributs double Type en virgule flottante qui prend un nombre sur 8 octets. int Type entier qui prend un nombre entier sur 4 octet. long Type entier qui prend un nombre entier sur 8 octets. float Type en virgule flottante qui prend un nombre sur 4 octets . short Type entier qui prend un nombre entier uploads/S4/ cours-java-master-1-reseaux-et-technologies-de-telecommunications.pdf

  • 75
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 28, 2022
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 1.1977MB