La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Une introduction à JAVA

Présentations similaires


Présentation au sujet: "Une introduction à JAVA"— Transcription de la présentation:

1 Une introduction à JAVA
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

2 Java : Caractéristiques
Java est un langage orienté objet Java est un langage interprété Java est un langage portable Java est un langage sécurisé Java est un langage robuste

3 Java : Outils Configuration minimale :
Le kit complet (pour compiler, exécuter et déboguer des programmes java) peut être téléchargé à partir du site javac : le compilateur Java java : l'interpréteur Java appletviewer : le visualiseur des applets Après installation du JDK il vous sera alors possible d'invoquer tous ces programmes depuis le DOS prompt Environnement de programmation Eclipse, Netbeans, …

4 Java : concepts de base Les méthodes : déclaration et appel des méthodes Récursivité Surcharge des méthodes Classes : déclaration, champs, constructeur Les modificateurs Les packages Composition Héritage Redéfinition des méthodes Wrapper classes Les interfaces

5 Java : Premier programme
//votre premier programme Java public class Hello { public static void main(String args[ ]) System.out.println("Hello World !"); } Compilation : javac Hello.java Exécution : java Hello L'interpréteur Java devra se lancer et exécuter le programme Hello.class. Résultat : HelloWorld !.

6 Java : Types élémentaires et opérateurs
Syntaxe de déclaration : Type nom_de_variable; Par exemple : { int valeur; // instructions quelconques valeur=3; } Les types : boolean, char, short, int, long, float, double

7 Java : Portée La portée d'une variable est par définition la partie du code où cette variable est visible. Exemple : { int i=1; { int i=2; System.out.println(i); // 2 s'affiche } System.out.println(i); // 1 s'affiche

8 Java : Tableau La déclaration d'un tableau se fait par l'instruction new. Exemple : int tab1[ ]=new int[30]; //tableau à une dimension de 30 éléments int tab2[ ][ ]=new int[25][10]; //tableau à deux dimensions de 25*10 éléments Note : La numérotation des indices du tableau se fait à partir de 0 et non de 1. Ainsi les éléments de tab[3] sont tab[0], tab[1] et tab[2].

9 Java : Opérateurs Opérateur Signification ++ incrémentation
-- décrémentation +, - Addition, Soustraction ~ Complément binaire ! Complément logique (type) Changement du type d'une variable *, /, % Multiplication, division, modulo + Concaténation des chaînes de caractères <, <= Strictement inférieur, inférieur ou égal >, >= Strictement supérieur, supérieur ou égal

10 Java : L'instruction if...else
Syntaxe : if(condition) Seq où condition est une expression booléenne à évaluer et Seq est une instruction (ou un bloc d'instructions) Un bloc = { instr1; instr2;… , instrn; } Exemple : public class Classement { public static void main(String args[ ]) { int note=5; if(note>10) System.out.println("L'élève est brave"); }

11 Java : L'instruction if...else
Syntaxe : if(condition) Seq1 else Seq2 Exemple : public class AutreClassement { public static void main(String args[ ]) { int note=5; if(note>10) System.out.println("L'élève est brave"); else System.out.println("L'élève est faible"); } Plusieurs instructions if...else peuvent être imbriquées. Convention : le ‘else’ se rapportant toujours au if le plus proche.

12 Java :L'instruction switch
Syntaxe : switch(variable_ent) { case const1: séq1 case const2: séq2 .. case constM: séqM default: séqN } Où variable_ent est une variable entière (int), constX est une constante et la partie ‘default’ optionnelle.

13 Java :L'instruction switch
Exemple : public class TestSwitch { public static void main(String args[ ]) { int teste=4; switch(teste) { case 1: System.out.println("1"); case 4: System.out.println("4"); case 6: System.out.println("6"); default: System.out.println("autre"); } De préférence ajouter l'instruction break en fin de chaque cas

14 Java : L'instruction for
Syntaxe : for(expr1;expr2;expr3) Séq expr1 est une expression permettant l'initialisation de la boucle, expr2 est une expression booléenne imposant une condition sur sa continuation expr3 est une expression permettant sa progression. Exemple : public class BoucleFor { public static void main(String args[ ]) { for(int i=0;i<5;i++) System.out.println("Itération de la boucle"); }

15 Java : L'instruction while
Syntaxe : while(condition) Seq Exemple : public class BoucleWhile { public static void main(String args[ ]) { int m=1,n=3,p=100; while(n*m/p<100) { n++; m++; p--; } System.out.println(m);

16 Java : L'instruction do...while
Syntaxe: do Seq while(condition) la boucle est exécutée une fois avant que la condition soit évaluée.

17 Java : les méthodes Syntaxe :
modificateurs type_valeur_retour nom_de_méthode(arguments) { corps_de_méthode } Où : modificateurs : nature de la méthode ( définis plus loin) type_valeur_retour le type de la valeur retournée corps_de_méthode contient les déclarations des variables locales et le code exécutable. Une méthode est une séquence de déclarations et d'instructions encapsulées ensemble comme un mini-programme indépendant. Dans Java chaque instruction devra se situer dans une méthode;

18 Java : les méthodes Exemple
public class AfficheCarre { public static void main(String args[ ]) { int j; for(int i=1;i<6;i++) { j=carre(i); System.out.println(i+"\t"+j); } static int carre(int n) { return n*n; Note : L'instruction return est obligatoire si la méthode rend un résultat

19 Java : Récursivité Une méthode peut très naturellement s'appeler elle-même. Exemple : La factorielle : n! = 1 si n=0 ou n.(n-1)! si n>0 public class CalculFactoriel { public static void main(String args[ ]) { long j; for(int i=0;i<7;i++) { j=fact(i); System.out.println(i+"\t"+j); } static long fact(int n) { if(n<2) return 1; return n*fact(n-1);

20 Java : Surcharge des méthodes
On peut utiliser le même nom pour plusieurs méthodes avec des listes d'arguments différentes. Cette pratique s'appelle surcharge (overloading en anglais). f(int a, int b, int c) et f(int a, int b) ont des nombres d'arguments différents g(int a, int b, int c) , g(int a, float b, int c) et g(float a, float b, float c) : les types sont différents Le nom d'une méthode et sa liste d'arguments s'appelle sa signature.

21 Java : Surcharge des méthodes
Exemple : public class Surcharge { public static void main(String args[ ]) { int i=5,j=6; carre(i); carre(j); carre(i,j); } static void carre(int n) { System.out.println(n*n); static void carre(int m,int n) { System.out.println(n*n+"\t"+m*m);

22 Java : Les classes un programme Java est un ensemble d'objets appelés classes Ces classes peuvent être réparties entre plusieurs fichiers mais une d'entre elles devra être une classe publique (modificateur public) contenant la méthode main Le fichier contenant cette classe devra porter le même nom qu'elle. C'est ce fichier qu'on passera au compilateur qui se chargera alors à son tour de trouver les autres classes dans les autres fichiers. La programmation orientée objet (POO) implique donc l'écriture de programmes contenant des classes

23 Java : Les classes Déclaration d'une classe :
modificateurs class nom_de_classe { corps_de_classe // l'ensemble des données et des méthodes. } Où modificateurs : nature de la classe et sa portée Note : Il est d'usage de choisir pour une classe un nom commençant par une majuscule et pour une méthode un nom commençant par une minuscule.

24 Java : Les classes Champs d'une classe
On appelle champ (field en anglais) d'une classe une donnée (variable par exemple)déclarée à l'intérieur de cette classe et qui pourra être modifiée par les méthodes de cette classe ou éventuellement les méthodes d'autres classes. L'ensemble des champs constitue l'état (state en anglais) de cette classe. Exemple public class Point { private float x; private float y; private float z; // Les_méthodes_de_la_classe }

25 Java : Les classes Constructeur d'une classe
La déclaration d'une classe est un modèle abstrait non utilisable directement. Pour utiliser un objet d’une classe il faut créer des instances de cette classe (le processus s'appelle instanciation). Pour créer une instance d'une classe on utilise l'instruction : nom_de_classe nom_de_référence Où nom_de_référence est le nom de la référence qui pointe vers l'instance de la classe nom_de_classe (pensez à la référence comme étant une case contenant l'adresse du début de l'instance). Exemple : Point p;

26 Java : Les classes Constructeur d'une classe
Un constructeur est tout simplement une méthode utilisée lors de l'instanciation d'une classe pour initialiser les champs de l'instance. Un constructeur diffère d'une méthode ordinaire par trois caractéristiques : 1. Un constructeur possède le même nom que la classe (il est donc imposé). 2. Un constructeur ne retourne pas de valeur. 3. Un constructeur est invoqué par l'opérateur new.

27 Java : Les classes Exemple
public class Point { private float x; private float y; private float z; public Point(float a, float b, float c) { x=a; y=b; z=c; } //Les_autres_méthodes_de_la_classe Ainsi pour créer une instance initialisée de la classe Point on écrit : Point p=new Point(3.1, 2.3, 1.4); Si une classe est déclarée sans constructeur le compilateur génère automatiquement un constructeur par défaut sans arguments et qui initialise tous les champs de l'instance à leurs valeurs par défaut.

28 Java : les modificateurs
Les modificateurs sont utilisés dans les déclarations des classes, des constructeurs, des méthodes, des champs et des variables locales pour indiquer leur portée et leur nature. modificateurs de classe Modificateur Signification public Elle est accessible à partir de toutes les autres classes (une seule permise par fichier) abstract Elle ne pourra pas être instanciée final On ne pourra pas déclarer des sous-classes (en relation avec l'héritage) <rien> Elle est accessible uniquement à l'intérieur du même package

29 Java : les modificateurs
modificateurs de constructeur Modificateur Signification public Il est accessible à partir de toutes les autres classes protected Il est accessible uniquement à partir de sa classe, des sous-classes et des classes appartenant au même package private Il est accessible uniquement à partir de sa classe <rien> Il est accessible uniquement à l'intérieur du même package

30 Java : les modificateurs
modificateurs de méthodes Modificateur Signification public accessible à partir de toutes les autres classes protected accessible uniquement à partir de sa classe, des sous-classes et des classes appartenant au même package private accessible uniquement à partir de sa classe

31 Java : les modificateurs
modificateurs d'attribut Modificateur Signification public Il est accessible à partir de toutes les autres classes protected Il est accessible uniquement à partir de sa classe, des sous-classes et des classes appartenant au même package private Il est accessible uniquement à partir de sa classe <rien> Il est accessible uniquement à l'intérieur du même package ….

32 Java : Accès aux champs et méthodes d’un objet
L'accès se fait tout simplement en précédant le nom du champ ou de la méthode par le nom de l'objet (en effet le nom de la référence qui pointe vers l'objet) suivit d'un point. Par exemple pour accéder à la variable nom d'un objet p on écrira : p.nom Et pour accéder à la méthode imprime par exemple on écrira : p.imprime()

33 Java : un exemple de programme java
class Point { private double x;private double y;private double z; public Point(double a, double b, double c) { x=a; y=b; z=c;} public void imprime() { System.out.println(x+"\t"+y+"\t"+z); } } public class TestPoint { public static void main(String args[ ]) { Point p=new Point(2.1, 3.5, 6.7); p.imprime();

34 Java : Les packages Si une classe n’utilise pas de modificateur, elle ne sera accessible que depuis l'intérieur du même package. C'est quoi alors précisément un package ? Le concept de package permet de réunir l’ensemble des classes en relation étroite les unes par rapport aux autres. L'accès aux classes depuis l'extérieur de ce package est interdit. Pour pouvoir regrouper des classes dans un package il faut utiliser l'instruction : package nom_du_package Accessibles si la directive d'importation : import nom_du_package

35 Java : Les packages Exemples de packages
java.lang les classes fondamentales du langage (importé automatiquement) java.io Entrées/Sorties java.util Des classes utiles java.net Pour la programmation réseau java.awt Pour l'interface graphique java.applet Pour utiliser les applets

36 Java : Héritage modificateurs class nom_de_classe extends classe_mère
L'héritage est la création d'une classe en étendant une autre classe déjà déclarée. De ce fait la nouvelle classe hérite automatiquement les champs et les méthodes de sa "classe mère" On appelle la nouvelle classe classe dérivée ou "classe fille". Une "classe fille" est déclarée comme héritant d'une "classe mère" en respectant la syntaxe suivante : modificateurs class nom_de_classe extends classe_mère { corps_de_classe }

37 Java : Héritage Exemple class Point
{ protected double x; protected double y; } class PointCouleur extends Point { private int couleur; public PointCouleur(double a, double b, int c) { x=a;y=b;couleur=c;} public void imprime() { System.out.println("coordonnées: "+x+","+y+"\t couleur: "+couleur);} } public class TestPointCouleur { public static void main(String args[ ]) { PointCouleur p=new PointCouleur(2.3,4.6,10); p.imprime();

38 Java : Redéfinition des méthodes
Si dans la "classe fille" on déclare une méthode dont : La signature (nom+liste d'arguments) est la même que celle d'une méthode de la "classe mère". Le type de la valeur de retour est le même que celui de cette même méthode. La portée définie par les modificateurs est plus grande ou égale que celle de cette même méthode. Alors une référence de cette méthode utilisera celle nouvellement déclarée (c-à-d celle de la "classe fille") et non celle de la "classe mère" Cette pratique s'appelle redéfinition (overriding en anglais).

39 Java : Redéfinition des méthodes
Si dans la "classe fille" on se trouve contraint d'utiliser la méthode de la "classe mère" il suffit alors d'employer le mot-clé super comme dans super.imprime() par exemple. D'autre part si on utilise super() tout simplement alors on appelle le constructeur de la classe de base ; cela ne pouvant se faire qu'à l'intérieur du constructeur de la classe dérivée.

40 Java : Redéfinition des méthodes
Exemple : class Point { protected int x,y; public void imprime() { System.out.println(x+","+y); } } class PointCouleur extends Point { private int cl; public PointCouleur(int a,int b,int c) { x=a; y=b; cl=c;} { super.imprime(); System.out.println(cl); } public class Test { public static void main(String args[ ]) { PointCouleur p=new PointCouleur(1,2,3);p.imprime();}

41 Java : Les classes ‘Wrapper’
Chacun des types primitifs en Java (boolean, byte, char, short, int, long, float et double) possède une classe correspondante appelée une ‘wrapper class’ qui étend ce type en lui ajoutant des fonctionnalités. Les huit classes sont Boolean, Byte, Character, Short, Integer, Long, Float et Double. Ces classes appartiennent au package java.lang et sont donc importées par défaut. L'utilité de ces classes est qu'elles fournissent des méthodes pour convertir entre les types primitifs et de les manipuler plus facilement.

42 Java : Les interfaces Dans Java, il est interdit d'hériter de plus d'une classe. Les interface permettent une sorte d'héritage multiple. Une interface est tout simplement une collection de déclarations de méthodes dépourvues de corps (donc abstraites). La syntaxe est la suivante : interface nom_interface { //déclarations de méthodes abstraites } Par exemple on désire définir une interface Dessin dans laquelle une méthode tracer définit l'action à entreprendre pour dessiner des objets à l'écran : interface Dessin { void tracer(); }

43 Java : Les interfaces Ainsi différentes classes définissant des objets différents pouvant être dessinés implémenterons cette interface et sa méthode de façon spécifique à la nature de l'objet que ce soit un cercle, un triangle, un carré ... Utilise le mot-clé implements Par Exemple : class Cercle extends Figure implements Dessin { //données membres void tracer //instructions spécifiques pour tracer un cercle } // autres méthodes

44 Java : Les interfaces Une classe qui implémente une interface devra implémenter toutes les méthodes de cette interface, sinon il se produira une erreur de compilation. Une classe peut aussi implémenter plusieurs interfaces dont les noms seront séparés par des virgules. Exemple class Cercle implements Dessin, Coloriage


Télécharger ppt "Une introduction à JAVA"

Présentations similaires


Annonces Google