0% ont trouvé ce document utile (0 vote)
6 vues41 pages

Introduction à Java pour débutants

Transféré par

mesdesire123
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)
6 vues41 pages

Introduction à Java pour débutants

Transféré par

mesdesire123
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

Java

Chapitre 1: Objets et Classes

Dr. Ahmad Khoureich Ka

UADB L2 D2AW

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 1 / 37


Sommaire

1 Introduction
2 Notion d’objet
Exemples d’objets
Un programme orienté objets
3 Les classes
Les données membres
Les méthodes
Définition d’une classe
Manipulation d’objets
Les mots clés : static, final et this
Les enveloppeurs de primitifs
4 Créer et exécuter un programme Java
Créer un programme Java
Compilation et Exécution

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 2 / 37


Introduction

Introduction

+ Le langage Java a été créé en 1995 par Sun Microsystems,

+ Java est un langage :

orienté objet,

modulaire,

fortement typé,

semi-compilé,

portable.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 3 / 37


Notion d’objet

Notion d’objet

+ Java est un langage orienté objet.

+ Un programme Java est un ensemble d’objets interagissant entre


eux pour résourdre un problème donné.

+ Un objet est une entité ayant des propriétés et pouvant faire des
actions.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 4 / 37


Notion d’objet Exemples d’objets

Notion d’objet
Exemple d’objets
+ stylo
Propriétés : couleur, longueur, poids, marque, ...
Actions : écrire, ...

+ écran
Propriétés : taille, résolution, marque, ...
Actions : afficher, s’allumer, s’éteindre, ...

+ 3x2 + 12x + 5 = 0
Propriétés : type, nombre d’inconnues, ...
Actions : as-tu des solutions ? donne tes solutions, ...

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 5 / 37


Notion d’objet Un programme orienté objets

Exemple : un programme orienté objets


Exemple : Écrire un programme permettant d’afficher le nombre de
solutions de 3x2 + 12x + 5 = 0

Indication : Identifiez les objets ou regrouper des données dans des


objets.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 6 / 37


Notion d’objet Un programme orienté objets

Exemple : un programme orienté objets


Exemple : Écrire un programme permettant d’afficher le nombre de
solutions de 3x2 + 12x + 5 = 0

Indication : Identifiez les objets ou regrouper des données dans des


objets.
+ Les objets du programme
3x2 + 12x + 5 = 0
écran

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 6 / 37


Notion d’objet Un programme orienté objets

Exemple : un programme orienté objets


Exemple : Écrire un programme permettant d’afficher le nombre de
solutions de 3x2 + 12x + 5 = 0

Indication : Identifiez les objets ou regrouper des données dans des


objets.
+ Les objets du programme
3x2 + 12x + 5 = 0
écran

+ Algorithme
1 Demander à 3x2 + 12x + 5 = 0 si elle a des solutions,
2 Demander à l’objet écran d’afficher la réponse de
3x2 + 12x + 5 = 0.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 6 / 37


Notion d’objet Un programme orienté objets

Exemple : un programme orienté objets

3x2 + 12x + 5 = 0 écran

Message 2

Message 1
Message 3

Objet principal

Message 1 : as-tu des solutions ?


Message 2 : réponse
Message 3 : affiche réponse
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 7 / 37
Notion d’objet Un programme orienté objets

Notion d’objet
Un autre programme :
Écrire un programme permettant d’afficher le nombre de solutions de
230x2 − 17x + 5 = 0.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 8 / 37


Notion d’objet Un programme orienté objets

Notion d’objet
Un autre programme :
Écrire un programme permettant d’afficher le nombre de solutions de
230x2 − 17x + 5 = 0.
+ Solution : Utiliser le programme précédent en remplaçant l’objet
3x2 + 12x + 5 = 0 par l’objet 230x2 − 17x + 5 = 0.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 8 / 37


Notion d’objet Un programme orienté objets

Notion d’objet
Un autre programme :
Écrire un programme permettant d’afficher le nombre de solutions de
230x2 − 17x + 5 = 0.
+ Solution : Utiliser le programme précédent en remplaçant l’objet
3x2 + 12x + 5 = 0 par l’objet 230x2 − 17x + 5 = 0.

+ Question : Pourquoi peut-on remplacer l’objet 3x2 + 12x + 5 = 0


par l’objet 230x2 − 17x + 5 = 0 ?

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 8 / 37


Les classes

Les classes

+ Un objet a un type. Par exemple 3x2 + 12x + 5 = 0 et


230x2 − 17x + 5 = 0 sont des équations, leur type est Equation.
mouton et chat sont des animaux, leur type est animal.

+ Java appelle le type d’un objet, la classe de l’objet. Donc les


objets 3x2 + 12x + 5 = 0 et 230x2 − 17x + 5 = 0 sont de la classe
Equation et les objets mouton et chat sont de la classe Animal.

+ Un objet est aussi appelé instance d’une classe. Par exemple,


3x2 + 12x + 5 = 0 est une instance de la classe Equation.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 9 / 37


Les classes

Les classes

+ Une classe définit un type de donnée (d’objet). Elle définit toutes


les propriètés et actions des objets dont elle est le type.

+ Les propriétés sont appelées données membres et peuvent être


des données élémentaires (primitifs) ou des objets.

+ Les actions sont appelées méthodes, ce sont des fonctions.

+ Le fait de regrouper des données dans une classe est appelé


encapsulation.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 10 / 37


Les classes Les données membres

Les données de type primitif

+ Un primitif est une donnée élémentaire de base telles que les


nombres entiers, les nombres réels, les caractères et les
booléens.

+ Java définit 8 types de primitifs :


4 types de nombres entiers

2 types de nombres réels

1 type pour les caractères

1 type pour les booléens

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 11 / 37


Les classes Les données membres

Les données de type primitif


Primitifs Taille en mémoire Valeurs Val. par défaut
boolean 1 bit true, false false
char 16 bits 0à −1 216 0
byte 8 bits −128 à +127 0
short 16 bits −215 à 215 − 1 0
int 32 bits −231 à 231 − 1 0
long 64 bits −263 à 263 − 1 0L
float 32 bits ±1.4e−45 à ±3.4e+38 0.0f
double 64 bits ±4.9e−324 à ±1.7e+308 0.0d

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 12 / 37


Les classes Les données membres

Déclaration et initialisation des primitifs

+ Le nom d’une données :


commence par une lettre minuscule,
les mots à l’intérieur du nom commence par une majuscule,
n’utilise que les lettres a-z, A-Z, 0-9, _

Exemple :
boolean b = true;
char c = 'a';
byte tresPetitEntier = 032;
short petitEntier = 0xAE;
int entier = 1024;
long grandEntier = 1234567890L;
float pi = 3.14f;
double grandReel = 3.5e+15;

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 13 / 37


Les classes Les données membres

Les données de type chaine de caractères

+ Java représente les chaines de caractères à l’aide de la classe


String.
+ Une chaine de caractères est donc un objet de la classe String.

Exemple :
Déclaration et initialisation de chaines de caractères
String nom = "Modou";
String adresse = "St Louis";
String info1 = nom + " habite à " + adresse + ".";
float note = 15.5f;
String info2 = nom + " a " + note + " au devoir";

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 14 / 37


Les classes Les méthodes

Les méthodes

+ Une méthode est une fonction, elle représente une action que
peut faire un objet de la classe (ou la classe elle même).

+ Une méthode à une valeur de retour, un nom et une liste


d’arguments.

+ Une méthode utilise le mot clé return pour retourner une valeur.

+ Le nom et la liste des arguments constituent la signature de la


méthode.

+ Le nom d’une méthode :


commence par une lettre minuscule,
les mots à l’intérieur du nom commence par une majuscule,
n’utilise que les lettres a-z, A-Z, 0-9, _
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 15 / 37
Les classes Les méthodes

Les méthodes
Remarque :
Lorsque la méthode ne retourne rien, son type de retour est void.

Exemple :
Une méthode qui multiplie 2 entiers :
int multiplier (int a, int b){
int c;
c = a * b;
return c;
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 16 / 37


Les classes Définition d’une classe

Définition d’une classe

+ La définition d’une classe se fait avec le mot clé class suivi du


nom de la classe puis des données membres et des méthodes
entre accolades.

+ Le nom d’une classe :


commence par une lettre majuscule,
les mots à l’intérieur du nom commence par une majuscule,
n’utilise que les lettres a-z, A-Z, 0-9, _

Exemple : Définition de la classe Equation


class Equation{
// données membres
// méthodes
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 17 / 37


Les classes Définition d’une classe

Constructeur d’une classe

+ Le constructeur d’une classe est la méthode qui permet de


construire les objets de cette classe en initialisant leurs propriétés.

+ Le constructeur a la même structure qu’une méthode ordinaire


mais ne dispose pas de type de retour et son nom doit être
identique à celui de la classe.

+ Lorsque le constructeur ne fait rien, sa définition peut être omise


de la classe.

+ Une classe peut avoir une ou plusieurs constructeurs.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 18 / 37


Les classes Définition d’une classe

Exemple : une classe avec un constructeur


class Equation {
String type = "Equation du second degré";
int a;
int b;
int c;

Equation(int valeurA, int valeurB, int valeurC) {


a = valeurA;
b = valeurB;
c = valeurC;
}

String asTuDesSolutions() {
...
}

void affichesTesSolutions() {
...
}
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 19 / 37


Les classes Manipulation d’objets

Manipulation d’objets

+ Un objet est toujours créé à partir d’une classe.

+ La création d’un objet se fait à l’aide du mot clé new suivi du


constructeur de sa classe.

+ Lorsque la classe ne définit pas de constructeur, Java utilise le


constructeur par défaut pour créer les objets.

+ Le constructeur par défaut d’une classe ne prend pas d’argument


et ne contient pas d’instruction.

+ Le constructeur par défaut n’est disponible que si la classe ne


définit pas de contructeur.

+ Lorsqu’un objet est déclaré sans être créé sa valeur est null.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 20 / 37


Les classes Manipulation d’objets

Manipulation d’objets
Exemple :
+ Création d’objets de la classe Equation
Equation equa1;
equa1 = new Equation(3, 12, 5);

Equation equa2 = new Equation(230, -17, 5);

+ La variable equa1 est la référence de l’objet crée avec new. Elle


fait référence à l’emplacement mémoire où réside l’objet.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 21 / 37


Les classes Manipulation d’objets

Manipulation d’objets

+ La référence est le nom l’objet.


+ La référence permet d’accéder aux données membres et aux
méthodes de l’objet.
+ L’accès à une donnée membre ou à une méthode de l’objet se fait
avec l’opérateur point (.)

Exemple :
Accéder à la propriété type de l’objet equa1
String typeEqua1 = [Link];

Demander à l’objet equa2 si elle a des solutions :


[Link]()

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 22 / 37


Les classes Manipulation d’objets

Les chaines de caractères


Rappel : Java représente les chaines de caractères à l’aide de la
classe String.

+ Une chaine de caractères est alors un objet, elle peut alors être
créée avec l’opérateur new
String nom = new String("Modou");

+ La concaténation de 2 chaines de caractères se fait avec


l’opérateur +.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 23 / 37


Les classes Manipulation d’objets

Les chaines de caractères

+ La classe String dispose entre autres des méthodes suivantes :


int length() pour avoir le nombre de caractères.
String toLowerCase() pour mettre la chaine de caractères en
minuscule.
String toUpperCase() pour mettre la chaine de caractères en
majuscule.
char charAt(int index) pour avoir le caractère à l’indice
spécifié.
boolean equals(Object anObject) pour comparer la chaine
de caractères avec une autre en tenant compte de la casse.
boolean equalsIgnoreCase(String anotherString)
pour comparer la chaine de caractères avec une autre sans tenir
compte de la casse.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 24 / 37


Les classes Les mots clés : static, final et this

Le mot clé static

+ Le mot clé static est utilisé pour désigner une propriété dont la
valeur est identique pour tous les objets de la classe.
+ Le mot clé static est aussi utilisé pour désigner une méthode
qui ne peut accéder qu’aux propriétés static.
+ Une méthode qui accède à une propriété static doit être
déclarée static.
+ Les propriétés et méthodes static sont accessibles à partir de
la classe.
+ Les propriétés et méthodes static sont respectivement
appelées propriétés de classe et méthodes de classe.
+ Les propriétés et méthodes non static sont respectivement
appelées propriétés d’instance et méthodes d’instance.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 25 / 37


Les classes Les mots clés : static, final et this

Exemple :
Soit la classe suivante décrivant les voitures à 4 roues.
class Voiture{
int nombredeRoues;
int anneeDeMiseEnCirculation;
String matricule;
...
}

Toutes les instances de la classe Voiture ont le même nombre de


roues, donc la donnée membre nombredeRoues peut être déclarée
static.

class Voiture{
static int nombredeRoues;
int anneeDeMiseEnCirculation;
String matricule;
...
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 26 / 37


Les classes Les mots clés : static, final et this

Le mot clé static


Remarque 1 :
Les données et méthodes static (de classe) sont accessibles
depuis la classe, alors que le données et méthodes non static
(d’instance) ne sont accessibles qu’à travers les objets.
Exemple :
[Link] = 4; // OK, donnée statique
[Link] = "DK-2013-AA"; //Erreur, donnée non statique

Remarque 2 :
Les méthodes static ne peuvent pas accéder aux données et
méthodes d’instance.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 27 / 37


Les classes Les mots clés : static, final et this

Le mot clé final

+ Le mot clé final est utilisé pour désigner une propriété qui ne
change pas de valeur.
+ Le mot clé final est aussi utilisé pour désigner une méthode qui
ne peut être redéfinie.

Exemple : La donnée membre nombredeRoues vaut toujours 4


quelque soit l’instance de Voiture.

class Voiture{
static final int nombredeRoues = 4;
String anneeDeMiseEnCirculation;
String matricule;
...
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 28 / 37


Les classes Les mots clés : static, final et this

Le mot clé this

+ Le mot clé this permet de désigner l’objet courant.


+ Il est utilisé pour accéder aux données et méthodes de l’objet
courant.
Exemple :
class Equation {
String type = "Equation du second degré";
int a;
int b;
int c;

Equation(int a, int b, int c) {


this.a = a;
this.b = b;
this.c = c;
}

...
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 29 / 37


Les classes Les enveloppeurs de primitifs

Les enveloppeurs de primitifs

+ Pour chaque type primitif, Java définit une classe enveloppe


permettant de le manipuler comme un objet.
+ Les enveloppeurs de primitifs disposent de méthodes permettant
la conversion du primitif en chaine de caractères et vise-versa.
+ Toutes ces méthodes de conversion sont static.

Conversion Conversion
Primitifs Enveloppe primitif → String String → primitif
boolean Boolean toString(boolean b) parseBoolean(String s)
char Character toString(char c) -
byte Byte toString(byte b) parseByte(String s)
parseByte(String s, int base)
short Short toString(short s) parseShort(String s)
parseShort(String s, int base)

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 30 / 37


Les classes Les enveloppeurs de primitifs

Les enveloppeurs de primitifs


Conversion Conversion
Primitifs Enveloppeur primitif → String String → primitif
int Integer toString(int i) parseInt(String s)
toString(int i, int base) parseInt(String s, int base)
long Long toString(long i) parseLong(String s)
toString(long i, int base) parseLong(String s, int base)
float Float toString(float f) parseFloat(String s)
double Double toString(double d) parseDouble(String s)

Exemple :
String nombre = "314";
int n = [Link](nombre); // n = 314

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 31 / 37


Créer et exécuter un programme Java Créer un programme Java

Créer un programme Java

+ Un programme Java peut être constitué d’une ou de plusieurs


classes.

+ Le code source de chaque classe est enregistré dans un fichier


texte ayant le même nom que la classe avec l’extension ".java"

+ Un programme Java doit obligatoirement avoir une classe


principale dont le nom sera celui du programme.

+ La classe principale doit contenir la méthode principale main()


avec la signature suivante :
public static void main(String[] args)

+ La méthode principale est le point d’entré du programme.

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 32 / 37


Créer et exécuter un programme Java Créer un programme Java

Créer un programme Java


Exemple : Écrire un programme permettant d’afficher le nombre de
solutions puis les solutions de 3x2 + 12x + 5 = 0

Nous aurons :
La classe Equation,
la classe principale,
L’objet écran est représenté par [Link]

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 33 / 37


Créer et exécuter un programme Java Créer un programme Java

Classe Equation
class Equation {
String type = "Equation du second degré";
int a;
int b;
int c;

Equation(int a, int b, int c) {


this.a = a;
this.b = b;
this.c = c;
}

public String asTuDesSolutions() {


float delta = b * b - 4 * a * c;
if (delta < 0) {
return "J'ai deux solutions complexes conjuguées.";
} else if (delta == 0) {
return "J'ai une solution réelle double.";
} else {
return "J'ai deux solutions réelles.";
}
}
...
Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 34 / 37
Créer et exécuter un programme Java Créer un programme Java

Classe Equation suite


public void donnesTesSolutions() {
float delta = b * b - 4 * a * c;
if (delta < 0) {
[Link]("x1 = " + (-b / (2f * a)) + " - i" +
[Link](-delta) / (2 * a));

[Link]("x2 = " + (-b / (2f * a)) + " + i" +


[Link](-delta) / (2 * a));

} else if (delta == 0) {
[Link]("x0 = " + (-b / (2f * a)));

} else {
[Link]("x1 = " + (-b - [Link](delta)) /
(2 * a));

[Link]("x2 = " + (-b + [Link](delta)) /


(2 * a));
}
}
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 35 / 37


Créer et exécuter un programme Java Créer un programme Java

Classe principale

public class Programme {

public static void main(String[] args) {


Equation equa = new Equation(230, -17, 5);
String reponse = [Link]();
[Link](reponse);
[Link]();
}
}

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 36 / 37


Créer et exécuter un programme Java Compilation et Exécution

Compilation et Exécution

+ Pour compiler un programe Java, le jdk doit être installé.

+ Le chemin d’accès (path) aux binaires du jdk doit être configuré.

+ La compilation se fait en ligne de commande avec :


javac [Link]

+ Si la compilation se fait sans erreur, des fichiers bytecode (.class)


sont produits.

+ L’exécution se fait en ligne de commande avec :


java ClassePrincipale

Dr. Ahmad Khoureich Ka Java UADB L2 D2AW 37 / 37

Vous aimerez peut-être aussi