Vous êtes sur la page 1sur 50

Types de variables en java

Boolean(true/false) Short(entier) Int(entier) Char(un caractre) Float(rel) Double(rel) string

Dclaration des variables


Type nomvar=valeur; Int a=10; Char s=A;

Affectation
A=7; A+=6; (A=A+6) A-=6; (A=A-6) A*=6; (A=A*6) a/=6; (A=A/6) A%=6; (A=A%6) reste de division

Oprateurs
Comparaison: == < > <= >= != diffrent

Oprateurs
Logiques: Et && Ou || Non !

Affichage sur lcran


System.out.println()

Instructions conditionnelles
If(condition) { instructions } Else(sinon)

Les cas:
Switch(a) { Case 1:;break; Default:..; }

Boucles
Int i; For(i=0;i<=9;i++) { } While(condition) { } Do { }while();

Lecture des var


Scanner s=new Scanner(System.in); Int a=S.nextInt();
Cette mthode prsente quelques failles: Elle permet la lecture des variables de type int avec nextInt,long avec nextLong, double avec nextDouble,S tring avec nextLine.Nanmoins ,la lecture dun Char nest pas prise en compte.pour cela on propose les deux mthodes suivantes: 1.Char c=s.nextLine().charAt(0); 2. char f=(char)System.in.read();

exercices
1.dclarer deux entiers valeurs initiales, afficher leur somme et leur produit; 2.dclarer un entier valeur initiale, calculer son factoriel et lafficher; 3.dclarer deux rels valeurs initiales, calculer leur moyenne; Effectuer un test, laquelle parmi ces valeurs est suprieure la moyenne?

Exercices (suite)
Ecrire un programme qui permet lutilisateur de saisir un entier n, et dafficher la somme de tous les entiers entre 1 et n Ecrire un programme qui permet lutilisateur de saisir son nom, prnom et son ge .de les afficher dans un message et lui dire sil est jeune ou vieux(<30,<50,>50)

Exercices dentrainement
Exo1:
Lire un entier, dire sil est pair ou impair

Exo2:
Ecrivez un programme qui calcule le produit des entiers impairs de 1 15 et affiche ensuite le rsultat dans un message.

Exo3:
Ecrire un programme qui demande une suite de 10 nombres puis dtermine et affiche le plus grand de ces nombres.

Exo4:
Dessiner un triangle rctangle dtoiles dont le nombre de lignes correspond un entier saisi par lutilisateur

conversion
Lors de linitialisation dune variable de type float ajouter f: Float p=3.14f; Int a=5,b=10;
a/b ------0 Effectuer la conversion: (float)a/b ou (double)a/b Double r=34.154 (Int)r ------- 34

Conversion

string vers int


String ch="1"; Integer re=new Integer(ch); int t=re.intValue();

Tableaux
int tableau[] = new int[50]; // dclaration et allocation OU int[] tableau = new int[50]; OU int tab[]; // dclaration tab = new int[50]; //allocation
Dclaration et allocation dun tableau plusieurs dimensions:

float tableau[][] = new float[10][10];

Tableaux
Initialisation explicite dun tableau : int tableau[] = {10,20,30,40,50}; int tableau[][] = {{5,1},{6,2},{7,3}}; Parcours dun tableau : for (int i = 0; i < tableau.length ; i ++) { ... }

exercices
Dclarer et remplir un tableau dentiers de taille 10,puis afficher le maximum; Dclarer deux tableaux de type entier de taille saisie par lutilisateur .calculer puis afficher leur produit vectoriel; Dclarer et remplir une matrice carre, afficher son transpose(le changement doit affecter galement la matrice)

Dclarer , remplir puis afficher une matrice de la faon suivante: 10101010 01010101 10101010 01010101 10101010 01010101 10101010 01010101

Chaines de caractres(fonctions)
Length + Equals Replace toUpperCase toLowerCase charAt compareTo Substring indexOf

String(exercices)
Ecrire un programme qui lit une chaine et compte le nombre doccurrences dun caractre choisi par lutilisateur: Exemple: hello l ---2 Ecrire un programme qui lit une chaine puis vrifie sil sagit dun palindrome ou non; Exemple: ressasser est un palindrome

Ecrire un programme qui lit une chaine et remplace tous les


occurrences dun caractre a par un autre caractre choisi par lutilisateur
Exemple: chaine saisie: Ca va caractre remplacer :A n la chaine rsultante: Cn vn

String(suite)
Ecrire un programme qui permet de: Lire Une chaine Lire 2entiers (indiquant 2 positions i1 et i2) Et afficher la sous chaine positionne entre i1 et i2 mise en majuscule

Quelques fonctions mathmatiques


Math.sqrt(4,2) Math.pow(3,5) Math.round(5.7) Math.abs(-45.7) Random renvoie une valeur alatoire Exp,log, Cos,sin,tang

POO
L'ide de base de la programmation oriente objet est de rassembler (encapsuler) dans une mme entit appele objet les donnes(proprits) et les traitements(mthodes) qui s'y appliquent. Notions de Classe/Objet: Une classe est une description abstraite d'un objet Objet----instanciation dune classe Cest comme variable est dun type Objet et de type classe

POO
Pour accder une classe il faut dclarer une instance de classe(objet); Une classe se compose en deux parties : un entte et un corps. Le corps peut tre divis en 2 sections : la dclaration des donnes et des constantes ; la dfinition des mthodes; Les mthodes et les donnes sont pourvues d'attributs de visibilit qui grent leur accessibilit par les composants hors de la classe.

POO
Instanciation dun objet: Maclasse m=new Maclasse(); Maclasse m2=m; m et m2 pointent sur le mme objet donc sont identiques(m==m2)

POO
Rfrences: Rectangle r1=new Rectangle(50,100) Rectangle r2=new Rectangle(50,100) r1 et r2 sont deux objets de rfrences diffrentes(r1 #r2)

POO
Variables de classe: Elles ne sont dfinies qu'une seule fois quel que soit le nombre d'objets instancis de la classe. Leur dclaration est accompagne du mot cl static (non modifiable) public class MaClasse() { static int compteur = 0; } MaClasse m = new MaClasse(); int c1 = m.compteur; int c2 = MaClasse.compteur; // c1 et c2 possdent la mme valeur.

POO
La variable this: Cette variable sert rfrencer dans une mthode l'instance de l'objet en cours d'utilisation. this est un objet qui est gal l'instance de l'objet dans lequel il est utilis.

modificateur Public

rle Une variable, mthode ou classe dclare public est visible par tous les autres objets

modificateur protected

rle Si une mthode ou une variable est dclare protected , seules les mthodes prsentes dans le mme package que cette classe ou ses sous classes pourront y accder. On ne peut pas qualifier une classe avec protected. C'est le niveau de protection le plus fort. Les composants ne sont visibles qu' l'intrieur de la classe : ils ne peuvent tre modifis que par des mthodes dfinies dans la classe prvues cet effet.

private

POO
Mot cl final: Il s'applique aux variables de classe ou d'instance ou locales, aux mthodes, aux paramtres d'une mthode et aux classes. Il permet de rendre l'entit sur laquelle il s'applique non modifiable une fois qu'elle est dclare pour une mthode ou une classe et initialise pour une variable.

POO
Les constantes sont dfinies avec le mot cl final : leur valeur ne peut pas tre modifie une fois qu'elles sont initialises. Exemple:
public class MaClasse { final double pi=3.14 ; }

POO: Mthodes
Il existe deux types de mthodes: Fonctions: ont une valeur de retour
typeRetour nomMthode(type1 arg1,) { Return var; }

Procdures: ne retournent pas (void ) void nomMthode(type1 arg1,) { }

POO: Mthodes(exemple)
int add(int a, int b) { return a + b; }

Void afficher() { System.out.println(je suis une procdure ); }

exercice
Crer une classe Salarie ayant les proprits suivantes: 1. Matricule de type entier 2. Nom de type chaine de caractre 3. Salaire de type rel 4. Une mthode afficher qui permet dafficher dans un message les informations dun salari; 5. Une mthode calculerPrime qui permet de retourner lindemnit dun salari, sachant que cette indemnit est gale 20% de son salaire;

exercice
Crer une classe POINT: AbscisseX int ordonneY int Nom String Munir la classe par des Accesseurs, constructeurs, une mthode Afficher, Dplacer (avec des valeurs dx et dy), comparer avec un autre point, calculer la distance entre deux points Ajouter un compteur qui permet de compter le nombre dobjets de type point;

Chercher un produit partir de son numro A(x1,y1) B(x2,y2) Racine: Math.sqrt() Puissance: Math.pow(a,3)

Ecrire un programme Menu qui permet, aprs avoir crer deux points A et B, de: 1.Dplacer A; 2.Dplacer B; 3.Comparer A et B; 4.Calculer la distance AB

POO
Supposons quon dispose dj dune classe Ville, on se voit en besoin de manipuler des objets de type capitale(capitale est une ville avec des paramtres de plus) Supposons quon dispose dj dune classe Personne, on se voit en besoin de manipuler des objets de type Employ(sachant quun employ est dj une personne avec des paramtres de plus)

Plus besoin de rcrire le mme code Rutiliser les classes dj existantes(optimisation du code)

POO: Hritage
Lhritage est lun des fondements de la POO On se base sur une classe mre(super classe) pour crer des classes filles(classes drives);
capitale employ

ville

personne

POO: Hritage
Public class Capitale extends Ville { } Une classe drive a laccs tous les paramtres de la classe mre(proprits et attributs de type public); Pour faciliter laccs aux attributs propres la classe mre, il serait essentiel de rendre ses proprits privs protected; Evitez de dclarer les proprits de type public pour respecter le principe dencapsulation de lOO; Pour ce qui est des mthodes: Si une mthode est rutilisable lextrieur de la classe dorigine et ses drives ,elle doit obligatoirement porter la visibilit public; Si une mthode est rutilisable quau niveau de ses classes drives ,il suffit de la dclarer protected; Si on dsire ne plus rutiliser une mthode, dclarer la de type private;

Hritage
Personne:CIN,nom,prenom Employ:CIN,nom,prenom,salaire,fonction
La classe employ doit galement possder un constructeur par dfaut sinon il sera automatiquement cr lors de la compilation
Public Employe() { Super();//on fait appel au constructeur de la classe mre Salaire=0; Fonction=sans; }

Constructeurs dinitialisation
Public Employe(string n,string p,string i,string f,float s) { Super(n,p,i);//on fait appel au constructeur
dinitialisation de la classe mre

Salaire=s; Fonction=f }

Hritage: redfinition des mthodes


Mthode afficher dans la classe Personne: Public string afficher() {return nom+ +prenom+ +CIN;} Mthode afficher dans la classe Employ: Public string afficher() {return super.afficher()+ +this.fonction+ +this.salaire;} La mthode afficher garde le mme prototype(nom ,nombre de paramtres et leur types) -----Redfinition------

Hritage
Employe E=new Employe(hhh,bbb,A123465,10000,administrateur ); Personne P=new Personne(ghf ,dfff ,H29876);

E.afficher(); P.afficher();

Hritage
Il est ncessaire aussi de munir la classe fille par les accesseurs des proprits non communes avec la classe mre;(les autres sont accessibles par hritage)

La surcharge
Une mthode surcharge diffre de la mthode originale par le nombre ou le type des paramtres qu'elle prend en entre.
Public int add(int a,int b) {return a+b;} Public float add(float a,int b) {return a+b;} Public int add(int a,int b,int c) {return a+b+c;}

Le polymorphisme
Cest lun des concepts fondamentaux de la programmation oriente . Ce concept complte parfaitement celui de l'hritage Ville v1=new Ville(maroc) Ville v2=new Capitale(maroc,Hassane) Cela signifie qu'une variable objet peut contenir un objet qui hrite du type de cette variable. Dans notre cas, un objet de type Ville peut contenir un objet de type Capitale. La covariance est efficace dans le cas o la classe hritant redfinit certaines mthodes de sa superclasse

Exercice
Crer une classe Personne: CIN;NOM;Prnom Munir la classe par les constructeurs et les accesseurs et une mthode afficher(fonction) Crer une nouvelle classe Enseignant hritant de la classe Personne; Un enseignant a de plus :une spcialit et un nombre dheures travailles Ajouter un constructeur par initialisation cette classe Redfinir la mthode afficher Compter le nombre dobjets de type enseignant Ajouter une mthode calculer_tarif permettant de calculer la rmunration dun enseignant selon le nombre dheures ralises; Le tarif dune heure est saisi par lutilisateur;

Exercice rendre envoyer vers: chababfatine@gmail.com


Crer la classe Ville: nomVille, nomPays,Nombre_habitants; Crer la classe Capitale hritant de la classe ville et possde comme attribut de plus un monument; Munir les deux classes par les mthodes suivantes: toString; comparer; Crer une classe permettant la gestion des capitales(ajouter, rechercher,supprimer); La munir par une mthode qui permet de Calculer le nombre dhabitants dun pays pass comme paramtres; Une mthode qui affiche la liste des pays et ses capitales; Une mthode qui affiche la liste des pays ainsi que le nombre de ses villes;