Zugriff auf Datenelement bzw. Methode

Könnt Ihr mir hier erklären, wie man in Java auf ein allgemein sichtbares Datenelement
bzw. eine allgemein sichtbare Methode zugreift?
Und zwei grundsätzlich unterschiedliche Varianten, die sich aus der Deklaration des
Datenelementenes bzw. der Methode ergeben.

Das muß mit “static” drin sein, oder?
Wie zum Beispiel:
public static void main(String [] args) { ... }
Und das soll auch sein, hier:

....
{
...
zaehler++;
...
}```

Diese Aufgaben - ich stehe wieder noch auf dem Schlauch! *seufz*

Hi,

static sollte der Ausnahmefall sein - bzw. nur dann einsetzen, wenn eine Klasse keine Daten hält. Ein gutes Beispiel ist hierfür die Standardklasse “Math”. Diese Klasse berechnet nur und speichert keine Daten. Deshalb sind alle Methoden static. Ansonsten werden neue Objekte von Klassen erzeugt, und von dort dann Methoden aufgerufen. Überall zugänglich sind nur public Methoden. Aber am Besten liest du dich mal ein wenig in Objekt-Orientierte-Programmierung ein.

http://www.java-blog-buch.de/category/oop/

jein… wenn man eine Methode hat in einer Klasse die auf keinen Zustand basiert, so kann diese ruhig static sein…

ansonsten wie S schon sagt… static sind an die Klasse gebunden und ueber die Klasse erreichbar… z.b. Math.pow()

bei den anderen Methoden (sog. Instanzmethoden) brauchst du eine Instanz der Klasse um dann auf die Methoden zugreifen zu koennen. z.b. Point p = new Point(1,2); p.getX()

Meinte ich damit :wink: .

ich meinte aber was anderes als du :slight_smile:

eine Klasse kann ruhig Daten halten und dennoch statische Methoden beinhalten, eben wenn diese Methoden nicht auf einen Zustand der Klasse basieren (utility methoden).

deine aussage bezieht sich ja darauf dass die gesamte Klasse keinen Zustand hat

Ich meinte trotzdem das Selbe. Habe mich nur in der Hektik scheiße ausgedrückt :frowning:

Wenn dies auch unter http://www.java-blog-buch.de/category/oop/ steht,
wo steht das denn da? :-o

Wie sieht statische Methode aus? Trifft Code, welche ich in meiner
ersten Posting angegeben habe, das zu?

Instanzmethoden trage ich trotzdem in der Aufgaben ein.

statische Methoden erkennt man an dem Schluesselwort static.
zb

   public static int getANumber() [
         return 1;
   }
}```
aufrufen kann man dies ueber MyClass.getANumber() - d.h. man kann ueber die Klasse die Methode (oder auch Variablen) erreichen... 

Instanzmethoden haben kein static
zb
```public class MyClass {
   private int myNumber;

   public int getMyNumber() [
         return myNumber;
   }
}```
fuer einen Aufruf wird eine Instanz der Klasse benoetigt
```MyClass mc = new MyClass();
mc.getMyNumber()```

besser verstaendlich ?

Jepp, das ist mir jetzt klar. Meine Aufgabe ist raus! Mal
sehen, was draus kommt. schluck

Nun bin ich an nächster Aufgabe - Java-Packages. :wink:

[QUOTE=yampi]Wenn dies auch unter http://www.java-blog-buch.de/category/oop/ steht,
wo steht das denn da? :-o[/QUOTE]

Ich meinte, das solltest du dir generell mal ansehen :wink: . Oder ein OO-Kapitel eines anderen Buches - ganz wie du möchtest.