Les classes en Java

Cette page présente les particularités d'une classe en Java, mais vous pouvez consulter la page relative aux objets, classes et méthodes dans la partie Principes de programmation.

Les programmeurs C++ peuvent se référer aux pages relatives aux classes en C++ pour constater les différences de syntaxe.

Syntaxe des classes en Java

spécificateur_d_accès  class nom_classe{
/* déclaration des variables */
spécificateur_d_accès type nom;

/* constructeur */
spécificateur_d_accès nom_classe (type_paramètre nom_paramètre){
/* corps du constructeur */

}
}

Spécificateurs d'accès en Java

public

Tous les membres (attributs ou méthodes) d'une classe définis avec le mot clé public sont utilisables par tous les objets. Ce type de protection est employé pour indiquer que nous pouvons utiliser sans contrainte les attributs et méthodes d'une classe. Il s'agit du niveau de protection le plus bas.
Nous éviterons de déclarer les donnée publiques : nous utiliserons des méthodes pour y accéder en lecture ou en modification.

package

Les packages (ou paquets) permettent de regrouper des classes Java. Cela signifie dans ce cas que tous les membres d'une classe définis avec ce niveau de protection peuvent être utilisés par les autres classes du même package.
Lorsque nous ne spécifions pas d'accès particulier, c'est ce type de niveau d'accès qui sera utilisé par défaut. Nous retrouvons parfois la notion de "package" sous le nom friendly.

protected

Tous les membres d'une classe définis avec le mot clé protected sont utilisables uniquement par les méthodes de la classe, par les méthodes des classes dérivées et par les méthodes des classes appartenant au même package. Cette technique de protection est fortement associée à la notion d'héritage.
On ne peut pas qualifier une classe avec le mot clé protected.

private

Niveau de protection le plus élevé. La visibilité ne porte qu'à l'intérieur de la classe. Tous les membres d'une classe définis avec le mot clé private sont utilisables uniquement par les méthodes de la classe. C'est pour cette raison que nous utiliserons des méthodes définies dans la classe pour contrôler l'accès à ces données.
Les variables appartenant à une classe sont généralement déclarées comme privées.

Exemples de classes en Java

  1. public class eleve {
  2. private String nom;
  3. private String description;
  4. private int nb_presences;
  5. private String mail;
  6. //constructeur
  7. public eleve( String nom, String description, int nb_presence, String mail ){
  8. nom = setNom(nom);
  9. description = setDescription(description);
  10. nb_presences = setPresences(nb_presence);
  11. mail = setMail(mail);
  12. }
  13. //méthodes
  14. public void envoie_mail( ){
  15. System.out.println("Hello " + this.getNom);
  16. }
  17. //setters
  18. public void setNom( String nom ){
  19. this.nom = nom;
  20. }
  21. public void setDescription( String description ){
  22. this.description = description;
  23. }
  24. public void setPresences( int nb_presences ){
  25. this.nb_presences = nb_presences;
  26. }
  27. //getters
  28. public String getNom( ){
  29. return this.nom;
  30. }
  31. public String getDescription( ){
  32. return this.description;
  33. }
  34. public int getPresences( ){
  35. return this.nb_presences;
  36. }
  37. }

Contents Haut

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 08/05/2005, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/java-class.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.