Différences entre versions de « Java jar »

De The Linux Craftsman
Aller à la navigation Aller à la recherche
Ligne 53 : Ligne 53 :
  
 
= Surcharge des méthodes de la classe ''java.lang.Objet'' =
 
= Surcharge des méthodes de la classe ''java.lang.Objet'' =
== toString ==
+
Vous pourrez remarquer, lorsque l'on utilise la surcharge, que le petit symbole [[Image:override_symbole.png]] apparaît à coté du nom de la méthode. Cela signifie que la méthode est héritée d'une classe parente et que vous redéfinissez son contenu.
La méthode toString() offre un aperçut d'un objet instancié sous forme de chaîne de caractères.
 
  
 +
Pour les exemples suivants, les trois méthodes sont déjà déclarées dans la classe ''java.lang.Objet''. Cependant, les méthodes de la classe ''java.lang.Objet'' se base uniquement sur les adresses mémoires des objets instanciés... ce qui risque de rapidement nous limiter !
 +
 +
== ''toString()'' ==
 +
=== Utilisation ===
 +
La fonction ''toString()'' offre un aperçut d'un objet instancié sous forme de chaîne de caractères.
 +
=== Génération ===
 
On peut la générer grâce au menu contextuel:
 
On peut la générer grâce au menu contextuel:
  
Ligne 70 : Ligne 75 :
 
     return "Rectangle [x=" + x + ", y=" + y + ", largeur=" + largeur
 
     return "Rectangle [x=" + x + ", y=" + y + ", largeur=" + largeur
 
         + ", hauteur=" + hauteur + "]";
 
         + ", hauteur=" + hauteur + "]";
 +
}
 +
</source>
 +
La fonction ''toString()'' ainsi défini, affichera les attributs ''x'', ''y'', ''largeur'' et ''longueur'' de l'objet ''Rectangle''.
 +
== ''hashcode()'' et ''equals()'' ==
 +
=== Utilisation ===
 +
La fonction ''hascode()'' et utilisée pour ordonner les objets lorsqu'il sont manipulé dans des tables ou des listes.
 +
 +
La fonction '' equals()'' permet de comparer deux objets entre eux pour savoir s'il sont égaux ou non.
 +
=== Génération ===
 +
Comme pour la méthode ''toString()'' nous allons utiliser le menu contextuel [[Image:Generate_equals.png]] pour généré la méthode ''equals()''.
 +
 +
L'assistant nous propose de sélectionner les attributs qui vont nous servir d'éléments de comparaisons
 +
[[Fichier:Generate_equals_attributes.png|vignette|centré]]
 +
Enfin, le code suivant doit être généré:
 +
<source lang="java">
 +
@Override
 +
public int hashCode() {
 +
    final int prime = 31;
 +
    int result = 1;
 +
    result = prime * result + hauteur;
 +
    result = prime * result + largeur;
 +
    result = prime * result + x;
 +
    result = prime * result + y;
 +
    return result;
 +
}
 +
 +
@Override
 +
public boolean equals(Object obj) {
 +
    if (this == obj)
 +
        return true;
 +
    if (obj == null)
 +
        return false;
 +
    if (getClass() != obj.getClass())
 +
        return false;
 +
    Rectangle other = (Rectangle) obj;
 +
    if (hauteur != other.hauteur)
 +
        return false;
 +
    if (largeur != other.largeur)
 +
        return false;
 +
    if (x != other.x)
 +
        return false;
 +
    if (y != other.y)
 +
        return false;
 +
    return true;
 +
}
 +
</source>
 +
 +
= Utilisation =
 +
Maintenant que nous avons créé un objet, nous allons vouloir le manipuler. Pour cela, nous allons créer une nouvelle classe que nous appellerons ''Launcher'' et qui va nous servir uniquement à instancier des objets ''Rectangle''.
 +
== Création de la méthode ''main()'' ==
 +
Cette classe ''Launcher()'' devra posséder au moins la méthode ''main()'' car c'est elle qui nous permettra d'exécuter du code.
 +
 +
Au moment de la création de la classe, on peut demander à ''Eclipse'' de nous créer la méthode ''main()''
 +
 +
[[Fichier:Generate_class_main.png|vignette|centré]]
 +
 +
Dans la classe nouvellement créée, le code suivant et déjà généré
 +
<source lang="java">
 +
public static void main(String[] args) {
 +
    // TODO Auto-generated method stub
 
}
 
}
 
</source>
 
</source>
  
== equals ==
+
Et c'est à nous de compléter le contenu de la méthode ''main()''.
 +
== Écriture de la méthode ''main()'' ==
  
== hashcode ==
+
== Exécution du code ==

Version du 10 mars 2014 à 14:40

Introduction

Reprenons notre objet Rectangle avec son constructeur et ses mutateurs.

package com.epsi.rectangle;

public class Rectangle {
    int x, y, largeur, hauteur;

    public Rectangle(int x, int y, int largeur, int hauteur) {
        super();
        this.x = x;
        this.y = y;
        this.largeur = largeur;
        this.hauteur = hauteur;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getLargeur() {
        return largeur;
    }

    public void setLargeur(int largeur) {
        this.largeur = largeur;
    }

    public int getHauteur() {
        return hauteur;
    }

    public void setHauteur(int hauteur) {
        this.hauteur = hauteur;
    }

}

Surcharge des méthodes de la classe java.lang.Objet

Vous pourrez remarquer, lorsque l'on utilise la surcharge, que le petit symbole Override symbole.png apparaît à coté du nom de la méthode. Cela signifie que la méthode est héritée d'une classe parente et que vous redéfinissez son contenu.

Pour les exemples suivants, les trois méthodes sont déjà déclarées dans la classe java.lang.Objet. Cependant, les méthodes de la classe java.lang.Objet se base uniquement sur les adresses mémoires des objets instanciés... ce qui risque de rapidement nous limiter !

toString()

Utilisation

La fonction toString() offre un aperçut d'un objet instancié sous forme de chaîne de caractères.

Génération

On peut la générer grâce au menu contextuel:

Generate toString.png

L'assistant vous propose les attributs que vous voulez afficher dans la représentation graphique

Generate toString attributes.png

Enfin, le code suivant doit être généré:

@Override
public String toString() {
    return "Rectangle [x=" + x + ", y=" + y + ", largeur=" + largeur
        + ", hauteur=" + hauteur + "]";
}

La fonction toString() ainsi défini, affichera les attributs x, y, largeur et longueur de l'objet Rectangle.

hashcode() et equals()

Utilisation

La fonction hascode() et utilisée pour ordonner les objets lorsqu'il sont manipulé dans des tables ou des listes.

La fonction equals() permet de comparer deux objets entre eux pour savoir s'il sont égaux ou non.

Génération

Comme pour la méthode toString() nous allons utiliser le menu contextuel Generate equals.png pour généré la méthode equals().

L'assistant nous propose de sélectionner les attributs qui vont nous servir d'éléments de comparaisons Fichier:Generate equals attributes.png Enfin, le code suivant doit être généré:

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + hauteur;
    result = prime * result + largeur;
    result = prime * result + x;
    result = prime * result + y;
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Rectangle other = (Rectangle) obj;
    if (hauteur != other.hauteur)
        return false;
    if (largeur != other.largeur)
        return false;
    if (x != other.x)
        return false;
    if (y != other.y)
        return false;
    return true;
}

Utilisation

Maintenant que nous avons créé un objet, nous allons vouloir le manipuler. Pour cela, nous allons créer une nouvelle classe que nous appellerons Launcher et qui va nous servir uniquement à instancier des objets Rectangle.

Création de la méthode main()

Cette classe Launcher() devra posséder au moins la méthode main() car c'est elle qui nous permettra d'exécuter du code.

Au moment de la création de la classe, on peut demander à Eclipse de nous créer la méthode main()

Generate class main.png

Dans la classe nouvellement créée, le code suivant et déjà généré

public static void main(String[] args) {
    // TODO Auto-generated method stub
}

Et c'est à nous de compléter le contenu de la méthode main().

Écriture de la méthode main()

Exécution du code