Was ist der Unterschied von Variablen, Instanzvariablen, Klassenvariablen, Methoden, Instanzmethoden und Klassenmethoden (JAVA) wo liegt der Unterschied??
Ich habe mir nun 2 Bücher geholt, das Internetdurchforstet und vieles mehr.
Aber überall wird Fachsprache verwendet...
Beispielsweise wird in nem Buch was ich gelesen habe von Anfang an von Instanzen gesprochen, aber das wird nicht mal gezeigt, also das wird irgendwie als "standardwissen" erwartet.
Deshalb frage ich mich, ich habe z.B. diesen Code:
Class Hallo
{
int asd=asd;
}
Das wäre doch jetzt eine normale Variable, was wäre eine Instanzvariable, was eine Klassenvariable?
Könnte man das vielleicht mal mit Code zeigen? Es gibt irgendwie, ohne dumm zu wirken, keine Anfängerbücher.
Es wird z. B. in keinem Buch was ich gesehen habe, ein Codestück gezeigt und gesagt, dass ist eine Instanzvariable, dass eine Varibale, dass eine Kalssenvariable. Viel mehr fängt es direkt mit Instanzvariable an, aber was ist denn überhaupt eine Instanz?
Wäre nice, wenn alle mal diese Unterschide von Variablen, Instanzvariablen, Klassenvariablen, Methoden, Instanzmethoden und Klassenmethoden
darstellen könnte,
1 Antwort
Hallo uqdhui,
eine Klasse ist eine Vorgabe, aus der du Instanzen erzeugen kannst, oftmals auch als instanziieren oder instantion bezeichnet.
class Example {
int klassenvariable = 1;
int instanzvariable;
public Example(int x) {
this.instanzvariable = x;
}
public int getWert() {
return this.instanzvariable;
}
}
Example instanz = new Example();
Hier wird eine Instanz von der Klasse Example erzeugt und in der Variable "instanz" als Referenz gespeichert. Eine Referenz zeigt auf ein Objekt, während primitive Datentypen wie "int" direkt auf einen Wert zeigen.
Alle Attribute oder Felder einer Klasse sind Klassenvariablen, die Attribute und Felder einer Instanz sind daher Instanzvariablen, da diese unabhängig von der Klasse modifiziert werden können, zum Beispiel über den Konstruktor. Es gibt auch statische oder "static" Attribute, die über den Klassennamen aufgerufen werden können, ohne eine Instanz zu erzeugen.
Das gilt auch für Methoden, in reinen objektorientieren Sprachen wie Java wird diese Bezeichnung für alle Klassen- und Instanzmethoden verwendet. In gemischten Sprachen wie Python gibt es auch Methoden, die nicht innerhalb einer Klasse definiert wurden.
Eine Klassenmethode kann ebenso statisch sein, während eine Instanzmethode nur auf einer erzeugten Instanz aufgerufen werden kann.
No joke bist mein Held :)
EIne frage hätte ich, wenn ich mache
Klasse test= new Klasse();
Was ist dein mein Objekt? ISt dann mein Objekt test? Also ist test ein Objekt?