Maison  >  Article  >  Java  >  Introduction aux fonctionnalités orientées objet de Java

Introduction aux fonctionnalités orientées objet de Java

王林
王林avant
2020-02-05 17:54:532282parcourir

Introduction aux fonctionnalités orientées objet de Java

Les trois principales fonctionnalités orientées objet de Java :

Encapsulation, héritage et polymorphisme.

1. Encapsulation

Masque les informations de classe à l'intérieur de la classe et ne permet pas l'accès direct aux programmes externes. Au lieu de cela, les informations cachées sont implémentées via les méthodes fournies par. la classe, les opérations et l'accès.

Étapes de mise en œuvre de l'encapsulation :

Modifier la visibilité des attributs : Définir sur privé

Créer des méthodes getter/setter : pour lire et écrire des attributs

Ajouter des instructions de contrôle d'attribut aux méthodes getter/setter : juger de la légalité de la valeur de l'attribut

(apprentissage recommandé : tutoriel vidéo Java)

Utiliser private pour modifier la visibilité des attributs, par exemple :

//表示读取该方法中的screen
public float getScreen{
	return screen;
    }
 //有viod无返回值,变量名.属性=值,就不能直接调用可以通过变量名.getScreen()来实现
public viod setScreen(float newScreen){
	screen = newscreen;
	}

Nom de la variable. L'attribut = valeur ne peut pas être appelé directement. Cela peut être obtenu via getScreen().

Fonction du package :

1. Gérer les fichiers Java

2 Résoudre les conflits de fichiers du même nom

Définir le package. : package

Nom du package Remarque : Il doit être placé sur la première ligne du programme source Java. Les noms des packages peuvent être séparés par ".". Par exemple : dans com.imooc.MyClassJava, la convention de dénomination de. packages est écrit en lettres minuscules.

Modificateurs de contrôle d'accès en Java

public, par défaut, protégé, privé

public : public, accessible à toutes les classes

default : modificateur par défaut, accès au sein du même package

protected : type protégé.

private : classe privée, seule cette classe peut accéder à

final, enfin, finaliser (hériter)

final : modificateur. La classe modifiée par ce modificateur ne peut pas être héritée ; la variable modifiée par ce modificateur ne peut pas être modifiée et ne peut être lue ; la méthode modifiée par ce modificateur ne peut être utilisée, peut être surchargée et ne peut pas être réécrite ; les symboles de modification ne peuvent pas être modifiés ; cours abstraits.

finalement : opération de nettoyage après avoir détecté une exception

finalize : une méthode ; principalement avant que le GC ne supprime l'objet, appelez d'abord la méthode finalize sur l'objet pour déterminer si l'objet est référencé

Ce mot-clé en Java

//原来手动输入
public void setScreen( float newScreen){
   screen = newScreen;
   }
// 用eclips 自动生成的是
public void setScreen( float newScreen){
  this.screen = screen;
  }

this Attribut : Manipuler les propriétés de l'objet actuel

méthode this : Appeler la méthode de l'objet actuel<.>

Ecilipse peut générer directement des méthodes setter et getter et ajouter le mot-clé this.

Ce mot-clé appelle des variables membres ou des méthodes membres, des membres statiques. This et les super mots-clés ne peuvent pas être utilisés dans les méthodes statiques. En même temps, vous pouvez également renvoyer une référence à la classe et appeler le constructeur

<.>

Classes internes statiques en Java

Les classes internes statiques sont des classes internes modifiées de manière statique. Les caractéristiques de cette classe interne sont :

1. accéder aux classes externes. Membre non statique, mais accessible via un nouveau membre de classe externe ().

2. Si les membres statiques de la classe externe ont le même nom que le membre de la classe interne, vous pouvez accéder aux membres statiques de la classe externe via "nom de classe.membre statique" ; les membres de la classe externe ont le même nom que le membre de la classe interne. S'ils ne sont pas identiques, vous pouvez appeler directement les membres statiques de la classe externe via le "nom du membre".

3. Lors de la création d'un objet d'une classe interne statique, vous n'avez pas besoin d'un objet d'une classe externe. Vous pouvez créer directement un nom d'objet de classe interne = nouvelle classe interne ();.

2. L'héritage

La notion d'héritage : c'est une relation entre les classes.

Avantages de l'héritage :

1) La sous-classe possède toutes les propriétés et méthodes de la classe parent (la modification privée n'est pas valide)

2) Implémenter la reproduction du code

Règles de grammaire : la sous-classe de classe étend la classe parent { >

Réécriture des méthodes :

La sous-classe n'est pas satisfaite de l'héritage de la classe parent et réécrit sa propre contenu et après réécriture, la méthode de la sous-classe sera appelée en premier

Règles de grammaire :

La valeur de retour, le type, le nom de la méthode et le numéro de type de paramètre doivent être les mêmes en tant que méthode d'intégration de la classe parent, est appelée substitution

Hériter de la séquence d'initialisation :

Initialisation de l'attribut de la classe parent>Méthode de construction de la classe parent>Initialisation de l'attribut de sous-classe>Méthode de construction de la sous-classe 0

super mot-clé :

est utilisé à l'intérieur de l'objet et peut représenter l'objet de classe parent.

Accéder aux attributs de la classe parent : super.age;

Accéder à la méthode de la classe parent : super.eat();

Application de super :

Lors de la méthode de construction de la sous-classe, la méthode de construction de la classe parent doit être appelée.

Si le constructeur de la sous-classe n'appelle pas explicitement le constructeur de la classe parent, le système appellera par défaut le constructeur sans argument de la classe parent.

Si vous appelez explicitement le constructeur, il doit être dans la première ligne du constructeur de la sous-classe.

Si le constructeur de la sous-classe n'appelle pas explicitement le constructeur de la classe parent et que la classe parent n'a pas de constructeur sans paramètres, une erreur de compilation se produira.

Classe Object :

Une classe sans identification de qui elle hérite équivaut à hériter de la classe Object

méthode toString() :

Le code de hachage (chaîne d'adresse de l'objet) de l'objet renvoyé lorsque la méthode toString() est définie dans la classe Object

Vous pouvez exprimer l'objet en remplaçant toString() Attribut de méthode

méthodeequals() :

La comparaison consiste à savoir si les références d'objet pointent vers la même adresse mémoire. Remarque : La méthode equals() n'est pas applicable lors de la comparaison de deux objets. Lorsqu'un nouvel objet est créé, une nouvelle adresse de stockage sera créée dans la mémoire. Par conséquent, même si les attributs de l'objet sont cohérents, ils ne sont pas égaux. pour que les valeurs d'attribut spécifiques des objets soient les mêmes, vous devez répéter Écrivez la méthode equals()

et comparez getClass() pour renvoyer l'objet de classe :

getClass() renvoie l'objet de classe : informations de code décrivant la classe, les attributs de la classe sont lesquels, quel est le type, quel est le nom de la variable, quel est le nom de la méthode, ce qui importe le plus, c'est le code informations de la classe.

La création d'un nom d'objet renvoie un objet de la classe :

Concentrez-vous sur les informations sur la valeur d'attribut de l'objet, ou sur les informations des données de l'objet

3. Polymorphisme

Polymorphisme : fait référence aux différentes formes d'objets, principalement divisées en polymorphisme de référence et polymorphisme de méthode.

L'héritage est la base du polymorphisme. N'oubliez pas que les classes enfants et parents doivent avoir une relation d'héritage.

Caractéristiques polymorphes :

1. .Citation Polymorphisme

La référence de la classe parent peut pointer vers l'objet de cette classe Animal obj1 = new Animal();

La référence de la classe parent peut pointer vers l'objet de la sous-classe Animal obj2 = new Dog ();

Mais nous ne pouvons pas utiliser la référence de la sous-classe pour pointer vers l'objet de classe parent Dog obj3 = new Animal();//Error

2. Polymorphisme de la méthode

Définir une méthode eat() dans la classe Animal, afficher une instruction (les animaux ont la capacité de manger) ; réécrire la méthode eat() dans la sous-classe Dog, afficher une instruction (les chiens mangent de la viande puis dans la fonction principale de) ; la classe de test, si obj1.eat(), alors la méthode de la classe parent est appelée. Si obj2 est utilisé pour appeler la méthode eat(), alors la méthode de la sous-classe est appelée.

Il existe une autre situation, comme la création d'une sous-classe Cat qui hérite de la classe parent Animal, mais Cat ne remplace pas la méthode eat() héritée. Ensuite, nous créons une sous-classe dans la fonction principale de la classe de test. Object, Animal obj3 = new Cat(); puis appelez obj3.eat(); Ensuite, le résultat est que la sous-classe hérite de la méthode de la classe parent (résultat de sortie : l'animal a la capacité de manger).

Dans le dernier cas particulier, la fonctionnalité polymorphe ne peut pas être utilisée. Si vous ajoutez une méthode unique public void watchDoor() à la sous-classe, elle contient une instruction de sortie (le chien a la capacité de surveiller la porte) ; Ensuite, dans la fonction principale de la classe test (il faut d'abord définir l'objet Animal obj2 = new Dog()), on ne peut pas utiliser obj2.watchDoor(), c'est-à-dire qu'on ne peut pas appeler la méthode de la sous-classe via la référence de la classe parent.

Articles et tutoriels connexes recommandés : Tutoriel d'introduction à Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer