Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich programmiere eigentlich schon sehr lange java habe aber bisher nie über referenzen bescheid gewusst
hier meine fragen :
wie mach ich für ein Object eine refferenz?
ich programmiere eigentlich schon sehr lange java habe aber bisher nie über referenzen bescheid gewusst
hier meine fragen :
wie mach ich für ein Object eine refferenz?
hir mal ein kleiner ausshnitt aus einer gfs, die ich mal geschrieben habe:
[...]
Objekt
Wir haben nun eine Klasse mit Methoden, also macht es jetzt Sinn ein Objekt unserer Klasse zu erstellen:
Code:
public class MeinAuto{
public static void main(String[] args){
Auto MeinAuto = new Auto(); //Konstruktoraufruf
MeinAuto.beschleunige(10);
System.out.println(MeinAuto.zeigeGeschwindigkeit());
MeinAuto.beschleunige(20);
System.out.println(MeinAuto.zeigeGeschwindigkeit());
}
}
Die Ausgabe des Programmes ist:
┌──────────────┐
                10
                30
└──────────────┘
Wie wir im obigen Beispiel sehen, müssen wir das Objekt innerhalb einer neuen Klasse mit einer eigenen Methode, der main() Methode erstellen. Jedes Java-Programm muss mit dieser Methode beginnen.
In Zeile [03] wird mit Auto MeinAuto zunächst eine Referenz erzeugt, die später auf das Objekt zeigen wird. Danach wird mit new Auto(), einem sogenannter Konstruktoraufruf, das Objekt erzeugt. Dies bedeutet, dass für dieses Objekt Speicherplatz reserviert wird. Ohne diesen Vorgang ist ein Arbeiten mit dem Objekt unmöglich.
Das Objekt MeinAuto ist nun erzeugt, und man kann mit ihm arbeiten. Im obigen Programm wird zunächst eine Geschwindigkeitszunahme definiert und dann die aktuelle Geschwindigkeit in der Kommandozeile ausgegeben. Dieser Vorgang wird wiederholt.
public class test3
{
public static void main(String[] args)
{
int[][] i1=new int[2][1];
i1[0][0]=3;
i1[1][0]=0;
int[][] i2=i1; //alle änderungen für i1 gelten jetzt auch für i2 und umgekehrt
Integer i3=new Integer(4);// hier wird nur der wert von i3 kopiert ich will jedoch das die änderungen für i4 auch für i3 gelten
Integer i4=i3;
}
}
Referenzen sind keine Objektkopien. Es sind so etwas wie Zeiger in C++.
Allerdings zeigen Referenzen nicht auf Speicheradressen des physikalischen Speichers, sondern auf Speicheradressen in der VM.
package schnipsel;
/*
* test3_1.java
*/
public class test3_1 {
public static void main(String[] args) {
MyArray arr1 = new MyArray(2, 1);
arr1.setValueAt(3, 0, 0);
arr1.setValueAt(0, 1, 0);
MyArray arr2 = arr1; //alle änderungen für arr1 gelten jetzt auch für arr2 und umgekehrt
arr2.setValueAt(1, 1, 0); //gilt für arr2 UND arr1
MyInteger integer1 = new MyInteger(4);
MyInteger integer2 = integer1; //alle änderungen für integer1 gelten jetzt auch für integer1 und umgekehrt
integer2.setValue(3); //gilt für integer2 UND integer1
}
}
class MyArray{
int[][] arr;
public MyArray(int row, int column){
arr = new int[row][column];
}
public void setValueAt(int value, int row, int column){
arr[row][column] = value;
}
public int[][] getArray(){
return arr;
}
}
class MyInteger{
Integer integer;
public MyInteger(int i){
integer = new Integer(i);
}
public void setValue(int i){
integer = new Integer(i);
}
public Integer getInteger(){
return integer;
}
}