Announcement

Collapse
No announcement yet.

Java für Anfänger

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Java für Anfänger

    wer weisst den unterschied zwischen einem Array von Grunddatentypen und einem Array von Objkten?

  • #2
    Originally posted by Olga Gizzatov View Post
    wer weisst den unterschied zwischen einem Array von Grunddatentypen und einem Array von Objkten?
    Was bewirken die ausdrücke "private","protected" und "public"?

    Comment


    • #3
      Hallo Olga,

      vorab: Du hast diese Fragen im Forums-Ordner Eclipse eingestellt. Warum nicht im Java-Forum, wo es auch eine Rubrik "Java für Anfänger" gibt. Denn mit Eclipse haben Deine Fragen nichts zu tun.


      Aber jetzt zu Deinen Fragen:

      1) Arrays
      Einem Array ist es eigentlich egal, was er enthält: elementare Datentypen oder Objekte. Ein Unterschied entsteht nur beim Zugriff durch die Änderbarkeit, aber das hat nichts mit Arrays zum tun, sondern prinzipiell mit dem Unterschied zwishcen elementarem Datentyp und Objekt.
      Nehmen wir folgendes Beispiel:
      Code:
      int[] intArray = new int[] {1, 2, 3};
      int x = intArray[0];
      x = 4;
      Die dritte Zeile ändern NICHT den Wert im Array. Wenn es dem Verständnis hilft, könnte man vereinfacht sagen, daß der <i>Wert</i>, der an der Position 0 des Array steht, in die Variable x "kopiert" wird.
      Anders bei folgendem Beispiel:
      Code:
      Point[] pArray = new Point[] { new Point(1,1), new Point(2,2) };
      Point p = pArray[0];
      p.x = 3;
      p = new Point(5,5);
      In der letzten Zeile passiert das gleiche wie im ersten Beispiel: es wird der Variablen einfach ein neuer Wert zugewiesen, was keine Auswirkung auf den Array hat. Aber in der Zeile davor wurde der Inhalt des Objekts geändert. Variablen von Objekten sind Zeiger auf Objekte (d.h. Adressen). Die Zeiger (Adressen) verhalten sich im Grunde genauso wie elementare Datentypen. Aber die Inhalte der Objekte sind was anderes. Im Beispiel enthalten zwei Variablen Zeiger auf das selbe Objekt, nämlich der erste Eintrag des Arrays und die Variable p. Wenn einer den Inhalt des Objekts ändert, bekommt selbstverständlich auch der andere die Änderung zu sehen.


      2) private / protected / public
      Diese Modifier bestimmen die Sichtbarkeit / Zugreifbarkeit von Variablen und Methoden (allgemein "Member" genannt).
      Member mit dem Modifier private sind nur innerhalb der Klasse sichtbar. D.h. von anderen Klassen aus, kann man nicht auf sie zugreifen. Damit "versteckt" (kapselt) man Hilfsmethoden und kontrolliert die Änderungen auf Variablen.
      Der Modifier public ist das Gegenstück. Auf Member, die public sind, kann von jeder beliebigen anderen Klasse aus zugegriffen werden.
      Aber was ist, wenn ich "Hilfsmethoden" oder Variablen habe, die ich einerseits private machen möchte, andererseits aber auch in Unterklassen benötige? Dafür gibt es den Modifier protected. Protected Member sind von allen Unterklassen zugreifbar, aber auch von allen Klassen des selben Package. Von anderen aber nicht.
      Es gibt noch eine vierte Stufe: gar keinen Modifier. Dieser bewirkt, daß solche Member nur innerhalb des Package sichtbar sind; ist also etwas strenger als protected.


      In der Hoffnung, geholfen zu haben,
      Stefan

      Comment

      Working...
      X