« OK. La dernière fois, nous avons eu affaire aux classes. « J'aimerais t'expliquer comment créer des objets. C'est très facile. Tu écris le mot-clé new, puis le nom de la classe dont tu souhaites créer un objet. »

Exemple
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

« Je le sais déjà. »

« Je sais que tu sais. Continue à écouter. »

« Lors de la création d'un objet, tu peux passer divers arguments entre parenthèses. Nous en reparlerons plus tard aujourd'hui. Pour l'instant, nous allons jeter un œil à la classe Chat : »

Code Java Description
class Cat {
    public String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
nom est une variable d'instance. Elle a un modificateur d'accès public, ce qui la rend visible partout dans le projet.

La méthode getNom est un accesseur get (getter). Elle renvoie la valeur de la variable d'instance nom. Le nom de la méthode dérive du mot « obtenir » (« get »), plus le nom de la variable avec la première lettre en majuscule.

La méthode setNom est un accesseur set (setter). Elle permet d'attribuer une nouvelle valeur à la variable d'instance nom. Le nom de la méthode dérive du mot définir (« set »), plus le nom de la variable avec la première lettre en majuscule. Dans cette méthode, le paramètre a le même nom que la variable d'instance, ainsi nous faisons précéder le nom de la variable d'instance par this.

« Que sont ces getters et setters ? »

« En Java, c'est la pratique courante de cacher les variables aux autres classes. En général, les variables déclarées à l'intérieur des classes ont le modificateur private. »

« Pour permettre à d'autres classes de changer la valeur de ces variables, une paire de méthodes est créée pour chacune d'elles : get et set. La méthode get renvoie la valeur actuelle de la variable. La méthode set définit une nouvelle valeur pour la variable. »

« Et à quoi ça sert ? »

« Si nous voulons que personne ne change la valeur d'une variable d'instance, nous pouvons simplement ne pas créer de méthode set pour elle ou nous pouvons la rendre private. Nous pouvons également ajouter des contrôles de données supplémentaires à la méthode. Si la nouvelle valeur passée n'est pas valide, rien ne sera changé. »

« Je vois. »

« Comme une classe peut avoir beaucoup de variables, les noms des méthodes get et set comprennent généralement le nom de la variable qu'elles traitent. »

« Si une variable s'appelle 'nom', alors les méthodes seront appelées setNom et getNom, etc. »

« Je vois. Cela me semble tout à fait raisonnable. »

« Voici d'autres exemples de travail avec un objet nouvellement créé : »

Avancer Code Description
1
new Cat();
Crée un objet Cat
2
Cat catOscar = new Cat();
Stocke un objet Cat dans la variable catOscar
3
catOscar.name = "Oscar";
catOscar.age = 6;
catOscar.weight = 4;
Remplit l'objet avec des données : un nom, un âge et un poids
4
catOscar.sleep();
Appelle une méthode sur l'objet
5
catOscar.fight(catSmudge);
Fait interagir les objets.