У меня вопрос к ключевому слову this и scope scope в методах. В общем, я знаю, как использовать это ключевое слово, но запутался при наблюдении того же результата для всех трех вариантов ниже в методе баланс. Вопрос в том, какова правильная реализация опции и почему она рассматривает все варианты с тем же результатом. Означает ли это, что если в балансе метода нет локальной переменной, это ключевое слово игнорируется?это ключевое слово и как оно работает
Большое спасибо!
вариант # 1
public int balance(int balance) {
this.age = this.age + balance;
return age;
}
вариант # 2
public int balance(int balance) {
age = age + balance;
return age;
}
вариант # 3
public int balance(int balance) {
age = age + balance;
return this.age;
}
Код
package com;
public class Elephant {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
public int balance(int balance) {
age = age + balance;
return age;
}
public int getAge() {
return age;
}
public Elephant(String name, int age) {
this.name = name;
if (age > 0) {
this.age = age;
}
}
}
package com;
import java.util.Scanner;
public class MainClass {
public static void main(String arg[]) {
Elephant e1 = new Elephant("Elephant1: ", 7);
System.out.printf("Elephant name: %s age: %s \n", e1.getName(), e1.getAge());
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
e1.balance(i);
System.out.printf("Entered deposit for e1: %d \n", i);
System.out.printf("Balance for e1: %s", e1.getAge());
}
}
Результат для всех 3-х вариантов тот же: имя Elephant: Elephant1: возраст: 7 Поступил депозит для e1: 11 Весы для e1: 18
2 и 3 не имеет никакой разницы.PLZ снова проверить –
@RamanShrivastava, исправлено, спасибо – OKie