SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Ministère de l’Enseignement Supérieur de la
Recherche Scientifique et de la technologie
        *** * ***
Université de la Manouba
        *** * ***
Ecole Nationale des Sciences de l’Informatique




Réalisé par : Ghazouani Mahdi




                                                 1
Année universitaire : 2009/20010


                  Sommaire
    1)   Les constructeurs / Surcharge des méthodes ………………3


    2)   Les références ………………………………………………………………………4


    3)   Les Setters et les Getters …………………………………………………4


    4)   Comparaison des objets ………………………………………………………4


    5)   Le mot clé static …………………………………………………………………5


    6)   L’opérateur this et son utilité ……………………………………………6


    7)   La méthode prédéfinie String toString()…………………………7


    8)   Une méthode simple pour la lecture de clavier ………………7


    9)   La gestion des exceptions ……………………………………………………8




1. LES CONSTRUCTEURS / SURCHARGE DES MÉTHODES


                                 2
Chaque classe en Java possède nécessairement un constructeur qui porte
obligatoirement le même nom de la classe.

Exemple :

       class Voiture

       {      int matricule ;

              String type ;

              public Voiture ()

              {

                       /* Le rôle de constructeur est toujours d’initialiser les
                       attributs de la classee */

                       matricule=0 ;

                       couleur=‘‘ ’’ ;

              }

       }



Attention : Une classe peut posséder plusieurs constructeurs (Surcharge).

La surcharge d’une méthode signifie qu’une méthode donnée peut posséder plusieurs
définitions dans une même classee, chacune de ces définitions se distinguant des
autres au travers de la liste de ses paramètres. (Le type ou le nombre de paramètres)

Exemple :

       class Voiture

       {      int matricule ;

              String type ;

              public Voiture ()

              {

                       matricule=0 ;

                       couleur=‘‘ ’’ ;

              }

                                         3
public Voiture (int num, String col)

                   {

                           Matricule=num ;

                           couleur=col ;

                   }

           }




2. LES RÉFÉRENCES


    Une référence en Java est similaire à un pointeur dans le langage C, mais les seules
    opérations autorisées sont l’affectation d’une référence du même type et la
    comparaison de deux références. (Attention : On ne peut pas incrémenter ou faire des
    opérations arithmétiques sur les références comme pour les pointeurs en langage C).



3. LES SETTERS ET LES GETTERS


    On ne peut pas accéder aux attributs d’une classe (éventuellement un objet instancié à
    partir de cette classe) s’ils sont privés. Il est alors nécessaire d’implémenter les Getters
    et les Setters de chaque attribut déclaré privé.

    Exemple de Getter :

                           public int get_X ()

                           {       return x ;

                           }

    Exemple de Setter :

                           public void set_X (int z)

                           {       x=z;


                                                4
}




4. COMPARAISON DES OBJETS


    Pour comparer 2 objets, il faut utiliser la méthode prédéfinie equals()

    Exemple :             if (c1.equals(c2))

                          {       System.Out.print(“c1 est égale à c2”);}



    La méthode equals() compare les attributs de deux objets c1 et c2

    Attention : Ne pas confondre la méthode equals() avec le symbole de comparaison ==

    En effet, si on procède comme suit :

    if (c1==c2)

    {      System.Out.print(“c1 et c2 référencent le même objet en mémoire”);}



    On est en train de comparer les références (c.à.d on teste si c1 et c2 pointent sur le
    même objet en mémoire).




5. LE MOT CLÉ STATIC

    *)     Le mot clé static pour les variables :
    Déclarer une variable static signifie que ce membre n'est pas spécifique à un objet
    mais à la classee, tous les objets de la classee partagent cette même variable.

    Exemple concret :

    class Calculette


                                            5
{      private static int x ;
       private int y ;

       public Calculette()

       {       x=0 ;

               Y=0 ;

       }
       public void incrementer()

       {       x+=1 ;           //x=x+1 ;

       }

}



class UsesCalculette

{


       public static void main (String[] args)
       {       Calculette c1=new Calculette();
               C1.incrementer();                    // x vaut 1
               Calculette c2=new Calculette();
               C2.incrementer();                    // x vaut 2


              // Si x n’est pas static on aura la valeur 1
              /*Si on crée un autre objet c3 et on appelle incrementer(), on aura
la valeur 3 dans la variable x. */
       }

}



*)     Le mot clé static pour les méthodes :
Signifie qu’on peut appeler la méthode sans instancier un objet de sa classe.

Exemple :      float x=Math.sqrt(2.5)

/* Ici, la méthode sqrt() est définie static dans la classe Math, c’est pourquoi on a pu
l’utiliser sans créer un objet de type Math. */



                                            6
6. L’OPÉRATEUR THIS ET SON UTILITÉ


    L'operateur this sert à référencer l'objet en cours. Il peut servir à enlever l’ambiguïté
    lorsqu’on a deux variables qui portent le même nom.

    Exemple :

    class Voiture

    {      int matricule ;

           String type ;

           Public Voiture (int matricule, String type)

           {        this.matricule=matricule ;

                    this.type=type ;

           }

    }




7. LA MÉTHODE PRÉDÉFINIE STRING TOSTRING()


    La méthode « String toString() » est très utile en Java. Elle retourne une chaine de
    caractère représentant un objet : affichage de la valeur des propriétés par exemple.

    Exemple :


                                            7
class Voiture

    {      int matricule ;

           String type ;

           public String toString()

           {

                    return ‘‘La matricule est ’’ + matricule + ‘‘ Le type est ’’+type ;

           }

    }



    class UsesVoiture

    {      public static void main(String[] args)

           {        Voiture v1=new Voiture();

                    System.Out.println(v1) ; //Appel implicite à toString()

           }

    }



8. UNE MÉTHODE SIMPLE POUR LA LECTURE DE CLAVIER


    Une méthode très simple pour la lecture consiste à :

    •   Créer un objet de la classe DataInputStream

    •   Appeler la méthode readline() à partir de l’objet crée

    •   Faire les conversions nécessaires selon vos besoins (car readline() retourne
        toujours un String)

    Exemple :

    DataInputStream kb=new DataInputStream(System.in)

    String n=kb.readline();

    /* Si on a besoin de la lecture d’un entier, on a qu’à appliquer la conversion
    suivante : int x= Integer.parseInt (n) ; */

                                             8

Contenu connexe

Tendances

Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateursAziz Darouichi
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 
C++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelistC++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelistVincent Agnus
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 
Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Aurélien Regat-Barrel
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simplesPethrvs
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11Microsoft
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en JavaAziz Darouichi
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIJihenHedhli1
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 

Tendances (18)

Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
Part1
Part1Part1
Part1
 
Chapitre6: Surcharge des opérateurs
Chapitre6:  Surcharge des opérateursChapitre6:  Surcharge des opérateurs
Chapitre6: Surcharge des opérateurs
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
C++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelistC++ Metaprogramming : multidimensional typelist
C++ Metaprogramming : multidimensional typelist
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14
 
C++11 en 12 exemples simples
C++11 en 12 exemples simplesC++11 en 12 exemples simples
C++11 en 12 exemples simples
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
TD Java POO
TD Java POO TD Java POO
TD Java POO
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Ch04
Ch04Ch04
Ch04
 

En vedette

Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
Per una reforma constitucional federal
Per una reforma constitucional federalPer una reforma constitucional federal
Per una reforma constitucional federalsocialistes_ cat
 
Communication & influence n°42 (mars 2013) - Invitée : Patricia Adam
Communication & influence n°42 (mars 2013) - Invitée : Patricia AdamCommunication & influence n°42 (mars 2013) - Invitée : Patricia Adam
Communication & influence n°42 (mars 2013) - Invitée : Patricia AdamBruno Racouchot
 
Rede Wirtschaftsminister Etienne Schneider
Rede Wirtschaftsminister Etienne SchneiderRede Wirtschaftsminister Etienne Schneider
Rede Wirtschaftsminister Etienne SchneiderLuxemburger Wort
 
Les moyens de paiment on et off lign 04 03 13
Les moyens de paiment on et off lign 04 03 13Les moyens de paiment on et off lign 04 03 13
Les moyens de paiment on et off lign 04 03 13laurasaintmarc
 
Plaquette Web Coursier Paris de GémeauxCourses
Plaquette Web Coursier Paris de  GémeauxCoursesPlaquette Web Coursier Paris de  GémeauxCourses
Plaquette Web Coursier Paris de GémeauxCoursesGémeaux Courses
 
Actividad integradora tiziana
Actividad integradora tizianaActividad integradora tiziana
Actividad integradora tizianaAdalberto
 
Docneicia Unidad 3 Vi Encuentro Internacional De Educadores
Docneicia Unidad 3  Vi Encuentro Internacional De EducadoresDocneicia Unidad 3  Vi Encuentro Internacional De Educadores
Docneicia Unidad 3 Vi Encuentro Internacional De EducadoresAdalberto
 
4 Internet Ha Llegado El MesíAs
4 Internet Ha Llegado El MesíAs4 Internet Ha Llegado El MesíAs
4 Internet Ha Llegado El MesíAssoldorado50
 
Venta Por Mercados 1
Venta Por Mercados 1Venta Por Mercados 1
Venta Por Mercados 1guest15921a2
 
Hay una sola
Hay una solaHay una sola
Hay una solaMMestre
 
Lista ejercicios 3 ab
Lista ejercicios 3 abLista ejercicios 3 ab
Lista ejercicios 3 abavutarda00
 
Docencia 4 Trabajo De MediacióN PedagóGica.
Docencia 4 Trabajo De MediacióN PedagóGica.Docencia 4 Trabajo De MediacióN PedagóGica.
Docencia 4 Trabajo De MediacióN PedagóGica.Adalberto
 

En vedette (20)

Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Culto 14 De Junio
Culto 14 De JunioCulto 14 De Junio
Culto 14 De Junio
 
Per una reforma constitucional federal
Per una reforma constitucional federalPer una reforma constitucional federal
Per una reforma constitucional federal
 
Communication & influence n°42 (mars 2013) - Invitée : Patricia Adam
Communication & influence n°42 (mars 2013) - Invitée : Patricia AdamCommunication & influence n°42 (mars 2013) - Invitée : Patricia Adam
Communication & influence n°42 (mars 2013) - Invitée : Patricia Adam
 
Rede Wirtschaftsminister Etienne Schneider
Rede Wirtschaftsminister Etienne SchneiderRede Wirtschaftsminister Etienne Schneider
Rede Wirtschaftsminister Etienne Schneider
 
Les moyens de paiment on et off lign 04 03 13
Les moyens de paiment on et off lign 04 03 13Les moyens de paiment on et off lign 04 03 13
Les moyens de paiment on et off lign 04 03 13
 
Plaquette Web Coursier Paris de GémeauxCourses
Plaquette Web Coursier Paris de  GémeauxCoursesPlaquette Web Coursier Paris de  GémeauxCourses
Plaquette Web Coursier Paris de GémeauxCourses
 
Annes60
Annes60Annes60
Annes60
 
Actividad integradora tiziana
Actividad integradora tizianaActividad integradora tiziana
Actividad integradora tiziana
 
Docneicia Unidad 3 Vi Encuentro Internacional De Educadores
Docneicia Unidad 3  Vi Encuentro Internacional De EducadoresDocneicia Unidad 3  Vi Encuentro Internacional De Educadores
Docneicia Unidad 3 Vi Encuentro Internacional De Educadores
 
4 Internet Ha Llegado El MesíAs
4 Internet Ha Llegado El MesíAs4 Internet Ha Llegado El MesíAs
4 Internet Ha Llegado El MesíAs
 
Las Ntics
Las NticsLas Ntics
Las Ntics
 
Noticias
NoticiasNoticias
Noticias
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Venta Por Mercados 1
Venta Por Mercados 1Venta Por Mercados 1
Venta Por Mercados 1
 
Hay una sola
Hay una solaHay una sola
Hay una sola
 
Présentation
PrésentationPrésentation
Présentation
 
Lista ejercicios 3 ab
Lista ejercicios 3 abLista ejercicios 3 ab
Lista ejercicios 3 ab
 
Bulletin MeM janvier 2015
Bulletin MeM janvier 2015Bulletin MeM janvier 2015
Bulletin MeM janvier 2015
 
Docencia 4 Trabajo De MediacióN PedagóGica.
Docencia 4 Trabajo De MediacióN PedagóGica.Docencia 4 Trabajo De MediacióN PedagóGica.
Docencia 4 Trabajo De MediacióN PedagóGica.
 

Similaire à Memo java

Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Rahma Boufalgha
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de ClasseabdoMarocco
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdframadanmahdi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Héritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdfHéritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdfAabidiHafid
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinterRYMAA
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAAymen Bedwivski
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaAmel Morchdi
 

Similaire à Memo java (20)

Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Diagramme de Classe
Diagramme de ClasseDiagramme de Classe
Diagramme de Classe
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
 
22-reflection.pdf
22-reflection.pdf22-reflection.pdf
22-reflection.pdf
 
Cours5-heritage.pptx
Cours5-heritage.pptxCours5-heritage.pptx
Cours5-heritage.pptx
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Héritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdfHéritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdf
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 
JAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVAJAVA-UIK-CHAP6-POO HERITAGE JAVA
JAVA-UIK-CHAP6-POO HERITAGE JAVA
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 
Ch06
Ch06Ch06
Ch06
 
ExJava.pdf
ExJava.pdfExJava.pdf
ExJava.pdf
 
generation_code.pdf
generation_code.pdfgeneration_code.pdf
generation_code.pdf
 

Plus de Ghazouani Mahdi

Plus de Ghazouani Mahdi (8)

RIA
RIARIA
RIA
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Mécanismes de sécurité
Mécanismes de sécuritéMécanismes de sécurité
Mécanismes de sécurité
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Multithreading
MultithreadingMultithreading
Multithreading
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Hibernate
HibernateHibernate
Hibernate
 
Moteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de rechercheMoteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de recherche
 

Memo java

  • 1. Ministère de l’Enseignement Supérieur de la Recherche Scientifique et de la technologie *** * *** Université de la Manouba *** * *** Ecole Nationale des Sciences de l’Informatique Réalisé par : Ghazouani Mahdi 1
  • 2. Année universitaire : 2009/20010 Sommaire 1) Les constructeurs / Surcharge des méthodes ………………3 2) Les références ………………………………………………………………………4 3) Les Setters et les Getters …………………………………………………4 4) Comparaison des objets ………………………………………………………4 5) Le mot clé static …………………………………………………………………5 6) L’opérateur this et son utilité ……………………………………………6 7) La méthode prédéfinie String toString()…………………………7 8) Une méthode simple pour la lecture de clavier ………………7 9) La gestion des exceptions ……………………………………………………8 1. LES CONSTRUCTEURS / SURCHARGE DES MÉTHODES 2
  • 3. Chaque classe en Java possède nécessairement un constructeur qui porte obligatoirement le même nom de la classe. Exemple : class Voiture { int matricule ; String type ; public Voiture () { /* Le rôle de constructeur est toujours d’initialiser les attributs de la classee */ matricule=0 ; couleur=‘‘ ’’ ; } } Attention : Une classe peut posséder plusieurs constructeurs (Surcharge). La surcharge d’une méthode signifie qu’une méthode donnée peut posséder plusieurs définitions dans une même classee, chacune de ces définitions se distinguant des autres au travers de la liste de ses paramètres. (Le type ou le nombre de paramètres) Exemple : class Voiture { int matricule ; String type ; public Voiture () { matricule=0 ; couleur=‘‘ ’’ ; } 3
  • 4. public Voiture (int num, String col) { Matricule=num ; couleur=col ; } } 2. LES RÉFÉRENCES Une référence en Java est similaire à un pointeur dans le langage C, mais les seules opérations autorisées sont l’affectation d’une référence du même type et la comparaison de deux références. (Attention : On ne peut pas incrémenter ou faire des opérations arithmétiques sur les références comme pour les pointeurs en langage C). 3. LES SETTERS ET LES GETTERS On ne peut pas accéder aux attributs d’une classe (éventuellement un objet instancié à partir de cette classe) s’ils sont privés. Il est alors nécessaire d’implémenter les Getters et les Setters de chaque attribut déclaré privé. Exemple de Getter : public int get_X () { return x ; } Exemple de Setter : public void set_X (int z) { x=z; 4
  • 5. } 4. COMPARAISON DES OBJETS Pour comparer 2 objets, il faut utiliser la méthode prédéfinie equals() Exemple : if (c1.equals(c2)) { System.Out.print(“c1 est égale à c2”);} La méthode equals() compare les attributs de deux objets c1 et c2 Attention : Ne pas confondre la méthode equals() avec le symbole de comparaison == En effet, si on procède comme suit : if (c1==c2) { System.Out.print(“c1 et c2 référencent le même objet en mémoire”);} On est en train de comparer les références (c.à.d on teste si c1 et c2 pointent sur le même objet en mémoire). 5. LE MOT CLÉ STATIC *) Le mot clé static pour les variables : Déclarer une variable static signifie que ce membre n'est pas spécifique à un objet mais à la classee, tous les objets de la classee partagent cette même variable. Exemple concret : class Calculette 5
  • 6. { private static int x ; private int y ; public Calculette() { x=0 ; Y=0 ; } public void incrementer() { x+=1 ; //x=x+1 ; } } class UsesCalculette { public static void main (String[] args) { Calculette c1=new Calculette(); C1.incrementer(); // x vaut 1 Calculette c2=new Calculette(); C2.incrementer(); // x vaut 2 // Si x n’est pas static on aura la valeur 1 /*Si on crée un autre objet c3 et on appelle incrementer(), on aura la valeur 3 dans la variable x. */ } } *) Le mot clé static pour les méthodes : Signifie qu’on peut appeler la méthode sans instancier un objet de sa classe. Exemple : float x=Math.sqrt(2.5) /* Ici, la méthode sqrt() est définie static dans la classe Math, c’est pourquoi on a pu l’utiliser sans créer un objet de type Math. */ 6
  • 7. 6. L’OPÉRATEUR THIS ET SON UTILITÉ L'operateur this sert à référencer l'objet en cours. Il peut servir à enlever l’ambiguïté lorsqu’on a deux variables qui portent le même nom. Exemple : class Voiture { int matricule ; String type ; Public Voiture (int matricule, String type) { this.matricule=matricule ; this.type=type ; } } 7. LA MÉTHODE PRÉDÉFINIE STRING TOSTRING() La méthode « String toString() » est très utile en Java. Elle retourne une chaine de caractère représentant un objet : affichage de la valeur des propriétés par exemple. Exemple : 7
  • 8. class Voiture { int matricule ; String type ; public String toString() { return ‘‘La matricule est ’’ + matricule + ‘‘ Le type est ’’+type ; } } class UsesVoiture { public static void main(String[] args) { Voiture v1=new Voiture(); System.Out.println(v1) ; //Appel implicite à toString() } } 8. UNE MÉTHODE SIMPLE POUR LA LECTURE DE CLAVIER Une méthode très simple pour la lecture consiste à : • Créer un objet de la classe DataInputStream • Appeler la méthode readline() à partir de l’objet crée • Faire les conversions nécessaires selon vos besoins (car readline() retourne toujours un String) Exemple : DataInputStream kb=new DataInputStream(System.in) String n=kb.readline(); /* Si on a besoin de la lecture d’un entier, on a qu’à appliquer la conversion suivante : int x= Integer.parseInt (n) ; */ 8
  • 9. 9. LA GESTION DES EXCEPTIONS Si vous avez un bloc de code susceptible de générer une erreur, vous devez l’encadrer avec les deux instructions Try{} catch(Exception e){} Exemple : Version sans Try{} catch{} class Calculette { private int x ; Private int y ; Public void division(int x,int y) { Float z=x/y ; // Ici, le programme se plante si y est égale à 0. } } Version avec Try{} catch{} class Calculette { private int x ; Private int y ; Public void division(int x,int y) { try { float z=x/y ; /* Si y égale à 0, le compilateur passe au bloc catch et affiche l’erreur correspondante * / 9
  • 10. } catch(Exception e) { System.Out.println(e) ; } } } 10