- - Підручник: Java Це ключове слово

Підручник: Java Це ключове слово

Нещодавно ми дізналися про це Статичне ключове слово на Java, яка робить доступними методи для виклику ще до створення об’єктів. Дуже часто метод потребує посилання на об'єкт, який його викликав. Java придумала функцію / ключове слово "цеЩоб досягти бажаного. 'це"Можна використовувати всередині будь-якого методу для позначення поточного об'єкта. 'цеЗавжди є посиланням на об'єкт, на який було застосовано метод.

Java Це

Іноді знову, коли формальний параметр має те саме ім'я, що і змінна інстанція, тоді формальний параметр приховує змінну екземпляра. Щоб уникнути приховування змінних екземплярів 'це"Використовується для позначення змінної екземпляра. Так 'це"Використовується для вирішення зіткнень у просторі імен, які можуть статися між змінними екземпляра та формальними параметрами.

Програма

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();
}
}

Вихідні дані

java програмування

Пояснення Java-коду та виводу

У коді ми записали один параметризованийконструктор, де формальні параметри мають те саме ім'я, що і ім'я змінних екземплярів того ж класу. Тепер зрозуміло, що формальні параметри параметризованого конструктора приховатимуть змінні екземпляри класу Employee. Для вирішення проблеми ми використали "цеПеред змінними екземпляра під час ініціалізації. Те саме стосується і setSallar () метод, який використовується для оновлення зарплати. Тут також формальний параметр до setSallar () має те саме ім'я, що і ім'я змінної екземпляразарплата. Отже, відбувається зіткнення простору імен, формальна зарплата параметр приховає змінну зарплату примірника. Щоб уникнути цієї проблеми під час ініціалізації змінної екземпляра 'цеМи побачимо одну невелику програму, як формальний параметр приховує змінну екземпляра, якщо обидва мають однакове ім'я.

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();
}
}

Вихідні дані

це в Java

У першому випадку ми не використовували "цеНавіть якщо сталося зіткнення простору іменміж формальним параметром конструктора і змінною екземпляра класу Employee, тим часом формальний параметр приховав змінну екземпляра. Але у другому випадку, як ми звикли "цеПеред змінною інстанції під час ініціалізації, це стосувалося змінної екземпляра, а тим часом ми отримали початкове значення зарплати, яка була передана під час ініціалізації.

Спалах увімкнено

  1. 'цеЗавжди повертає посилання на поточний об'єкт.
  2. Його можна використовувати всередині методів та конструкторів.
  3. 'це"Не можна посилатися в статичному контексті.
Далі ми поговоримо про Рекурсія на Java.
Отримайте тут більше корисних навчальних посібників та остаточних вказівок щодо програмування Java.

Коментарі