[JAVA] À propos de l'encapsulation et de l'héritage

Nous résumerons l'encapsulation et l'héritage des trois principales fonctions orientées objet.

Objectif de l'encapsulation

L'encapsulation est une fonction qui restreint la lecture et l'écriture aux champs et l'appel de méthodes. En encapsulant, par exemple, il est possible de limiter l'appelant, ou de lire le contenu d'un champ mais pas de l'écrire.

Mise en œuvre de l'encapsulation

Encapsulation en définissant le contrôle d'accès Utiliser des modificateurs d'accès pour définir le contrôle d'accès Les modificateurs d'accès sont les suivants

Nom Plage d'autorisations
private Seulement ma propre classe
protected Le même package que vous ou une classe qui hérite de vous
public Toutes les classes

Norme d'encapsulation

Privé sur le terrain La méthode est publique

Préparez les getters et les setters à accéder aux champs

Vérifiez également la validité des arguments dans le setter

Objet de l'héritage

Utilisé pour réutiliser des classes similaires

Avantages de l'héritage

En ajoutant des méthodes et des champs à l'élément parent, il n'est pas nécessaire de les définir individuellement pour les éléments enfants. Le comportement peut être modifié individuellement en remplaçant.

Exemple d'implémentation d'héritage

Exemple

class Car {
  private double gas;
}

class superCar extends Car {
  private int speed;
}

De cette façon, la supercar peut avoir un champ de vitesse en plus du champ de gaz de voiture.

Interface

Forcer la classe qui définit la méthode et implémente l'interface à définir la méthode définie Héritage multiple autorisé

Exemple d'implémentation

interface Human {
  public void run();
}
class taro implements Human { 
  //taro génère une erreur car aucune méthode d'exécution n'est définie
}

Recommended Posts

À propos de l'encapsulation et de l'héritage
À propos de l'encapsulation
À propos de l'héritage orienté objet et du rendement Ruby
À propos de l'héritage de classe.
À propos de l'héritage Ruby
À propos de l'héritage Java
Héritage et interface.
À propos de Bean et DI
À propos des classes et des instances
À propos de l'héritage (Java Silver)
À propos de la redirection et du transfert
Héritage et délégation Ruby
À propos de Serializable et serialVersionUID
À propos de l'instruction et de l'instruction if
À propos du verrouillage synchronisé et réentrant
[Java] À propos de String et StringBuilder
À peu près la même et la même valeur
À propos des classes et des instances (évolution)
À propos de la méthode Pluck et de la méthode ID
Prise en compte des classes et des instances
À propos du package Java et de l'importation
À propos de Ruby, modèle objet
À propos des classes et des instances Ruby
À propos des variables d'instance et attr_ *
Encapsulation Java et getters et setters
À propos des méthodes Java statiques et non statiques
Héritage
À propos de Biocontainers fastqc et Java
En savoir plus sur les gemmes et les bundlers
À propos des méthodes equals () et hashcode ()
[Java débutant] À propos de l'abstraction et de l'interface
Héritage
À propos des guillemets simples et doubles Ruby
À propos de la phase de paramétrage et de la phase d'exécution de Gradle
[PHP] Patrons d'héritage, protégés et de référence
À propos de removeAll et de retentionAll de ArrayList
À propos =
Traitement des relevés et des succursales
A propos des types primitifs et des types de référence Java
Encapsulation
Considération sur les rails et l'architecture propre
Ceci et cela à propos de Base64 (Java)
À propos de Docker, faux serveur et conteneur
[Swift] Une note sur la fonction et la fermeture
À propos du fonctionnement de next () et nextLine ()
Soyons paresseux avec l'héritage et le remplacement
[À propos de JDBC qui connecte Java et SQL]
À propos de la différence entre irb et pry
À propos de "Injection de dépendances" et "Héritage" qui sont faciles à comprendre lorsqu'ils sont mémorisés ensemble