Kleinere Detailfragen zu Java

JavaUndC-Prog

Bekanntes Mitglied
Hallo ich habe mal ein paar Fragen gesammelt, die mich gerade beschäftigen.

  1. Kann ich mit String text ein neues String Objekt erzeugen? Ich kenne das nur so, dass man Objekte erzeugt mit new ...
  2. Kann eine Unterklasse immer auf alle Attribute der Oberklasse zugreifen? Ich denke nein, denn Attribute der Oberklasse können auch private sein.
  3. Eine Subklasse kann nur auf Methoden und Attribute der Superklasse zugreifen, wenn diese nicht private sind. Ich denke, dass das richtig ist. Wenn es public ist könnte ich drauf zugreifen...
  4. Kann man eine überladene Methode in einer Subklasse nicht überschreiben?
  5. Dann würde mich noch der Konstruktor Aufruf interessieren, wenn ich eine Unter und Oberklasse habe, wird dann ein beliebiger Konstruktor der Oberklasse aufgerufen, oder wird der Standard Konstruktor der Oberklasse aufgerufen aufgerufen? Ich denke, dass das auf die Parameter ankommt super(x,y) bzw. dass wenn nichts weiter spezifiziert ist immer der Standard Konstruktor aufgerufen wird, weil ein beliebiger klingt irgendwie unlogisch und willkürlich
  6. Erzuge ich bereits mit int[] arr; ein Array mit int Werten? Ich denke nein, es ist einfach eine Deklaration. Das Array wird aber erst erstellt wenn int[] arr = new int[3]; oder int[] arr = {5 , 12} würde ich jetzt mal sagen.
Diese Fragen haben sich bei mir noch im Kopf angesammelt 😉

Ich bin sehr gespannt auf eure Meinungen!🙂
 
Zuletzt bearbeitet:
Zu 1. da bin ich mir immer noch nicht sicher, also laut Doku wird ein String erst erzeugt wenn ich sowas habe wie "irgendeintext", letztlich also String s = "blabla", hab ich das so richtig verstanden? Whenever it encounters a string literal in your code, the compiler creates a String object with its value

Zu 2. das habe ich getestet und bin der Meinung, dass das nicht geht. Aus dem Grund der oben auch steht, eine private Variable in einer Oberklasse ist für die Unterklasse nicht sichtbar, stimmts ? 😉

Zu 3. die Begründung die oben steht dürfte auch passen.

Zu 5. ein beliebiger Konstruktoraufruf macht keinen Sinn, so denke ich zumindest.

Zu 6. Declaring a variable of array type does not create an array object or allocate any space for array components. It creates only the variable itself. Also wird wirklich nur deklariert und kein Objekt erzeugt, schließe ich zumindes daraus!

Falls Jemand noch etwas hierzu beitragen möchte, würde ich mich sehr freuen!
 
Zuletzt bearbeitet:
zu 1:
Java:
String s = new String();
geht auch.

zu 2: Stimmt genau, unter anderem deswegen gibts neben private auch protected

zu 3: siehe zweitens zur Ergänzung

zu 4: doch, kann man, genauso wie eine normale Methode

zu 5: deine Denkweise in dem Fall ist vollkommen richtig, es wird der Konstruktor aufgerufen, den du selber aufrufst, oder der Standardkonstruktor

zu 6: hier denkst du auch richtig. Wobei du bedenken musst, dass
Java:
int[] arr = new int[3];
ein Array mit Defaultwerten von int (also 0), während bei
Java:
int[] arr = {5 , 12};
ein Array mit initialisierten Werten erzeugt wird.
 
Super, die 4. habe ich auch einmal implementiert und das hat anscheinend funktioniert. Das Klingt halt oben nur so "kompliziert". In Java ist auch nur eine Insel, habe ich auch nochmal nachgelesen, dass int[] arr, nur eine Deklaration ist und das Erzeugen erst mit new oder {1,3} geschieht.

Dann danke ich @thecain für seine Hilfe und die Doku, die im übrigen wirklich sehr gut ist (gibts die auch offiziell als Print?) und im besonderen nochmal ein herzliches Dankeschön an @L0oNY für seine sehr gute Antwort! Das hat mir sehr weitergeholfen (auch diese Bestätigung).
 

Neue Themen


Zurück
Oben