Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Java Anfänger [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Java Anfänger


 
BlackPerfect
12-06-2008, 01:18 
 
Hi Leute,

beschäftige mich seit einigen Tagen mit Java und ich verstehe das einfach nicht mit der Sichtbarkeit bei static.
Das habe ich aus nem online Tutorial:

Variablen und Methoden mit dem Attribut static sind nicht an die Existenz eines konkreten Objekts gebunden, sondern existieren vom Laden der Klasse bis zum Beenden des Programms. Das static-Attribut beeinflußt bei Instanzmerkmalen ihre Lebensdauer und erlaubt bei Methoden den Aufruf, ohne daß der Aufrufer ein Objekt der Klasse besitzt, in der die Methode definiert wurde.

Der größte Teil davon ist mir klar nur wie meinen die das mit:
und erlaubt bei Methoden den Aufruf, ohne daß der Aufrufer ....

Danke schon im vorraus!!

 
Blackgreetz
12-06-2008, 01:21 
 
Hallo,

Normal rufst du die Objekte ja so auf:

Object Name = new Object();
int vari = Object.Methode()

Bei static kannst du das Object weglassen:

int vari = Methode()

mfg

 
onemorenerd
12-06-2008, 03:25 
 
Das kenne ich aber anders. :confused:

Object foo = new Object();
foo.Method();

vs.

Object.Method();


Static ist zum Beispiel der ganze Kram in Math und System, deswegen kannst du schreiben System.out.println() und Math.round(). Wenn es nicht static wäre, müßtest du erst eine Instanz erzeugen - das wär richtig nervig.

 
PHP-Desaster
12-06-2008, 09:41 
 
Der größte Teil davon ist mir klar nur wie meinen die das mit:
und erlaubt bei Methoden den Aufruf, ohne daß der Aufrufer ....Normalerweise wird eine Methode immer im Kontext einer Instanz ausgeführt. Da statische Methoden aber an kein Objekt, sondern lediglich an die Klasse gebunden sind, kannst du diese direkt aufrufen, wie onemorenerd auch bereits gezeigt habt (Blackgreetz Beispiel passt so nicht!)

 
asp2php
12-06-2008, 11:15 
 
Original geschrieben von Blackgreetz
Hallo,

Normal rufst du die Objekte ja so auf:

Object Name = new Object();
int vari = Object.Methode()

Bei static kannst du das Object weglassen:

int vari = Methode()

mfg

Das ist falsch!

int vari = Methode() => Methode von welcher Klasse? Und wenn 2 Klassen die gleichen Methodennamen haben, dann stürzt das Programm ab oder wie?

Die Erklärung von onemorenerd ist absolut korrekt!

 
Anyone
28-05-2010, 15:19 
 
Das kenne ich aber anders. :confused:

Object foo = new Object();
foo.Method();

vs.

Object.Method();


Static ist zum Beispiel der ganze Kram in Math und System, deswegen kannst du schreiben System.out.println() und Math.round(). Wenn es nicht static wäre, müßtest du erst eine Instanz erzeugen - das wär richtig nervig.

Ich kenn das allerdings ein bisschen anders...

objektorientiert

Object obj = new Object();
obj.Method();vs klassenorientiert

Class.Method();Bei statischen Methoden spricht man die Klasse und kein Objekt an (statisch = außerhalb des Objektkontexts). Vielleicht war das auch nur ein Schreibfehler von dir.

Zu deinem unvollendeten Satz:

und erlaubt bei Methoden den Aufruf, ohne daß der Aufrufer .... ein konkretes Objekt ist.

Ups, 2 Jahre zu spät :D

 
AmicaNoctis
28-05-2010, 15:34 
 
Anyone bekommt einen Orden für das Ausgraben uralter Threads und für die „Korrektur“ von onemorenerds korrektem Code, die eigentlich genauso aussieht. :rofl:

 
Anyone
28-05-2010, 15:36 
 
Anyone bekommt einen Orden für das Ausgraben uralter Threads und für die „Korrektur“ von onemorenerds korrektem Code, die eigentlich genauso aussieht. :rofl:
Ja, wie gesagt. Vielleicht hat er sich auch verschrieben, weil Object.Method ist zwar syntaktisch richtig, aber vom Sinn her vollkommen falsch. Und das mit dem alten Thema habe ich leider erst zu spät gesehen. :beer:

 
AmicaNoctis
28-05-2010, 15:45 
 
Object.Method ist zwar syntaktisch richtig, aber vom Sinn her vollkommen falsch

Wenn die Klasse aber nun so heißt und trotzdem statische Methoden hat…

Ich werd dann mal meine ehemalige Lehrerin anrufen und ihr sagen, dass sie „vom Sinn her vollkommen falsch“ ist. Die heißt nämlich Wolf. ;)

 
Anyone
28-05-2010, 15:46 
 
Wenn die Klasse aber nun so heißt und trotzdem statische Methoden hat…

Ich werd dann mal meine ehemalige Lehrerin anrufen und ihr sagen, dass sie „vom Sinn her vollkommen falsch“ ist. Die heißt nämlich Wolf. ;)

Damn, du hast natürlich vollkommen recht. Habe die Klasse Object an sich vollkommen vergessen. Okay, vergesst einfach alles was ich gesagt habe. :D

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:10 Uhr.