Naja, du sollst quasi erklären was der Compiler ausgeben würde oder wo es zu Problemen kommen könnte. lenght() ist ja eine Methode..was passiert wenn man Methoden auf null-Objekten aufruft, vllt so als kleiner Tip!
Variable definiert aber nicht initialisiert --> Standardwert ist null, keine Länge. (nicht aber wenn es eine Variable in einer Methode ist.)--> dann Felher.
Instanzvariablen und lokale Variablen--> da gibt es einen Unterschied... das hilft vllt weiter. Darüber solltest du was lesen.
Ich wage mich dann an *1* heran. Bitte um kurzes Feedback ob ich auf dem richtigen Dampfer bin.
*1*
Da keine Initialisierung vom Programmierer vorgenommen worden ist, werden die vom Compiler zur Verfügung gestellten Default-Initialisierungen implizit durchgeführt. In diesem Fall ist das 0.
Ich wage mich dann an *1* heran. Bitte um kurzes Feedback ob ich auf dem richtigen Dampfer bin.
*1*
Da keine Initialisierung vom Programmierer vorgenommen worden ist, werden die vom Compiler zur Verfügung gestellten Default-Initialisierungen implizit durchgeführt. In diesem Fall ist das 0.
Danke für die Hilfe soweit. Ich muss ehrlich zugeben, dass ich dieses Thema nicht besonders mag, aber da muss ich wohl durch.
Also im Buch "Java als erste Programmiersprache" heißt es auf Seite 317:
"In Java werden Klassenvariablen und Instanzvariablen, d.h. klassen- und objektbezogene Datenfelder, automatisch mit Default-Werten (Standard-Werten) initialisiert. Lokale Variablen werden nicht automatisch initialisiert. Sie müssen von Hand initialisiert werden (...)."
Habe ich das richtig verstanden, dass ich in dieser Aufgabe nur lokale Variablen habe...?
Alles klar. Dann beginne ich der Übersicht zuliebe bei "Adam und Eva" und bearbeite die Punkte *1* - *4*. Bitte um Feedback. Danke.
*1*
In Java werden Klassenvariablen und Instanzvariablen, d.h. klassen- und objektbezogene Datenfelder, automatisch mit Default-Werten (Standard-Werten) initialisiert. Lokale Variablen werden nicht automatisch initialisiert. Sie müssen von Hand initialisiert werden. Die lokale Variable text wurde hier nicht per Hand initialisiert, somit ist der Wert 0.
*2*
Die lokale Variable text referenziert hier null. null hat aber keine Variablen und keine Methoden, weshalb der Aufruf text.length() nicht möglich ist.
*3*
Die lokale Variable text wird hier mit einem leeren String initialisiert, was ein Objekt ist. Dieser String hat die Länge 0.
*4*
Die lokale Variable text wird hier mit einem String der Länge 3 initialisert und ist eine Referenz auf ein Objekt.
Ihr dürft bei der Kritik ruhig hart mit mir ins Gericht gehen.
0 schon garnicht, aber auch nicht null! Die Variable MUSS initialisiert werden sonst kann sie nicht verwendet werdne und es gibt einen Kompilierungsfehler
zu 2.:
Die lokale Variable text referenziert hier null. null hat aber keine Variablen und keine Methoden
Ähm
zu 1:
0 schon garnicht, aber auch nicht null! Die Variable MUSS initialisiert werden sonst kann sie nicht verwendet werdne und es gibt einen Kompilierungsfehler
Nö wieso? So wie es da steht, gibts ja keine Probleme. (deklarieren kann man ja immer wie man lustig ist)
Wenn du versuchst mit "text" irgendwas anzustellen (auch wenn es nur ein System.out ist) wird es ein Compilerfehler geben!
Du kannst "text" nicht verwenden solange sie nicht initialisiert ist!