Différence clé - this vs super en Java
Les mots-clés «this» et «super» sont utilisés dans la programmation Java. Ces mots clés ne peuvent pas être utilisés comme variables ou tout autre nom d'identifiant. Java prend en charge la programmation orientée objet (POO). Le programme ou le logiciel peut être modélisé à l'aide d'objets. Les objets sont insatiés en utilisant des classes. L'héritage est l'un des piliers de la POO. Il fournit la réutilisabilité du code. Les classes qui existent déjà sont des superclasses et les classes dérivées sont des sous-classes. Le mot clé super peut être utilisé pour référencer un objet de la superclasse. Il existe plusieurs objets dans le système. Le mot clé 'this' est utilisé pour faire référence à un objet courant. La principale différence entre this et super est que «this» est une variable de référence qui est utilisée pour faire référence à l'objet actuel tandis que «super» est une variable de référence qui est utilisée pour faire référence à un objet de superclasse immédiate.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que c'est en Java
3. Qu'est-ce que super en Java
4. Similitudes entre ceci et super en Java
5. Comparaison côte à côte - ce vs super en Java sous forme tabulaire
6. Résumé
Qu'est-ce que c'est en Java?
Le mot-clé «ceci» est utilisé pour faire référence à un objet courant. Reportez-vous au programme Java donné.
Figure 01: programme Java utilisant ce mot-clé
En Java, il existe trois types de variables. Ce sont des variables d'instance, des variables locales et des variables de classe. Selon le programme ci-dessus, la classe Employee a deux variables d'instance. Ils sont id et nom. Les variables locales sont les variables appartenant aux méthodes. Les variables de classe sont partagées par tous les objets. L'ID et le nom sont transmis au constructeur Employee. Si le programmeur écrit id = id; il n'initialisera pas les variables d'instance car le constructeur a déjà l'id et le nom. Il n'y a pas de valeurs pour les variables d'instance. Ainsi, leur impression affichera null. Lors de son utilisation, il fait référence à l'objet actuel. Par conséquent, donner l'id et le nom au constructeur peut définir les variables d'instance.
Le mot-clé 'this' peut être utilisé pour appeler la méthode de classe actuelle. Reportez-vous au programme java donné.
classe publique ThisDemo {
public static void main (String args) {
Myclass myClass = new Myclass ();
myClass. B ();
}
}
class Myclass {
public void A () {
System.out.println («A»);
}
public void B () {
System.out.prinltn («B»);
this. A ();
}
}
La classe Myclass contient deux méthodes. Ce sont les méthodes A et B. Lors de la création d'un objet de Myclass et de l'appel de la méthode B, B, A sera affiché comme sortie. Dans la méthode B, après l'impression de B, il y a une instruction comme this. A (). En utilisant cela, la méthode de classe actuelle a été appelée.
Il est également possible d'utiliser ce mot clé pour appeler le constructeur de classe actuel. Référez-vous au programme donné.
classe publique ThisDemo {
public static void main (String args) {
A obj = nouveau A (5);
}
}
Classe A{
public A () {
System.out.println («Constructeur A»);
}
public A (int x) {
cette();
System.out.println («Constructeur paramétré A»);
}
}
Selon le programme ci-dessus, la classe A a un constructeur par défaut et un constructeur paramétré. Lors de la création d'un objet de A, le constructeur paramétré est appelé. Dans le constructeur paramétré, il y a une instruction comme this (); Il appellera le constructeur de classe actuel qui est A ().
Qu'est-ce que super en Java?
Le mot-clé «super» est lié à l'héritage. L'héritage est un concept majeur de la programmation orientée objet. Il permet d'utiliser les propriétés et méthodes de la classe déjà existante dans une nouvelle classe. La classe déjà existante est appelée classe parente ou superclasse. La nouvelle classe est appelée classe enfant ou sous-classe.
Le «super» est une variable de référence qui est utilisée pour faire référence à l'objet de classe parent immédiat. Le mot-clé super peut faire référence à une variable d'instance de classe parent immédiate ou appeler une méthode de classe parent immédiate. Le super () est utilisé pour appeler le constructeur de classe parent immédiat.
Supposons qu'il existe deux classes comme A et B. La classe A est la superclasse et la classe B est la sous-classe. Les classes A et B ont toutes deux une méthode d'affichage.
classe publique A {
affichage public void () {
System.out.println («A»);
}
}
la classe publique B étend A {
affichage public void () {
System.out.println («B»);
}
}
Lors de la création d'un objet de type B et de l'appel de la méthode display, il donnera la sortie B. La classe A a la méthode d'affichage, mais elle est remplacée par la méthode d'affichage de la sous-classe B. Si le programmeur souhaite appeler la méthode d'affichage dans la classe A, il peut utiliser le mot clé super. Reportez-vous au programme Java donné.
Figure 02: programme Java utilisant un super mot-clé
Selon le programme ci-dessus, la classe A a une variable nommée nombre avec la valeur 10. La classe B étend A et a une variable nommée nombre avec la valeur 20. Généralement, lors de la création d'un objet de type B et de l'appel de la méthode d'affichage, il faut donner le nombre en la sous-classe car la valeur de la superclasse est remplacée par la nouvelle classe. En utilisant le super.num, la valeur du numéro de la superclasse est imprimée.
Le super () peut être utilisé pour appeler le constructeur de la superclasse. Référez-vous au programme ci-dessous.
classe publique Main {
public static void main (String args) {
B obj = nouveau B ();
}
}
Classe A{
UNE(){
System.out.println («A»);
}
}
la classe B étend A {
B () {
super();
System.out.println («B»);
}
}
Selon le programme ci-dessus, la classe A a un constructeur A (). La classe B a le constructeur B (). La classe B étend la classe A. Lors de la création d'un objet de type B, il imprimera A, B comme sortie. Le constructeur B () a super (). Par conséquent, le constructeur A est d'abord appelé, puis passe à B. Même si super () n'est pas écrit, par défaut le constructeur parent est appelé.
Le super utilisant la méthode est le suivant.
Figure 03: programme Java qui invoque la méthode superclass
Selon le programme ci-dessus, la classe A a une méthode d'affichage. La classe B a également une méthode d'affichage. La classe B étend A. Lors de la création d'un objet de type B et l'appel de la méthode d'affichage donnera la sortie comme A et B. Dans la méthode d'affichage de classe B, la méthode d'affichage de classe A est appelée à l'aide de super.display (). Cette méthode imprime d'abord «A». Imprime ensuite «B».
Quelle est la similitude entre ceci et super?
Les deux sont des mots-clés dans la programmation Java
Quelle est la différence entre ceci et super?
Diff article au milieu avant la table
Ceci vs Super |
|
Le «ceci» est une variable de référence qui est utilisée pour référencer l'objet courant. | Le «super» est une variable de référence qui est utilisée pour faire référence à un objet de superclasse immédiate. |
Variable d'instance | |
Une variable d'instance de classe actuelle peut être référencée à l'aide de this. | La variable d'instance de superclasse peut être référencée en utilisant super. |
Méthode de classe | |
La méthode de classe actuelle peut être appelée à l'aide de this. | La méthode Superclass peut être appelée en utilisant super. |
Constructeur | |
Le constructeur de classe actuel peut être appelé en utilisant this (). | Le constructeur de superclasse peut être appelé en utilisant super (). |
Résumé - This vs Super en Java
Les mots-clés «this» et «super» sont utilisés en Java. Les mots-clés ne peuvent pas être utilisés comme variables ou tout autre nom d'identifiant. Ils semblent être les mêmes, mais ils ont une différence. La différence entre ceci et super est que super est une variable de référence qui est utilisée pour faire référence à un objet de superclasse immédiate alors qu'il s'agit d'une variable de référence qui fait référence à l'objet actuel.
Téléchargez le PDF de ce vs super en Java
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne selon la note de citation. Veuillez télécharger la version PDF ici: Différence entre ceci et super en Java