Servus miteinander!
Ich versuche mich kurz zu fassen. Zur Zeit bearbeite ich eine kleine Hausarbeit, bei welcher ich eine Art kleine Kartei (Freundesliste) programmieren soll. Eines der Attribute, welche der Freund aufweisen soll, ist natürlich sein Geburtstag. Es folgt ein kleiner Auscchnitt aus der Freund-Klasse:
Wenn ich nun in meiner Testklasse ein Objekt der Freund-Klasse erzeuge, läuft alles tadellos, zum Beispiel:
Die Ausgabe auf der Konsole wäre hierbei:
Name: Herbert Hadlich
Geburtsdatum: 7.5.1980
Adresse: Marienplatz 23, 97667 MUC
Kontakt: Telefonnummer - , Handynummer - , eMail:
Gebe ich zwei speziellle Werte für die Datumsangabe im Konstruktor an, steigt der Compiler aus. Wenn ich "08" oder "09" anstatt "07" als Tag mitgebe, erhalte ich "Exception in thread "main" java.lang.Error: Unresolved compilation problem: The literal 08 of type int is out of range"
Mir ist schon bewusst, dass man Integer-Zahlen nicht mit führender Null schreiben sollte - Ich frage mich gerade nur, wieso die Exception ausschließlich bei diesen beiden Zahlen auftritt.
Kann mir bitte jemand helfen?
MfG
Ich versuche mich kurz zu fassen. Zur Zeit bearbeite ich eine kleine Hausarbeit, bei welcher ich eine Art kleine Kartei (Freundesliste) programmieren soll. Eines der Attribute, welche der Freund aufweisen soll, ist natürlich sein Geburtstag. Es folgt ein kleiner Auscchnitt aus der Freund-Klasse:
Java:
import java.time.LocalDate;
public class Freund {
private String vorName;
private String nachName;
private LocalDate geburtsDatum;
private String telefonNr;
private String handyNr;
private String eMail;
private Adresse adresse;
public Freund(String vorname, String nachname, int tag, int monat, int jahr, String strasse, String plz, String ort, String telefonnummer, String handynummer, String email)
{
this.vorName = vorname;
this.nachName = nachname;
LocalDate gDatum = LocalDate.of(jahr, monat, tag);
this.geburtsDatum = gDatum;
this.adresse = new Adresse(strasse,plz,ort);
this.telefonNr = telefonnummer;
this.handyNr = handynummer;
this.eMail = email;
}
public Freund(String vorname, String nachname, int tag, int monat, int jahr, String strasse, String plz, String ort)
{
this(vorname, nachname, tag, monat, jahr, strasse, plz, ort, "","","");
}
public Freund(String vorname, String nachname, int tag, int monat, int jahr)
{
this(vorname, nachname, tag, monat, jahr, "","","","","","");
}
public Freund(String vorname, String nachname)
{
this(vorname, nachname, 1,1,1950,"","","","","","");
}
Wenn ich nun in meiner Testklasse ein Objekt der Freund-Klasse erzeuge, läuft alles tadellos, zum Beispiel:
Java:
public class FreundTest {
public static void main(String[] args)
{
Freund f2 = new Freund("Herbert", "Hadlich", 07,05,1980, "Marienplatz 23", "97667", "MUC");
f2.datenAusgeben();
}
Die Ausgabe auf der Konsole wäre hierbei:
Name: Herbert Hadlich
Geburtsdatum: 7.5.1980
Adresse: Marienplatz 23, 97667 MUC
Kontakt: Telefonnummer - , Handynummer - , eMail:
Gebe ich zwei speziellle Werte für die Datumsangabe im Konstruktor an, steigt der Compiler aus. Wenn ich "08" oder "09" anstatt "07" als Tag mitgebe, erhalte ich "Exception in thread "main" java.lang.Error: Unresolved compilation problem: The literal 08 of type int is out of range"
Mir ist schon bewusst, dass man Integer-Zahlen nicht mit führender Null schreiben sollte - Ich frage mich gerade nur, wieso die Exception ausschließlich bei diesen beiden Zahlen auftritt.
Kann mir bitte jemand helfen?
MfG