Vous êtes sur la page 1sur 49

Langage JAVA

Noreddine Gherabi
Introduction

2
Objet

3
Objet

4
Classe

Person p1=new Person() =====instanciation

5
Classe

Person p1=new Person() =====instanciation


Person p2=new Person()
Classe
Classe
Implémentation de la classe « voiture » :

getters

setters
Classe

des attribues
globales pour tout
les methodes de la
classe
Attributs et variables
Instanciation de la classe
Etats des objets
Affectation et comparaison

if(p1==p2){}
Création d’objet

constructeur
Création d’objet
Constructeur
Constructeur
Constructeur
Construire une voiture de 7CV
Constructeur sans argument
Constructeur sans argument
Getters / Setters

Setters modification

Pour générer les setters :

21
Getters / Setters
Soit la classe Personne :

Pour générer les setters sur Eclipse :

22
Getters / Setters
Utilisation de Setters

public class Main {


public static void main(String[] args) {

Personne personne = new Personne();


personne.setNum(1);
personne.setNom( ’’Anouari ’’);
personne.setPrenom( ’’Said’’);

System.out.println(personne);
}
}

Résultat :
Personne [num=1, nom=Anouari, prenom=Said]

23
Getters / Setters

Getters get==return

public class Main {


public static void main(String[] args) {
Personne personne = new Personne();
personne.setNum(1);
personne.setNom(‘’Anouari’’);
personne.setPrenom( ’’Said’’);
System.out.println(personne.getNum() + " " + personne.
getNom() + " " + personne.getPrenom());
}}

24
Accès aux membres

q Accès aux membres d’un objet : objet.champ p.nom="ahmed"


❙ Attention, objet est une référence p.prenom="lafhal"
❙ Exemple : p.nom est le nom de la personne p. p.age=14
q Appeler/exécuter une méthode : objetappelant.methode(param);
❙ Cela signifie que l’on exécute methode(parametres)
❙ Les méthodes s’exécutent sur un objet p.afficher(ilyass,karimi)
❙ p.affiche() signifie p.affecter(1,5000)
❘On cherche la classe de p : c’est la classe Personne
❘On cherche si une méthode affiche() existe dans la classe Personne:
•si elle n’existe pas, erreur de compilation « Cannot find Symbol »

25
Paramètre this
pour acceder a des attribue
Méthodes existantes

❚ Toutes les classes JAVA héritent de la classe de base Object, qui contient :
❚ Pour l’affichage : toString() public String toString() {
❙ Doit retourner une représentation textuelle de l’objet return "Compte numero " + this.numero +
" : proprietaire " + this.proprietaire +
❙ Elle est utilisée par System.out.println ", montant " + this.montant;
❚ Pour les tests d’égalité : equals() }
❙ a==b ne test pas si les objets a et b sont identiques mais si a et b regarde le même objet, il faut définir le test
d’égalité avec la méthode equals pour comparer deux objets on pose a.equals(b)
Exemple : public boolean equals(Point b) {
class Point { return( x==b.x && y==b.y);
private double x; }

private double y;
/* Constructeur : quelles sont les valeurs initiales d'un point */
public Point (double a, double b) {System.out.println("C1"); x = a; y = b;}
public Point () { System.out.println("Constructeur 2"); x = 0; y = 0; }
public Point (Point a) { System.out.println("Cons 3"); x = a.x; y = a.y; }

public String toString() {return("abscisse:"+x+" ordonnée:"+y);}


// Avec cette methode, on peut afficher point avec System.out.println(a)
public boolean equals(Point b) {return( x==b.x && y==b.y); }
};

27
Exercice

Soit un point définit par les cordonnées x et y

1. Définir une classe Point avec les deux attributs X et Y


2. Définir un constructeur avec les deux paramètres
3. Définir un constructeur avec un Point
4. Définir les getters et les setters des attributs X et Y
5. Définir une méthode Translation qui permet de déplacer un
point par des valeurs (a,b)
6. Définir la même méthode qui déplace un point mais cette
fois à partir d’un autre point existant
7. Redéfinir les méthodes equals et toString
8. Tester votre code

28
Encapsulation getters +setters

on ne peut pas acceder a des attribues private sauf par des methodes par exemple getters et setters

L'encapsulation est une manière de définir une classe de telle


sorte que ses attributs ne puisse pas être directement
manipulés de l'extérieur de la classe, mais seulement
indirectement par l'intermédiaire des méthodes.

29
Accès et protection

Les membres déclarés avec les modificateurs :


v Private : sont accessibles uniquement au sein de la classe dans laquelle ils sont déclarés
v Protected : sont accessibles uniquement aux classes d’un package et à ses classes filles.
v Public : sont accessibles de partout et sans restriction.
v Les membres déclarés sans modificateur d’accès ont une portée d’accès au niveau du
package protected par defaut
Lecture des valeurs
Pour lire la valeur d’une variable

Instancier la classe Scanner

Il importer la classe Scanner : import java.util.Scanner;

q Exemple : Pour lire un entier


int i = scanner.nextInt();

nextInt() : Une méthode de la classe Scanner

31
Lecture des valeurs
Autres méthodes Scanner :

nextChar( ) nextByte nextFloat nextDouble()


nextIntnextBoolean()

Il n’existe pas une méthode spécifiques aux caractères, mais on peut


utiliser la méthode charAt()

Scanner sc=new Scanner(system.in)


system.out.println("entrer votre nom)

int N=sc.nextInt()
system.out.println(N) 32
Les fonctions mathématiques
Objet Math

Calculer le cosinus d'un angle Math.cos ( )

Calculer le sinus d'un angle Math. sin ( )

Calculer la tangente d'un angle Math.tan ( )

Calculer le logarithme d'une valeur Math.log ( )

Calculer l'exponentielle d'un nombre Math.exp ( )

Arrondir à l'entier inférieur Math.floor ( )


Objet Math

Calculer la racine carrée d'un nombre Math.sqrt ( )

ab (a puissance b) Math.pow ( )

|a| (valeur absolue de a) Math.abs ( )

Trouver la plus grande de deux valeurs Math.max ( )

Trouver la plus petite de deux valeurs Math.min ( )

Tirer un nombre au hasard entre 0 et 1 Math.random ( )


Les tableaux
Tableaux en java int[ ] tab=new int[10]
Arrays.fill(tab,15)
le tableau est remplir par 15

int[] tab=new int[3 ]


int tab[ ]=new int[ 3]
int [ ] tab={1,2,3}
int [ ] tab=new int[ ]{1,2,3}

for(int elem:tab)

36
Les tableaux
Tableau des objets
Scanner scanner=new Scanner(system.in)
Création d’un tableau d’objets System.out.println("entrer....")
int[ ]tab=new int [scanner.nextint( )]
§ Déclaration :
Scanner clavier = new Scanner(System.in);
System.out.println("Entrer le nombre de points");

Point [] tab = new Point[ clavier.nextInt()];

§ Créer chaque objet du tableau :`

for (int i=0; i< tab.length ; i++)


tab[i]=new Point(2*i,2*i+1);

length représente la taille du tableau

int[ ][ ]tab={{1,2,3},{4,5,6}}
int[ ][ ]tab=new int[ 3][3 ]
scanner sc=new scanner(system.in)
for(int i =0;i<tab.lenghth;i++){ 37
tab[i]=sc.nextint();
Les chaines de caractères
il est immuable
s1.lenght()
s1.concat( )
s1.toUpperCase( )
s1. toLowerCase()
s1.trim(eviter l espace au debut et a l a fin )
s1.charAt(0) : l element de l indice 0
s1.ramplac("ancien","nouveau")
s1.substring("l indice de debut","nbr des cractere que vous voulez")
s1.equals(s2),s1.compareTo(s2) si 0=sont egual sinon differant a 0 ne sont pas egual
StringToKenizer st=new StringToKenizer(s,"/") separer une phrase
Les chaines de caractères
Les chaines de caractères
Exemple
Comparaison de chaines

s1.concat(s2)
s1+s2
Les opérations sur les chaines

L'opérateur "+" permet de concaténer (mettre bout à bout) des


chaînes de caractères

§ String Text = " Bonjour";


§ String s1 = Text + " Said";
§ String rec = “Salut" + s1 + 3 + ')';
Les opérations sur les chaines

Différentes méthodes permettent de convertir des valeurs de types


primitifs en objets de type String et inversement.
q Ces méthodes se trouvent soit dans la classe String, soit dans les
classes Wrapper associées aux types primitifs ( Byte, Short, Integer,
Long, Float, Double, Character, Boolean ).
q Dans les librairies de base, il existe souvent plusieurs méthodes
pour effectuer un même type de conversion.
Les opérations sur les chaines

La classe String dispose d'un grand nombre de méthodes pour traiter


les chaînes de caractères.
q La méthode length() permet de connaître la longueur d'une chaîne
de caractères (nombre de caractères).
q La méthode charAt() permet de retrouver le caractère situé à la
position n d'une chaîne
q La méthode substring() retourne une sous-chaîne d'une chaîne
donnée. Les paramètres déterminent la position initiale et la
position finale (+1) de la sous-chaîne dans la chaîne originelle.

4eme est exclus


Les opérations sur les chaines

q La méthode split() permet de découper une chaîne de


caractères sur la base d'un séparateur qui est exprimé sous la
forme d'une expression régulière.
Classe StringBuffer StringBuilder

Contrairement à la classe String, la classe StringBuffer permet de créer des


chaînes de caractères modifiables (la taille et le contenu peuvent varier
durant l'exécution de l'application).
§ La notion de capacité (Capacity) représente la taille du buffer interne qui
mémorise la chaîne de caractères (nombre total de caractères disponibles
avant de devoir agrandir la taille du buffer interne).
§ La capacité est automatiquement augmentée lorsque c'est nécessaire. La
capacité initiale peut être définie lors de la création d'un objet
StringBuffer (paramètre du constructeur, 16 par défaut).
§ Ne pas confondre capacité et longueur d'un objet StringBuffer
Classe StringBuffer

@averride
public string toString( ){
return "Eleve{"non"+nom "prenom"+prenom}
pour eviter le hachcode
Classe StringBuffer

Différentes méthodes permettent de manipuler les objets de


type StringBuffer :

insert(indexe,str)

redifinition= @override( meme methode dans la classe parent mais en ajoutant qlq chose)
surcharge=just on ajoute des arrgument dans des methode dans la meme classe
avec la projection des signature

Vous aimerez peut-être aussi