Ich habe eine Frage zu Schlüsselwort dies und Variablen Bereich in Methoden. Im Allgemeinen weiß ich, wie man dieses Schlüsselwort verwendet, aber wurde verwirrt, wenn das gleiche Ergebnis für alle 3 Optionen unten in Methode Balance beobachtet wurde. Die Frage ist, was ist die korrekte Implementierung der Option und warum es alle Optionen mit dem gleichen Ergebnis behandelt. Bedeutet dies, dass, wenn keine lokale Variable im Methodensaldo vorhanden ist, dieses Schlüsselwort ignoriert wird?dieses Schlüsselwort und wie es funktioniert
Vielen Dank!
Option # 1
public int balance(int balance) {
this.age = this.age + balance;
return age;
}
Option # 2
public int balance(int balance) {
age = age + balance;
return age;
}
Option # 3
public int balance(int balance) {
age = age + balance;
return this.age;
}
-Code
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());
}
}
Ergebnis für alle drei Optionen ist der gleiche: Elephant Name: elephant1: Alter: 7 Eingetragen Anzahlung für e1: 11 Saldo e1: 18
2 und 3 haben keinen Unterschied.Bitte überprüfen Sie erneut –
@RamanShrivastava, korrigiert, danke – OKie