Les caractéristiques de base et les principes de base de l'orientation objet


Trois caractéristiques de base et cinq principes de base de l'orientation objet

Bien que ce soient toutes des questions de base, quelles sont les caractéristiques de base et les principes de base auxquels chacun peut répondre dans l'entretien? Après avoir mémorisé la route secrète, il est bon de ne pas l'avoir oublié, mais dans quels aspects les détails sont-ils utilisés et reflétés, je veux pour parler couramment Il peut être un peu difficile de le dire et de citer quelques exemples (je suis comme ça), alors résumons.

Trois caractéristiques de base

1. Paquet

  • Définition: Combinez les propriétés et les opérations (ou services) de l'objet en un tout indépendant, c'est-à-dire privatisez les propriétés, fournissez des méthodes setter et getter pour y accéder si nécessaire et masquez autant que possible les détails d'implémentation interne de l'objet.
  • Caractéristiques: L'utilisateur n'a pas besoin de se soucier des détails d'implémentation spécifiques, mais peut accéder aux membres de la classe uniquement via l'interface externe. L'interface USB que nous utilisons couramment nécessite des périphériques et n'a besoin que de connecter l'appareil à l'interface USB.Le fonctionnement interne n'est pas important pour l'utilisateur.L'interface USB est une interface d'accès externe.
  • Objectif: améliorer la sécurité des données, empêcher les autres utilisateurs d'accéder et de modifier les données à volonté et simplifier la programmation.

2. Héritage

  • Définition: l'héritage signifie que la sous-classe hérite des caractéristiques et des comportements de la classe parente, de sorte que l'objet de la sous-classe (instance) a le domaine d'instance et les méthodes de la classe parente, ou que la sous-classe hérite des méthodes de la classe parente, de sorte que la sous-classe a le même comportement que la classe parente.
  • Caractéristiques:
    1. Seul l'héritage unique est pris en charge, c'est-à-dire qu'une sous-classe est autorisée à n'avoir qu'une seule classe parente, mais l'héritage à plusieurs niveaux peut être réalisé, et la sous-classe a une classe parente unique, et la classe parente peut également hériter à nouveau.
    2. Les sous-classes peuvent avoir les propriétés et les méthodes de la classe parent.
    3. Les sous-classes peuvent avoir leurs propres propriétés et méthodes.
    4. La sous-classe peut remplacer la méthode de la superclasse.
  • Objectif: Réutiliser le code.
  • utilisation:
    1. Qu'il s'agisse d'une variable membre ou d'une méthode membre, elle est d'abord recherchée dans la classe actuelle. Sinon, elle est recherchée vers le haut dans la classe parente et ne sera jamais recherchée vers le bas dans la sous-classe.

    2. Variable de membre locale: utilisation directe; cette variable de membre de classe: cette. Variable de membre; variable de membre de classe parent: super. Variable de membre de classe parente

    3. Utilisation de ce mot-clé et des super mots-clés

      	super()关键字的用法:
      		- ​子类的成员方法中,访问父类的成员变量。
      		- 子类的成员方法中,访问父类的成员方法。
      		- 子类的构造方法中,访问父类的构造方法。
      	this关键字用法:
      		- 本类成员方法中,访问本类的成员变量。
      		- 本类成员方法中,访问本类的另一个成员方法。
      		- 本类的构造方法中,访问本类的另一个构造方法。
      
    4. Constructeur Dans la
      relation d'héritage, les caractéristiques d'accès des méthodes de construction des classes parent et enfant:

      • Il existe un super () implicite par défaut; appeler la méthode de construction de sous-classe, il doit donc d'abord appeler la méthode de construction de classe parent, puis appeler la méthode de construction de sous-classe.
      • La construction de la sous-classe peut être super (); appelle la construction de surcharge de la superclasse. (Lourde charge)
      • La classe parent super (); appelle la méthode de construction, qui doit être la première ligne de la construction de la sous-classe, qui est le premier élément se terminant par;, et elle ne peut être appelée qu'une seule fois.

3. Polymorphisme

  • Définition: la même entité a plusieurs formes en même temps. La manifestation est la suivante: la référence de la classe de base pointe vers l'objet de la sous-classe. Par exemple: sur l'objet de transformation, rappel d'interface.
  • Caractéristiques:
    1. Éliminez la relation de couplage entre les types pour obtenir un couplage faible.
    2. Flexibilité.
    3. Évolutivité.
    4. Remplaçabilité.
  • Objectif: augmenter la flexibilité du code.
  • utilisation:

    • Objet -cast up La référence de l'objet de déclaration enfant est affectée à l'objet déclaré par la classe parent, alors l'objet de classe parent est l'objet de conversion ascendante de l'objet classe enfant. Des exemples spécifiques sont les suivants:
    // 父类名称 对象名 = new 子类名称(); 
    class Animal {
          
          
    	void eat() {
          
          
    		System.out.println("动物吃饭!");
    	}
    }
    class Dog implements Animal {
          
          
    	public void eat(){
          
          
           System.out.println("小狗吃饭!");
       }
    }
    主类:{
          
          
    	Animal animal = new Dog();
    	animal.eat();
    }
    
    Insérez la description de l'image ici
    • Rappel d'interface
      La référence de l'objet créé par la classe qui implémente l'interface est affectée à la variable d'interface déclarée par l'interface. La variable d'interface appelle la méthode abstraite déclarée par l'interface (qui a été remplacée par la classe d'implémentation), c'est-à-dire le rappel d'interface. Des exemples spécifiques sont les suivants:
    // 接口名称 接口变量 = new 实现类名称();
    interface Animal {
          
          
    	void eat();
    }
    class Dog implements Animal {
          
          
    	public void eat(){
          
          
           System.out.println("小狗吃饭!");
       }
    }
    主类:{
          
          
    	Animal animal = new Dog();
    	animal.eat();
    }
    

Cinq caractéristiques de base

  • Principe de responsabilité unique
    En ce qui concerne une classe, il ne devrait y avoir qu'une seule raison à son changement, et il ne devrait y avoir qu'une seule responsabilité. Si une classe a plus d'une responsabilité, ces responsabilités sont couplées, et lorsqu'une responsabilité change, d'autres responsabilités peuvent être affectées.
  • Le principe d'ouverture et de fermeture L'
    image (classe, module, fonction, etc.) doit être ouverte pour extension, mais fermée pour modification. Cela signifie qu'une entité est autorisée à modifier son comportement sans changer son code source.
  • Le principe de substitution de Richter
    Partout où une classe de base peut apparaître, une sous-classe doit apparaître. Le principe de substitution de Richter est un complément au principe "ouverture-fermeture". L'étape clé pour réaliser le principe "ouverture-fermeture" est l'abstraction. La relation d'héritage entre la classe de base et les sous-classes est la réalisation concrète de l'abstraction, de sorte que le principe de substitution de Richter est la spécification des étapes concrètes pour réaliser l'abstraction.
  • S'appuyer sur le principe de l'inversion Les
    programmes doivent s'appuyer sur des interfaces abstraites et non sur des implémentations spécifiques. En termes simples, il est nécessaire de programmer l'abstraction, pas l'implémentation, ce qui réduit le couplage entre le client et le module d'implémentation.
  • Le principe de l'isolation d'interface Le
    client ne doit pas s'appuyer sur des interfaces dont il n'a pas besoin. La dépendance d'une classe à une autre doit être basée sur la plus petite interface. Si une méthode n'est pas utilisée dans l'interface, vous pouvez extraire l'interface ionique. Il vaut mieux utiliser plusieurs interfaces spécialisées que d'utiliser une seule interface.

Enregistrez vos propres notes d'étude pour la première fois. Si vous trouvez un problème, n'hésitez pas à donner des conseils.

Je suppose que tu aimes

Origine blog.csdn.net/qq_42647711/article/details/108412823
conseillé
Classement