- - Tutoriel: Java Ce mot-clé

Tutoriel: Java Ce mot-clé

Dernièrement, nous avons appris Mot-clé statique en Java, ce qui rend les méthodes disponibles pour invoquer même avant de créer des objets. Très souvent, une méthode doit faire référence à l'objet qui l'a invoquée. Java a mis au point une fonctionnalité / mot clé "cette’Pour atteindre celui souhaité. «cette’Peut être utilisé dans n’importe quelle méthode pour faire référence à l’objet actuel. «cette’Est toujours une référence à l’objet sur lequel la méthode a été invoquée.

Java This

Parfois encore, lorsque le paramètre formel a le même nom qu'une variable d'instance, le paramètre formel masque la variable d'instance. Pour éviter de masquer les variables d'instance "cette’Est utilisé pour faire référence à la variable d'instance. Donc 'cette’Est utilisé pour résoudre les collisions d’espaces de noms qui peuvent se produire entre les variables d’instance et les paramètres formels.

Programme

class Employee{
String employeeName;
String employeeAddress;
double salary;
Employee(String employeeName,String employeeAddress,double salary){
this.employeeName = employeeName;
this.employeeAddress = employeeAddress;
this.salary = salary;
}
void setSalary(double salary){
this.salary = salary;
}
void showDetails(){
System.out.println("Employee's Name: "+employeeName);
System.out.println("Employee's Address: "+employeeAddress);
System.out.println("Employee's salary: "+salary);
}
}
class ThisDemo{
public static void main(String args[]){
String name = "Ricardo Kaka";
String address = "South Africa";
double salary = 26389.92;
Employee employee = new Employee(name,address,salary);
System.out.println("Employee Details:");
System.out.println("--------------------------");
employee.showDetails();
System.out.println();
System.out.println("Modified Employee Details:");
System.out.println("--------------------------");
salary = 34902.25;
employee.setSalary(salary);
employee.showDetails();
}
}

Production

programmation java

Explication du code Java et de la sortie

Dans le code, nous en avons écrit un paramétréconstructeur où les paramètres formels ont le même nom que le nom des variables d'instance de la même classe. Il est maintenant clair que les paramètres formels du constructeur paramétré masqueront les variables d'instance de la classe Employee. Pour résoudre le problème, nous avons utilisé «cette’Avant les variables d’instance lors de l’initialisation. Il en va de même pour le setSalary () méthode utilisée pour actualiser le salaire. Ici aussi, le paramètre formel setSalary () a le même nom que le nom de la variable d'instanceun salaire. Il y a donc une collision d'espace de noms, le salaire de paramètre formel masquera le salaire variable d'instance. Pour éviter ce problème lors de l'initialisation de la variable d'instance "cette’Doit être précédé. Nous verrons un petit programme comment le paramètre formel masque la variable d’instance si les deux portent le même nom.

class Employee{
double salary;
int age;
Employee(double salary){
salary = salary;
}
Employee(double salary,int age){
this.salary = salary;
this.age = age;
}
void showDetails(){
System.out.println("Salary: "+salary);
}
}
class HideDemo{
public static void main(String args[]){
Employee emp = new Employee(23678.88);
System.out.println("emp");
System.out.println("---");
emp.showDetails();
Employee employee = new Employee(23678.88,21);
System.out.println("n");
System.out.println("employee");
System.out.println("--------");
employee.showDetails();
}
}

Production

ceci en java

Dans le premier cas, nous n'avons pas utilisé «cette"Même s'il y a eu une collision d'espace de nomsentre le paramètre formel du constructeur et la variable d'instance de la classe Employee, tandis que le paramètre formel a masqué la variable d'instance. Mais dans le deuxième cas, comme nous l'avons utilisé »cette’Avant la variable d’instance lors de l’initialisation, il s’agissait de la variable d’instance et, en attendant, nous avons obtenu la valeur initiale du salaire qui a été transmise lors de l’initialisation.

Flash activé

  1. «cette’Renvoie toujours la référence à l’objet actuel.
  2. Il peut être utilisé à l'intérieur de méthodes et de constructeurs.
  3. «cette»Ne peut pas être référencé dans un contexte statique.
Ensuite, nous discuterons de Récursivité en Java.
Découvrez des tutoriels plus utiles et des directives définitives sur la programmation Java ici.

commentaires