Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Encapsulation Java

Encapsulation Java

Dans ce didacticiel, vous découvrirez l'encapsulation et le masquage de données en Java à l'aide d'exemples.

Encapsulation Java

L'encapsulation est l'une des principales caractéristiques de la programmation orientée objet. L'encapsulation fait référence au regroupement de champs et de méthodes dans une seule classe.

Il empêche les classes externes d'accéder et de modifier les champs et les méthodes d'une classe. Cela permet également de réaliser le masquage des données .

Exemple 1 :encapsulation Java

class Area {

  // fields to calculate area
  int length;
  int breadth;

  // constructor to initialize values
  Area(int length, int breadth) {
    this.length = length;
    this.breadth = breadth;
  }

  // method to calculate area
  public void getArea() {
    int area = length * breadth;
    System.out.println("Area: " + area);
  }
}

class Main {
  public static void main(String[] args) {

    // create object of Area
    // pass value of length and breadth
    Area rectangle = new Area(5, 6);
    rectangle.getArea();
  }
}

Sortie

Area: 30

Dans l'exemple ci-dessus, nous avons créé une classe nommée Area . Le but principal de cette classe est de calculer la surface.

Pour calculer une surface, nous avons besoin de deux variables :longueur et largeur et une méthode :getArea() . Par conséquent, nous avons regroupé ces champs et méthodes dans une seule classe.

Ici, les champs et les méthodes sont également accessibles à partir d'autres classes. Par conséquent, il ne s'agit pas de cacher des données .

Ce n'est qu'une encapsulation . Nous conservons simplement des codes similaires ensemble.

Remarque  :Les gens considèrent souvent l'encapsulation comme un masquage de données, mais ce n'est pas tout à fait vrai.

L'encapsulation fait référence au regroupement de domaines et de méthodes connexes. Ceci peut être utilisé pour réaliser le masquage des données. L'encapsulation en elle-même ne cache pas les données.

Pourquoi l'encapsulation ?

  • En Java, l'encapsulation nous aide à conserver ensemble les champs et les méthodes associés, ce qui rend notre code plus propre et facile à lire.
  • Cela aide à contrôler les valeurs de nos champs de données. Par exemple,
    class Person {
      private int age;
    
      public void setAge(int age) {
        if (age >= 0) {
          this.age = age;
        }
      }
    }

    Ici, nous faisons l'âge variables private et en appliquant la logique à l'intérieur du setAge() méthode. Maintenant, âge ne peut pas être négatif.
  • Les méthodes getter et setter fournissent lecture seule ou écriture seule accès à nos champs de classe. Par exemple,
    getName()  // provides read-only access
    setName() // provides write-only access
  • Cela aide à découpler les composants d'un système. Par exemple, nous pouvons encapsuler du code dans plusieurs bundles.

    Ces composants découplés (bundle) peuvent être développés, testés et débogués indépendamment et simultanément. De plus, toute modification apportée à un composant particulier n'a aucun effet sur les autres composants.
  • Nous pouvons également réaliser le masquage des données à l'aide de l'encapsulation. Dans l'exemple ci-dessus, si nous modifions la variable longueur et largeur en privé, l'accès à ces champs est restreint.

    Et, ils sont gardés cachés des classes extérieures. C'est ce qu'on appelle le masquage des données .

Masquage des données

Le masquage des données est un moyen de restreindre l'accès de nos membres de données en masquant les détails de mise en œuvre. L'encapsulation fournit également un moyen de masquer les données.

Nous pouvons utiliser des modificateurs d'accès pour masquer les données. Par exemple,

Exemple 2 :Masquage de données à l'aide du spécificateur privé

class Person {

  // private field
  private int age;

  // getter method
  public int getAge() {
    return age;
  }

  // setter method
  public void setAge(int age) {
    this.age = age;
  }
}

class Main {
  public static void main(String[] args) {

    // create an object of Person
    Person p1 = new Person();

    // change age using setter
    p1.setAge(24);

    // access age using getter
    System.out.println("My age is " + p1.getAge());
  }
}

Sortie

My age is 24

Dans l'exemple ci-dessus, nous avons un private champ âge . Comme il s'agit de private , il n'est pas accessible depuis l'extérieur de la classe.

Pour accéder à âge , nous avons utilisé public méthodes :getAge() et setAge() . Ces méthodes sont appelées méthodes getter et setter.

Faire vieillir private nous a permis de restreindre l'accès non autorisé depuis l'extérieur de la classe. Il s'agit de cacher des données .

Si nous essayons d'accéder à l'âge champ du Principal classe, nous obtiendrons une erreur.

// error: age has private access in Person
p1.age = 24;

Java

  1. Types de données Java (primitifs)
  2. Opérateurs Java
  3. Commentaires Java
  4. Java pour chaque boucle
  5. Chaînes Java
  6. Java ce mot clé
  7. InterfaceJava
  8. Java essayer avec des ressources
  9. Annotations Java