0% ont trouvé ce document utile (0 vote)
17 vues55 pages

Cours1 Bases de Programmation Java

Le document présente les bases de la programmation en Java, incluant son historique, ses caractéristiques, et son architecture, notamment la Machine Virtuelle Java (JVM). Il aborde également l'installation de l'IDE Netbeans et du JDK, ainsi que des concepts fondamentaux comme les types de données, les identificateurs, et les opérateurs. Enfin, il fournit un exemple de programme simple et décrit les étapes de compilation et d'exécution d'un programme Java.

Transféré par

jojoyeux811
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues55 pages

Cours1 Bases de Programmation Java

Le document présente les bases de la programmation en Java, incluant son historique, ses caractéristiques, et son architecture, notamment la Machine Virtuelle Java (JVM). Il aborde également l'installation de l'IDE Netbeans et du JDK, ainsi que des concepts fondamentaux comme les types de données, les identificateurs, et les opérateurs. Enfin, il fournit un exemple de programme simple et décrit les étapes de compilation et d'exécution d'un programme Java.

Transféré par

jojoyeux811
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bases de la

programmation en
langage Java
Plan
 Introduction
 Historique
 Caractéristiques
 Machine Virtuelle Java (JVM)
 Installation de l’IDE Netbeans et du JDK
 Test d’un premier programme
 Types de données en Java
 Identificateurs
 Opérateurs et expressions
 Les instructions conditionnelles
 Travaux Pratiques

Programmation en Langage Java 2


Introduction
 Depuis les années 80, les informaticiens recherchent le moyen de
s'affranchir des différentes plates-formes matérielles.
 Le C et le C++ sont très fortement dépendants du type de processeur, de
l'infrastructure matérielle et du Système d‘Exploitation.
 Pour qu'un programme fonctionne sur plusieurs systèmes différents, il faut le
compiler plusieurs fois, et parfois, faire des modifications partielles de code.

 L'idée de Java est de pouvoir écrire et exécuter le même


programme, quelque soit le système support.
 Langage Orienté Objet
 La programmation orientée-objet (introduite par le langage SmallTalk) propose
une méthodologie centrée sur les données.
 Le programmeur Java identifie d’abord un ensemble d’objets, tel que chaque
objet représente un élément qui doit être utilisé ou manipulé par le programme,
sous la forme d’ensembles de données.
 Ensuite, le programmeur va écrire les traitements, en associant chaque
traitement à un objet donné.
Programmation en Langage Java 3
Qu’est ce que Java?
 Le langage Java est un langage généraliste de
programmation synthétisant les principaux langages
existants lors de sa création en 1995 par Sun
Microsystems.
 Il permet une programmation orientée-objet (à l’instar
de SmallTalk et dans une moindre mesure, C++),
modulaire (langage ADA) et reprend une syntaxe très
proche de celle du langage C.

Programmation en Langage Java 4


Historique
 Java hérite principalement sa syntaxe (procédurale) du C.
 Langage généraliste, aussi versatile que C++.
 Plusieurs simplifications notables par rapport au C++.
 Très vaste bibliothèque de classes standard
 A partir de 1993, chez Sun, développement pour créer un langage
adapté à Internet.
 En 1995, annonce officielle de Java (conçu, entre autres, par James
Gosling, Patrick Naughton, Crhis Warth, Ed Frank, Mike Sheridan et Bill
Joy).
 Milieu 1996, sortie de Java 1.02, première version distribuée par
JavaSoft (filiale de Sun).

Programmation en Langage Java 5


Les éditions de Java
 Trois (3) éditions de Java
 Java SE : Java Standard Edition ; JDK = Java SE
Development Kit
Applications "stand-alone"
 Java EE : Java Enterprise Edition
Applications à large échelle, applications distribuées,
applications Web.
 Java ME : Java Micro Edition
version pour écrire des programmes embarqués (carte
à puce/Java card, téléphone portable,…)

Programmation en Langage Java 6


Les versions de Java
 Versions 1.01 en 1995 et 1.02 en 1996,
 Versions 1.1 en 1998 et 1.2 (finalement rebaptisée Java 2) en 1999,
1.3 en 2000,
 Versions 1.4 en 2002, 5.0 en 2004,
 On parle du J2SE 1.4 (Java 2 Standard Edition 1.4) basée sur le JDK 1.4
(Java Development Kit 1.4), et de J2SE 5 (JDK 5.0) ou encore de Java 5.
 En 2006, la version suivante s’intitule JSE 6, ou plus simplement Java 6.
 En 2011, Java SE 7
 En Octobre 2014, sortie de Java SE 8.
 Java 8 Update 161 (16 Janvier 2018)

Programmation en Langage Java 7


Quelques caractéristiques
 Java est un langage :
 Simple
 Similaire au C et au C++ mais avec des simplifications
 Orienté objet
 Tout est objet
 Modulaire
 on peut écrire des portions de codes génériques, c’est-à-dire
utilisables par plusieurs applications
 Réparti
 Java a été construit avec Internet en tête.
 Riche bibliothèque pour l’accès aux URL
 la programmation client/serveur via des sockets TCP et UDP,
 l’exécution de méthodes distantes, gestion des serveurs web via
les Servlets, etc

Programmation en Langage Java 8


Quelques caractéristiques (2)
 Java est un langage :
 Interprété
 Le code produit après compilation n’est pas du code machine, c’est du bytecode
 Le bytecode est exécuté par un interpréteur Java : la Java Virtual Machine (JVM)
 Robuste
 Typage fort, pas de pointeur, contrôle d’accès, ramassage de miette, etc
 Sûr
 la plupart des erreurs se produisent à la compilation et non à l’exécution donc évite
d’exécuter du code dommageable.
 Indépendant de l’architecture
 Le bytecode est indépendant de la plate-forme.
 Les bibliothèques sont intégrées de manière standard au langage, à l’encontre de
C++.
 Portable
 Un même programme compilé peut s’exécuter dans différents environnements, sur
différentes plate-formes, quel que soit le processeur ou le SE

Programmation en Langage Java 9


Quelques caractéristiques (3)
 Java est un langage
 Econome
 Le pseudo code a une taille relativement petite car les bibliothèques de classes
requises ne sont liées qu'à l'exécution.

 Multitâches ou multi-activités (multi-thread) et dynamique.


 L’un des premiers langages à posséder en interne des tâches, ou activités
(threads) d’exécution.
 La coordination des activités est aisée

Programmation en Langage Java 10


JVM
 Le pseudo-code ou bytecode n'est pas exécutable directement
sur la plate-forme (système d'exploitation) pour laquelle il a été
compilé.
 Il est nécessaire de passer par un logiciel appelé une machine
virtuelle.
 La machine virtuelle lit le pseudo-code et l'interprète (i.e.
l'exécute).
 Le grand avantage de Java est que le pseudo-code ne dépend
pas de la plate-forme mais de la machine virtuelle. Un programme
compilé peut être exécuté par n'importe quel Système
d’Exploitation.
 Nécessité de posséder une machine virtuelle Java (JVM) adaptée à
cette plateforme.

Programmation en Langage Java 11


JVM (2)

Programmation en Langage Java 12


Outils pour tester un programme
Java
 En 2009, Sun Microsystems est racheté par Oracle Corporation qui
fournit dorénavant les outils de développement Java SE (Standard
Edition) contenus dans le Java Development Kit (JDK).
 Installation du JDK
 Le JDK (Java Developpement Kit) de Java est livré, en standard,
avec différentes bibliothèques ou "paquetages" ou "API"
(Application Programming Interface) fournissant de nombreuses
classes utilitaires.
 Integrated Development Environment
 Jbuilder, Eclipse, Netbeans, …

Programmation en Langage Java 13


Outils pour tester un programme
Java (2)
 JDK
 [Link]
wnloads/[Link]
 [Link]
 [Link]
 NetBeans IDE 8.2
 [Link]

Programmation en Langage Java 14


Premier exemple de programme
Java
 Voici un exemple très simple de programme qui se contente
d’afficher dans la fenêtre console le texte : Mon premier
programme

public class PremProg


{
public static void main (String args[])
{
[Link] ("Mon premier
programme Java") ;
}
}

Programmation en Langage Java 15


Premier exemple de programme
Java (2)
 Nous avons utilisé les classes System et String ;
 Ces classes appartiennent à [Link] qui est
implicitement importé
 La méthode main() doit être static
 main doit être une méthode de classe pour qu'on puisse
l'invoquer directement à partir de la classe sans avoir
besoin de construire une instance de la classe.
 La méthode main() doit déclarer l'argument String
 main() doit déclarer la chaîne d'arguments même si on
ne lui passera rien lors de l'exécution.

Programmation en Langage Java 16


Etapes de l’exécution d’un programme
en Java
 Saisir le code et le sauvegarder dans un fichier. Ici, ce dernier devra
impérativement se nommer [Link].
 En effet, quel que soit l’environnement concerné, le code source d’une
classe publique doit toujours se trouver dans un fichier portant le même
nom et possédant l’extension java.
 On procède à la compilation
 un code intermédiaire formé de bytecodes.
 On obtiendra un fichier portant le même nom que le fichier source et
l’extension class, donc ici [Link].
 On procède maintenant à l’exécution du bytecode
 On pourra lancer l’exécution du bytecode ainsi obtenu par l’intermédiaire
de la Machine Virtuelle Java.

Programmation en Langage Java 17


Exemple de programme et son
exécution
 S’il s’agit du JDK de SUN, on compilera avec la commande
 javac [Link]
 On exécutera avec la commande suivante (attention à ne pas
mentionner d’extension à la suite du nom du programme) :
 java PremProg
 On obtiendra
 Mon premier programme Java
 Avec un environnement de développement "intégré", on sera
amené à utiliser des menus pour effectuer ces deux étapes.

Programmation en Langage Java 18


Etapes préliminaires à la
compilation avec JDK
 Créer la variable système JAVA_HOME
 Valeur
 C:\Program Files\Java\jdk1.8.0_74

 Ajouter dans la variable path


 C:\Program Files\Java\jdk1.8.0_74\bin
 Ou encore %JAVA_HOME%\bin

Programmation en Langage Java 19


Syntaxes du langage Java

Programmation en Langage Java 20


Identificateurs
 Un identificateur est un nom qui identifie de façon unique
une variable, une méthode ou une classe
 Règles générales
 Identificateur :
 suite de lettres,
 minuscules ou majuscules,
 chiffres,
 underscore (_) et dollar ($).

 Un identificateur ne doit pas commencer par un chiffre.


 Java distingue les minuscules des majuscules (sensibilité à la
casse)
 Exemple : « Valeur » diffère de « VALEUR »

Programmation en Langage Java 21


Identificateurs(2)
 Conventions
 Toute méthode publique et variable d’instance
commence par une minuscule.
 Variables locales et privées : lettres minuscules avec
des underscores.
 Ex : next_val, temp_val.

 Variables dites final représentant des constantes :


lettres majuscules avec underscores.
 Ex: DAY_FRIDAY, GREEN.

 Tout nom de classe ou d’interface commence par une


majuscule

Programmation en Langage Java 22


Mots clés du langage

Programmation en Langage Java 23


Mots clés du langage (2)
 Les mots clés sont toujours écrits en minuscules, comme en
C/C++.
 De façon générale, les mots clés Java peuvent être classés par
catégorie selon leurs fonctions de la façon suivante (exemples
entre parenthèses) :
 Mots clés de déclaration des données (boolean, float, int,..)
 Mots clés de boucle (continue, while, for,..)
 Mots clés conditionnels (if, else, switch)
 Mots clés d’exception (try, throw, catch)
 Mots clés de structure (class, extends, implements,..)
 Mots clés de modification et d’accès (private, public, transient,..)
 Mots clés divers (true, null, super,..)

Programmation en Langage Java 24


Types de données en Java
 Entité qui représente une valeur spécifique pouvant être stockée en
mémoire.
 Il y a deux catégories de types de données : intégrés et composites.
 Les types de données intégrés (ou primitifs) peuvent ensuite être divisés en
trois autres catégories : numérique, booléen et caractère.
 Ils sont compris par le compilateur et ne nécessitent pas de bibliothèques
spéciales.

 Les types composites sont de deux sortes : tableaux et chaînes.


 Généralement, les types composites nécessitent l’utilisation de bibliothèques
spéciales.

Programmation en Langage Java 25


Les types primitifs
 Huit types primitifs :
 Entiers : byte, short, int et long, tous signés.
 Nombres à virgule flottante : float et double.
 Caractères : char.
 booléens : boolean, pour les valeurs logiques.

Programmation en Langage Java 26


Types de données numériques

Type Taille Description (valeurs extrêmes)


byte 8 bits très petit nombre entier signé (–128 ⇒127)
short 16 bits nombre entier signé court (–32768 ⇒ 32767)
int 32 bits nombre entier signé (–2.14e+9 ⇒ 2.14e+9)
long 64 bits nombre entier signé long (–9.22e+18 ⇒ 9.22e+18)
float 32 bits nombre en virgule flottante (1.402e-45 ⇒ 3.402e+38)
double 64 bits nombre en virgule flottante double précision (4.94e-324
⇒ 1.79e+308)

Programmation en Langage Java 27


Types de données booléens
 Un type de données booléen a deux valeurs : true et false. A
la différence de C/C++, qui stocke les types de données
booléens sous forme numérique (0 pour false et 1 pour true),
Java utilise le type de données intégré boolean.
 Les variables de type boolean non initialisées ont
automatiquement la valeur false.
 int a = 1, b = 0;
 boolean bool = a < b; //bool a la valeur false

Programmation en Langage Java 28


Types de données caractère
 Java utilise le type de données char pour stocker un
caractère Unicode unique.
 Toutefois, le type char de Java a une largeur de 16 bits,
alors qu’il n’a que 8 bits de large (par défaut) dans
C/C++.

Programmation en Langage Java 29


Types de données composites: les
tableaux
 Un tableau est une structure de données qui peut contenir
plusieurs éléments du même type.
 Les éléments d’un tableau peuvent être de n’importe quel type :
type primitif, type composite ou classe définie par l’utilisateur.
 Exemples de déclaration
 int idEtudiant[];
 char[] grades;
 float coordonnees[][];
 En java la taille du tableau n’est pas précisée ;
 Contrairement, dans la plupart des langages, la taille d’un tableau
doit faire partie de sa déclaration.
 Les crochets peuvent suivre l’identificateur, comme dans le
premier exemple ou suivre le type de données, comme dans le
deuxième exemple.
Programmation en Langage Java 30
Types de données composites: les
tableaux (2)
 Pour affecter réellement de la mémoire aux variables
tableaux, il faut utiliser l’opérateur new de la façon
suivante :
 int idEtudiant[] = new int[20];
 char[] grades = new char[20];
 float[][] coordonnees = new float[10][5];
 Quand un tableau est créé, tous ses éléments sont vides.
 Dans Java, l’utilisation de l’opérateur new est semblable à
l’utilisation de la commande malloc en langage C et de
l’opérateur new en C++.

Programmation en Langage Java 31


Types de données composites: les
tableaux (3)
 Initialisation
 char[] grades = {‘A’, ‘B’, ‘C’, ‘D’, ‘F’};
 float[][] coordonnees = {{0.0, 0.1}, {0.2, 0.3}};
 Accès aux éléments du tableau
 Premier Elément => grades[0]; //premier Elément = ‘A’
 Cinquième Elément => grades[4]; //cinquième Elément = ‘F’
 Ligne 2 Colonne 1 => coordonnees[1][0]; //ligne 2 Colonne 1 =
0.2
 Autre exemple
 int[] tableauInt = new int [5];
 int index;
 for (index = 0; index < 5; index++)
 tableauInt [index] = index;

Programmation en Langage Java 32


Types de données composites: les
chaînes de caractères
Chaîne: suite de caractères.
 Pour stocker des chaînes, Java utilise le type String. Ce type de
données fait partie du paquet [Link]
 String s = new String (“Bureau");
 Pour disposer d’un meilleur contrôle sur vos chaînes, utilisez la
classe StringBuffer.
 fournit des méthodes permettant de modifier le contenu des chaînes.
 Exemple
 StringBuffer s = new StringBuffer ("Bureau");
 [Link] (1, 'e'); //s a maintenant la valeur "Bereau"

Programmation en Langage Java 33


Opérateurs : Opérateurs
arithmétiques

Programmation en Langage Java 34


Opérateurs : Opérateurs
arithmétiques (2)
class IncDec {
public static void main(String args[]) {
int a = 1;
int b = 2;
int c = ++b;
int d = a++; La sortie du programme est :
c++; ???
[Link]("a = " + a);
[Link]("b = " + b);
[Link]("c = " + c);
[Link]("d = " + d);
}
}

Programmation en Langage Java 35


Opérateurs : Opérateurs entiers
sur les bits
 On peut manipuler les bits des types entiers long, int,
short, char et byte à l’aide des opérateurs suivants :

 Exemple
 short i = 13; //i a la valeur 0000000000001101
 i = i << 2; //i a la valeur 0000000000110100
 i >> 3; //i a la valeur 0000000000000001
Programmation en Langage Java 36
Opérateurs : Opérateurs
relationnels
 Tout type java, y compris les types primitifs et les références
à des instances d’objets peuvent être comparés avec ==
et !=
 Seuls les types numériques peuvent être comparés avec les
opérateurs d’ordre. Les entiers, flottants et caractères
peuvent être comparés avec les opérateurs d’ordre strict.
 Chaque opérateur renvoie un type boolean.

Programmation en Langage Java 37


Opérateurs : Opérateurs
booléens logiques

Programmation en Langage Java 38


Priorité des opérateurs

Programmation en Langage Java 39


Expressions
 Une expression est une combinaison significative d’identificateurs, de
mots clés, de symboles et d’opérateurs qui a une valeur. De façon
générale, tout ce qui peut être mis du côté droit d’un signe
d’affectation est une expression.
 Voici quelques exemples d’expressions :
 s = "Bonjour à tous";
 x = 123.4;
 y = (x * 5) / 2;
 valeur = obtenirValeur();
 Mammifere m = new Mammifere();
 Affectations de variables
 Expressions d’opérateur
 Affectation d’objet
 … Programmation en Langage Java 40
Les instructions de contrôle :
Instruction switch
 Instruction switch
switch (c){
 Forme strictement analogue à case '1': case '3': case '5': case '7': case
celle du C '9':
[Link]("c est un chiffre
switch ( expression ) { impair");
case valeur1 : break;
break; case '0': case '2': case '4': case '6': case
case valeurN : '8':
break; [Link]("c est un chiffre pair");
default : break;
} default :
[Link]("c n’est pas un
chiffre");
}

Programmation en Langage Java 41


Les instructions de contrôle :
Instruction if-else
 if ( expression-booleenne ) expression1;
 [ else expression2; ]
 expression1 peut être une expression composée
entourée de {}.
 expression-booleenne est toute expression renvoyant
une valeur de type boolean.
if (condition1) {
//blocCode 1
}
else if (condition2) {
//blocCode 2
}
else {
//blocCode 3
}
Programmation en Langage Java 42
Les instructions de contrôle :
Instructions while/do-while/for
 while
 [ initialisation; ]
 while ( terminaison ) {
corps;
[ iteration; ]
 }
 do-while
 [ initialisation; ]
 do {
corps;
[ iteration; ]
} while ( terminaison );
 for
 for (initialisation; terminaison; iteration)
Instructions;
Programmation en Langage Java 43
Les instructions de contrôle :
Instructions while/do-while/for (2)
int x = 1, z = 0;
while (x <= 20) {
z += x;
x++;
}

int x = 0; do{
[Link]("Bouclage");
x++;
}while (x < 10);

int z = 0;
for (int x=1; x <= 20; x++) {
z+= x;
}
Programmation en Langage Java 44
Instructions de contrôle des boucles

 L’instruction break
 L’instruction break permet de sortir d’une structure de boucle
lorsque que la condition de sortie est respectée,
 Quand la boucle rencontre une instruction break, elle se termine
immédiatement en ignorant le code restant.

int x = 0;
while (x < 10){
[Link]("Bouclage");
x++;
if (x == 5)
break;
else
//faire quelque chose d’autre
}
Programmation en Langage Java 45
Instructions de contrôle des boucles (2)
 L’instruction continue
 L’instruction continue permet d’ignorer le reste de la
boucle et de reprendre l’exécution à l’itération
suivante de la boucle.
for ( int x = 0 ; x < 10 ; x++)
{
if(x == 5)
continue; //revient au début de la boucle avec
x=6
[Link]("Bouclage");
}
 Cet exemple n’imprime pas “Bouclage” si x a la valeur
5.

Programmation en Langage Java 46


Les commentaires
 Les commentaires sont des instructions écrites en langage naturel par
le programmeur pour ajouter des remarques concernant le code.
Dans Java, il y a trois styles de commentaires.
 Le premier commence par /* et se termine par */ ;
 il permet d’écrire des commentaires sur plusieurs lignes. Ce style est
identique à celui du langage C.
 x = y + z; /* Ceci est un commentaire.*/
 z = q / p; /*Ce commentaire
 s’étend sur deux lignes*/
 Le deuxième commence par /** et se termine par */.
 Ce style est utilisé par l’outil javadoc du JDK pour générer
automatiquement une documentation à partir du code source.

Programmation en Langage Java 47


Les commentaires (2)
 Le troisième style de commentaire est tiré du langage C++.
Il commence par // et ne peut être écrit que sur une ligne.
Voici un exemple :
 x = y + z; //Ce commentaire ne peut pas être écrit sur
plusieurs lignes

Programmation en Langage Java 48


Exercice 1 - Compte à rebours
 Ecrire un programme affichant les valeurs n, n - 1,n-2, : : :, 1, 0, n étant
un nombre entier.

Programmation en Langage Java 49


Exercice 2 – Création de tableaux et
affichage
 Créer un tableau de 20 entiers, y placer les nombres de
1 à 20, inverser l'ordre des éléments et les afficher.

Programmation en Langage Java 50


Exercice 3 - Nombres parfaits
 Un nombre parfait est un nombre égal à la somme de ses diviseurs
stricts. Par exemple, 6 a pour diviseurs stricts 1, 2 et 3, comme 1 + 2 + 3
= 6, alors 6 est parfait.
 Ecrire un programme en langage Java qui dit si un nombre n est un
nombre parfait, ou non.

Programmation en Langage Java 51


Exercice 4 - Nombres amis
 a et b sont des nombres amis si la somme des diviseurs stricts de a est
égale à b et si la somme des diviseurs stricts de b est égale à a.
 Soient x et y, deux entiers strictement positifs. x est un diviseur strict de y si x
divise y et x est différent de y. Par exemple, 3 est un diviseur strict de 6.
Mais 6 n'est pas un diviseur strict de 6.
 1. Ecrire une fonction public static int sommeDiviseursStricts(int n), elle
doit renvoyer la somme des diviseurs stricts de n.
 2. Ecrire une fonction public static boolean sontAmis(int a, int b), elle
doit renvoyer true si a et b sont amis, false sinon.
 3. Appeler dans la fonction principale, la fonction sontAmis avec
deux nombres entiers positifs pour savoir si ces deux nombres entiers
sont amis.
 A titre indicatif
 le plus petit couple de nombres amis connu est 220 et 284.

Programmation en Langage Java 52


Exercice 5 - Nombres premiers
Ecrire un programme en langage Java qui dit si un nombre entier
positif non nul est premier ou non.
NB: Un nombre entier positif non nul est dit premier lorsqu’il n’est
divisible que par lui-même et par 1.

Programmation en Langage Java 53


Exercice 6 – Somme des n premiers
nombres premiers
Ecrire un programme qui affiche la somme des n premiers nombres
premiers, n étant fixé dans le programme.
Par exemple, les 4 premiers nombres premiers sont : 2 3 5 7

Programmation en Langage Java 54


Bibliographie
 Programmer en Java, Claude Delannoy
 Java examples in a Nutshell, D. Flanagan,
 Object Oriented Programming using Java, Simon Kendal
 Java: Classes in Java Applications : An Introduction to Java
Programming, David Etheridge
 Mieux programmer en Java : 68 astuces pour optimiser son
code, Petter Haggar

Programmation en Langage Java 55

Vous aimerez peut-être aussi