Maison > Java > javaDidacticiel > Alias ​​Java

Alias ​​Java

PHPz
Libérer: 2024-08-30 15:45:29
original
863 Les gens l'ont consulté

En Java, lorsque plusieurs références sont utilisées pour faire référence au même objet, celui-ci est communément appelé « alias ». Le problème avec l'alias se produit lorsqu'un utilisateur écrit sur un objet particulier et sur le propriétaire pour plusieurs autres références. , ne s'attend pas à ce que cet objet change. Ici, le code qui inclut l'alias peut rapidement prêter à confusion, et il est également très fastidieux à déboguer. Voyons comment fonctionne Java Alias.

PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Comment fonctionne un alias en Java ?

Comme nous l'avons vu précédemment, l'alias se produit lorsque plusieurs références sont associées au même objet. Cela signifie également qu'il existe plusieurs alias pour un emplacement qui peuvent être modifiés, et ces alias particuliers ont plusieurs types.

Prenons un exemple. x et y sont deux noms de variables qui ont deux types, X et Y. Y étend X.

Y[] y = new Y[10];
X[] x = y;
x[0] =  new X();
Y[0].func1();
Copier après la connexion

En mémoire également, ils pointent tous les deux vers le même endroit.

Alias ​​Java

L'emplacement mémoire pointé est pointé par x ainsi que par y. Cependant, l'objet réel enregistré choisit la méthode à appeler pendant l'exécution.

Voyons un autre exemple.

Rectangle b1 = new Rectangle (0, 0, 50, 150);
Rectangle b2 = b1;
Copier après la connexion

 b1 et b2 font référence au même objet, ou nous pouvons dire que l'objet donné a deux noms, tels que b1 et b2. Semblable à une personne qui a deux noms, les objets peuvent aussi avoir deux noms.

Lorsque deux variables alias sont présentes, les modifications qui provoquent une variable se reflètent également sur l'autre, comme indiqué ci-dessous.

System.out.println (b2.width);
b1.grow (40, 40);
System.out.println (b2.width);
Copier après la connexion

En exécutant le code, vous verrez que les modifications qui ont été provoquées sur un rectangle se sont également produites dans le deuxième rectangle. C'est l'une des principales choses à noter pour Alias ​​en Java.

Exemples d'alias Java

Voici quelques exemples de programmes sur Java Alias.

Exemple n°1

Code :

//class X
class X {
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
}
//Class Y that extends the class X
class Y extends X
{
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
//function 2
public void func2()
{
System.out.println("called sample function 2");
}
}
//main class
public class AliasExample {
//main method
public static void main(String[] args) {
Y[] y = new Y[10];
X[] x = y;
x[0] =  new X();
y[0].func1();
}
}
Copier après la connexion

Sortie :

Alias ​​Java

Comment cela se produit ? Que faut-il changer ? Est-il possible de résoudre ce problème ?

Oui !! La seule raison de cette exception est que Java gère les alias pendant l'exécution. Ce n'est que pendant l'exécution qu'il pourra savoir que le premier doit être un objet de Y au lieu de X.

//class X
class X {
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
}
//Class Y that extends the class X
class Y extends X
{
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
//function 2
public void func2()
{
System.out.println("called sample function 2");
}
}
//main class
public class AliasExample {
//main method
public static void main(String[] args) {
Y[] y = new Y[10];
X[] x = y;
x[0] =  new Y();
y[0].func1();
}
}
Copier après la connexion

Sortie :

Alias ​​Java

Exemple n°2

Code :

//main class
public class AliasExample {
//main method
public static void main(String[] args) {
//create two different arrays with same value
int a= 87;
int b=87;
//checks whether a and b are equal
System.out.println(a == b);
//assign b equal to a
b=a;
//checks whether a and b are equal
System.out.println(a == b);
}
}
Copier après la connexion

Sortie :

Alias ​​Java

Que se passera-t-il si deux tableaux, a et b, sont utilisés à la place de variables entières ?

//main class
public class AliasExample {
//main method
public static void main(String[] args) {
//create two different arrays with same value
int []a = {81, 54, 83};
int []b = {81, 54, 83};
//checks whether a and b are equal
System.out.println(a == b);
//assign b equal to a
b=a;
//checks whether a and b are equal
System.out.println(a == b);
}
}
Copier après la connexion

Sortie :

Alias ​​Java

Dans ce programme, deux tableaux, a et b, sont créés dans la première étape. Ensuite, comme dans le programme ci-dessus, a et b vérifient s’ils sont égaux. Lors de l'exécution du code, on peut voir que le résultat de la première vérification est faux et que le résultat de la deuxième vérification est vrai. C'est parce que Java Alias ​​fonctionne.

Conclusion

L'inconvénient de l'alias est lorsqu'un utilisateur écrit sur un objet spécifique et que le propriétaire, pour d'autres références, ne devine pas cet objet à modifier.

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!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal