Hallo!
Lese gerade ein Buch (Grundlagen Java) in dem ein paar Sachen stehen, die ich nicht verstehe:
1. Klassenmethoden können nicht auf Instanzvariablen zugreifen und keine Instanzmethoden aufrufen.
Das mit den Instanzvariablen weiß ich noch nicht, aber ich kann doch in einer Klassenmethode sowohl innerhalb als auch außerhalb der Klasse auf eine Instanzmethode zugreifen?
Oder sehe ich da was falsch?
2. Wozu genau dient ein Kopierkonstruktor?
3. Generell sind ja Variablen innerhalb einer Methode lokale Variablen. Sehe ich es richtig, dass, wenn der Parameter mit Datentyp deklariert wurde (z. B. int x), dann muss ich die lokale Variable nicht noch mal mit Datentyp deklarieren? Also z. B.
4. Call-by-value: Normalerweise bleibt der Wert der Variablen in der aufrufenden Methode ja unverändert. Aber bei Arrays ist das nicht so. Da wird der Wert verändert?
5.
Das verstehe ich überhaupt nicht. Was genau soll mir das sagen?
6. Was sind Initialisierer? Das ist ja was anderes als ein Konstruktor, oder? Und sehe ich das richtig, dass static initializer einfach nur dazu dienen, Konstanten einen Wert zuzuweisen, bei der Instanziierung eines Objekts?
So, das wars erstmal. Ich habe gegoogle, ich schwöre es! :exclaim: Aber bisher hab ich noch keine Erklörung gefunden, die mich weiterbringt.
Vielen Dank schon mal!
Lese gerade ein Buch (Grundlagen Java) in dem ein paar Sachen stehen, die ich nicht verstehe:
1. Klassenmethoden können nicht auf Instanzvariablen zugreifen und keine Instanzmethoden aufrufen.
Das mit den Instanzvariablen weiß ich noch nicht, aber ich kann doch in einer Klassenmethode sowohl innerhalb als auch außerhalb der Klasse auf eine Instanzmethode zugreifen?
Code:
Klassenname Objektname = new Objektname(); und dann Objektname.Instanzmethode();
Oder sehe ich da was falsch?
2. Wozu genau dient ein Kopierkonstruktor?
3. Generell sind ja Variablen innerhalb einer Methode lokale Variablen. Sehe ich es richtig, dass, wenn der Parameter mit Datentyp deklariert wurde (z. B. int x), dann muss ich die lokale Variable nicht noch mal mit Datentyp deklarieren? Also z. B.
Code:
public void test(int x) { lokalevariable = x; }
4. Call-by-value: Normalerweise bleibt der Wert der Variablen in der aufrufenden Methode ja unverändert. Aber bei Arrays ist das nicht so. Da wird der Wert verändert?
5.
Innerhalb eines Blocks kann auf die Variablen der umgebenden Blöcke bzw. der umgebenden Methode sowie auf die Attribute der umschließenden Klasse zugegriffen werden. Es ist nicht erlaubt, eine bereits deklarierte lokale Variable in einem tiefer geschachtelten Block erneut mit dem gleichen Namen zu deklarieren. Allerdings darf ihr Name mit einem Auributnamen übereinstimmen. Deklarationen lokaler Variablen können mit anderen Anweisungen gemischt werden.
Das verstehe ich überhaupt nicht. Was genau soll mir das sagen?
6. Was sind Initialisierer? Das ist ja was anderes als ein Konstruktor, oder? Und sehe ich das richtig, dass static initializer einfach nur dazu dienen, Konstanten einen Wert zuzuweisen, bei der Instanziierung eines Objekts?
So, das wars erstmal. Ich habe gegoogle, ich schwöre es! :exclaim: Aber bisher hab ich noch keine Erklörung gefunden, die mich weiterbringt.
Vielen Dank schon mal!