In meinem Code Beispiel befinden sich 2 Klassen, einmal TEST und TEST2. In beiden Klassen habe ich 2 Methoden definiert und der einen ein Array übergeben (a[ ]) und der anderen eine einfache integer Variable (a).
Von der Methode Methode lasse ich nun immer +15 rechnen und dann speicher ich das Ergebnis einmal im Array a auf Position [1] und einmal direkt in der Variable a.
Warum verhält es sich so, das bei Sysout dann für a[1] 30 rauskommt und bei Sysout2 für a immer noch nur 15?
Meine Frage ist Frage ist wohl schwierg zu verstehen, was an meiner laienhaften Ausdrucksweise liegen wird aber ich hoffe das ein erfahrener Java Entwickler mein Problem verstehen wird.
Vielen Dank für eine Antwort!
Mfg
[CODE lang="java" title="BeispielCode"]public class random{
public static void main(String[] args){
TEST OTEST = new TEST();
TEST2 OTEST2 = new TEST2();
}
}
public class TEST{
int a[] = new int[2];
TEST(){
Befullen();
Methode(a);
Sysout();
}
void Befullen(){
a[0] = 15;
}
void Methode(int x[]) {
x[1] = x[0] + 15;
}
void Sysout(){
System.out.println("a[1] = " + a[1]);
}
}
public class TEST2{
int a;
TEST2(){
Befullen2();
Methode2(a);
Sysout2();
}
void Befullen2(){
a=15;
}
void Methode2(int x) {
x = x + 15;
}
void Sysout2(){
System.out.println("a = " + a);
}
}[/CODE]
Von der Methode Methode lasse ich nun immer +15 rechnen und dann speicher ich das Ergebnis einmal im Array a auf Position [1] und einmal direkt in der Variable a.
Warum verhält es sich so, das bei Sysout dann für a[1] 30 rauskommt und bei Sysout2 für a immer noch nur 15?
Meine Frage ist Frage ist wohl schwierg zu verstehen, was an meiner laienhaften Ausdrucksweise liegen wird aber ich hoffe das ein erfahrener Java Entwickler mein Problem verstehen wird.
Vielen Dank für eine Antwort!
Mfg
[CODE lang="java" title="BeispielCode"]public class random{
public static void main(String[] args){
TEST OTEST = new TEST();
TEST2 OTEST2 = new TEST2();
}
}
public class TEST{
int a[] = new int[2];
TEST(){
Befullen();
Methode(a);
Sysout();
}
void Befullen(){
a[0] = 15;
}
void Methode(int x[]) {
x[1] = x[0] + 15;
}
void Sysout(){
System.out.println("a[1] = " + a[1]);
}
}
public class TEST2{
int a;
TEST2(){
Befullen2();
Methode2(a);
Sysout2();
}
void Befullen2(){
a=15;
}
void Methode2(int x) {
x = x + 15;
}
void Sysout2(){
System.out.println("a = " + a);
}
}[/CODE]