Objektreferenz, null

Wang

Bekanntes Mitglied
Hallo Java-Kollegen,

trotz Recherche in der Literatur komme ich bei folgender Aufgabe nicht weiter.
Es ist folgender Quellcode gegeben:

Java:
public class Text {
     public static void main(String[] args) {
          String text;
          // *1*

          text = null;
          // *2*

          text = "";
          // *3*

          text = "ABC";
          // *4*
     }
}

Man soll kurz erklären, welchen Wert der Ausdruck
Code:
text.length()
an den Stellen *1* bis *4* jeweils hat. Außerdem soll beschrieben werden, warum ausgerechnet dieser Wert zustande kommt.


Kann mir bitte jemand einen kleinen Gedankenanstoß geben, sodass ich verstehe, was eigentlich verlangt ist?

Vielen Dank für Eure Hilfe.

Gruß

Wang
 

eRaaaa

Top Contributor
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!
 

nickname

Bekanntes Mitglied
Hi,

nicht leer und != null da initialisiert. Länge = 3.

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.


gruß nickname
 

Wang

Bekanntes Mitglied
Danke soweit.

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.
 

Wang

Bekanntes Mitglied
Danke für die Hilfe soweit. Ich muss ehrlich zugeben, dass ich dieses Thema nicht besonders mag, aber da muss ich wohl durch. :D

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...?
 

Wang

Bekanntes Mitglied
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. ;)
 

eRaaaa

Top Contributor
Ähm
zu 1:
Die lokale Variable text wurde hier nicht per Hand initialisiert, somit ist der Wert 0
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
Erster Satz korrekt, zweiter nicht: Der Typ ist immernoch String!
weshalb der Aufruf text.length() nicht möglich ist.
Stimmt nicht. Der Aufruf ist möglich, es fliegt aber eine NullpointerException um die Ohren!
 
Zuletzt bearbeitet:

Wang

Bekanntes Mitglied
Ä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

Genügt es als Begründung zu sagen, dass die lokale Variable hier manuell initialisiert werden muss...?

Hoffe, dass *3* und *4* dann soweit in Ordnung sind...

EDIT:
Ich habe die Datei Text.java kompiliert, aber es kamen keine Fehler... Hätten da keine Fehler kommen müssen?
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
EDIT:
Ich habe die Datei Text.java kompiliert, aber es kamen keine Fehler... Hätten da keine Fehler kommen müssen?

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!

(bezogen auf *1*)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Objektreferenz und null Java Basics - Anfänger-Themen 5
Say Objektreferenz Java Basics - Anfänger-Themen 18
J Übergeben einer Objektreferenz Java Basics - Anfänger-Themen 6
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
P Objektreferenz Java Basics - Anfänger-Themen 2
L Methoden Probleme mit einer Objektreferenz Java Basics - Anfänger-Themen 1
B Objektreferenz Java Basics - Anfänger-Themen 4
V Auf Objektreferenz über Attribut zugreifen Java Basics - Anfänger-Themen 10
K Polymorphie Objektreferenz als Superklasse anstatt des Objekttypes Java Basics - Anfänger-Themen 12
C Objektreferenz holen statt übergeben Java Basics - Anfänger-Themen 2
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
P Buffer und null Java Basics - Anfänger-Themen 3
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
N null in String replacen Java Basics - Anfänger-Themen 16
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
K Bufread.readLine())!= null wie beenden? Java Basics - Anfänger-Themen 4
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J null exception Array Java Basics - Anfänger-Themen 5
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
J Int wird als Null ausgegeben Java Basics - Anfänger-Themen 8
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
O JavaArray Null Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
D Best Practice Konvention - Klassenmembers auf null setzen? Java Basics - Anfänger-Themen 2
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
Orkanson Null Pointer Expception Java Basics - Anfänger-Themen 3
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
I Polymorphie Null Objekt Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
C Null Pointer Exception Java Basics - Anfänger-Themen 10
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
G Null Pointer Exception Java Basics - Anfänger-Themen 4
R Gleitkommazahlen ohne führende Null Java Basics - Anfänger-Themen 10
M array = null Java Basics - Anfänger-Themen 2
F String equals NULL Problem Java Basics - Anfänger-Themen 4
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
R Property Value als null setzen Java Basics - Anfänger-Themen 1
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
J Fehlerhafte Ausgabe "null" Java Basics - Anfänger-Themen 2
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D OOP Warum bekomme ich eine Null-Pointer Exception!!? :( Java Basics - Anfänger-Themen 4
D Null Ausgabe obwohl wert zugewiesen Java Basics - Anfänger-Themen 5
J Alias null Java Basics - Anfänger-Themen 4
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
A null-Überprüfung Java Basics - Anfänger-Themen 24
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
A Null Pointer Exception in Liste Java Basics - Anfänger-Themen 11
T Null Java Basics - Anfänger-Themen 3
X Array trotz Befüllung "null" Java Basics - Anfänger-Themen 11
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
J Verschränkte Rekursion und null Ahnung... Java Basics - Anfänger-Themen 0
X Vererbung Setzen auf Null bei Subklassen Java Basics - Anfänger-Themen 2
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
C MIME-Type null Java Basics - Anfänger-Themen 4
T Null Pointer Exception Java Basics - Anfänger-Themen 4
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
G Null Pointer Exeption Java Basics - Anfänger-Themen 8
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
N 'null' aus String löschen Java Basics - Anfänger-Themen 7
F Irgendein "Null" Fehler.... Java Basics - Anfänger-Themen 5
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben