Heißen die lokale Variablen in Java nicht Methoden Variablen? ,weil es gibt ja auch schleifen Variablen die eigentlich auch lokal sind aber sichtbar nur innerhalb einer Schleife,und die classen Variablen(Global?Instanz?).
static a1 ist ja eine Variable die kein Objekt der classe Test braucht um da drauf zugreifen zu können.
Wäre die Variable nicht static sollte mein ein Objekt der Klasse erstellen um da drauf zugreifen zu können.
Klassen oder statische Variable werden die üblicherweise genannt (bzw Feld oder sonstige Begriffe je nach Kontext), global sind die nicht, und Instanzvariablen auch nicht.
Hey,
finde das Thema interessant und habe auch noch eine Frage.
Sagen wir mal ein Programm sieht so aus:
Code:
public class Clown {
public static int pi = 3; //statische Variable
int clowncar; //gloabale Variable?
Clown c //Instanzvariable
public static void main(String[] args) {
int n=4; //lokale Variable
for(int i=0;i<n;i++)
System.out.println(i);
}
}
ist eine globale Variable nicht auch eine statische Variable? Klar kann man die Statische Variable auch über Clown.pi von einer anderen Klasse aus aufrufen oder ist das der grund zwischen "statischer" Variable und "globaler" Variable?
Das kommt auf deine Definition von global an. Per se gibt es in Java das Konzept von globalen Variablen nicht. Es gibt Klassenvariablen (static) und Instanzvariablen - also die Attribute einer Instanz/Objekt - (das was du hier als global bezeichnest).
Ist eine Variable global, so kann man von jedem Ort aus auf sie zugreifen. Eine Variable wird global, indem man sie nicht in einem Block, sondern außerhalb der Hauptfunktion deklariert.
in einer Klasse nicht auch eine "Globale" Variable ist? Natürlich ist mir bewusst durch die Klasse nennen wir sie mal Test müsste man dann schreiben Test.counter doch durch public static sollte man von überall drauf zugreifen können. Oder ist das jetzt wieder nur Definitionssache das man es anders nennt FERTIG?
Das Thema sollte zwar erledigt sein aber hier nochmal:
Klassenvariablen - sind innerhalb einer ganzen Klasse sichtbar. Eine Klassenvariable wird innerhalb einer Klasse mit Hilfe des Schlüsselworts static deklariert:
static Typname Variablenname;
Eine solche Variable ist dann auch in jedem Objekt dieser Klasse verfügbar und hat somit insbesondere unabhängig von dem jeweiligen Objekt immer den gleichen Wert;
Objektvariablen - sind innerhalb eines Objektes sichtbar. Eine Objektvariable wird wie eine Klassenvariable innerhalb einer Klasse deklariert:
Typname Variablenname;
Eine solche Variable kann in jedem Objekt dieser Klasse einen anderen Wert haben. Genau genommen wird für jedes neue Objekt eine neue Variable mit dem gleichen Namen erzeugt;
Lokale Variablen - sind innerhalb von Blöcken sichtbar in denen sie deklariert wurden. Ein Block wird dabei durch geschweifte Klammern definiert, d.h. etwa eine Methode;
Genau von dort ich wollte gestern Abend da eigentlich noch das Beispiel von unten mit rein Kopieren und dann noch den Link. Dazu bin ich aber nicht mehr gekommen um 21 Uhr war Schluss
Denke damit ist das Thema hier auch durch
hab das nur nachträglich gemacht als "Zusammenfassung" denn so was finde ich immer gut wenn man dann ein Thema durchschaut muss man nicht jedes Kommentar durchlesen!