Best Practice Date in einem Konstruktor angeben

Kaibear

Aktives Mitglied
Moin moin werte Community,

derzeit werkel ich ein wenig an einem Programm zur Verwaltung von Kundendaten einer Bank und bin derzeit erstmal dran, alle nötigen Kundendaten diesbezüglich in das Programm zu bringen. Und beim Geburtstag hapert es derzeit.

Testweise wollte ich einen neuen Kunden (siehe Code) ausgeben, doch wie kann ich den korrekten Geburtstag im Konstruktor der Main-Klasse angeben? Mir erschließt sich derzeit keine Antwort.

Java:
package personaldata;

import java.util.*;
import java.text.*;

public class Person {
	
	private String name;
	private String vorname;
	//private Date dateOfBirth;
	private Date dateOfBirth = new Date();
	SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
		
	
public Person(String name, String vorname, Date dateOfBirth){
	this.name = name;
	this.vorname = vorname;
	this.dateOfBirth = dateOfBirth;
}
	
public String getPersonData(){
	return name + vorname + dateOfBirth;
}
public String getName(){
	return name;
}
public String getVorname(){
	return vorname;
}
public Date getBirthday(){
	return dateOfBirth;
}

}

Java:
package personaldata;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {

	public static void main(String[] args) {
		Person testperson = new Person("Opitz ","Kai ", new Date(28-11-1992));

	System.out.println(testperson.getPersonData());
		
	}

}

Ausgabe der Konsole ist hierbei:

Java:
Opitz Kai Thu Jan 01 00:59:58 CET 1970

Eine weitere Frage wäre, wie ich im nun folgenden Code eine korrekte Vererbung hinbekomme. Es sollen separat Kunden von Personen getrennt werden (man kann ja Personen als "potenzielle Kunden" bewerten und diese später zu Kunden transformieren). Deshalb hätte ich nun einen Konstruktor nur für das erstellen der Id und des zugehörigen Pins gemacht. Ist Vererbung hierbei der richtige Weg oder sollte ich einen gänzlich anderen einschlagen, damit Kund spezieller sind als Personen?

Java:
package personaldata;

import java.util.Date;

public class Client extends Person{

	private String id;
	private Integer pin;
	
	public Client(String name, String vorname, Date dateOfBirth) {
		super(name, vorname, dateOfBirth);
		// TODO Auto-generated constructor stub
	}
	/*public Client(String id, Integer pin){
		this.id = id;
		this.pin = pin;
	}*/

	
}
 
Zuletzt bearbeitet:

Attila

Bekanntes Mitglied
Java:
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.GERMAN);
try {
   Date d = df.parse("9.10.2013");
   Person testperson = new Person("Xxxx ","Yyyy ", d);
} catch(ParseException e) {}

Java:
public String getPersonData(){
    return name + " " + vorname + " " + df.format(dateOfBirth);
}
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Du solltest das SimpleDateFormat-Objekt auch schon nutzen in deiner getPersonData, dafür ist es ja da :)
Was das Date-Objekt angeht solltest du dir mal die API Doc durchlesen
Code:
new Date(1992-1900, 10, 28)
käme schon eher hin, wobei das eig. deprecated ist. Nutze besser den GregorianCalendar und beachte dass auch hier der Januar dne Index 0 hat
Java:
	    System.out.println(df.format(new GregorianCalendar(1992, 10, 28).getTime()));
 
Zuletzt bearbeitet:

Kaibear

Aktives Mitglied
Das hat super funktioniert, danke.

Nun habe ich die Anforderung: Eine Person kann später als Customer hinzugefügt werden. Dafür hätte ich die Idee einer "toCustomer"-Funktion, die in etwa so aussieht:

Java:
public Client toClient(String id, Integer pin){
		Client client = new Client(setId(id), setPin(pin));
		return client;
	}

Der Code ist fehlerhaft, da mein Client-Konstruktor (weil, wie oben beschrieben, der Client von Person erbt) auch die Parameter "name", "vorname" und "geburtstag" enthält. Ich hatte nun den Ansatz eine Person zu bilden, deren Daten über getPersonData() genommen werden und diese person-Parameter als Basis dienen, an denen id und pin hinzugefügt werden.
Wie wäre hierbei vorzugehen, dass ich einem bestehendem Client nur id und Pin zuweisen muss?
 
Zuletzt bearbeitet:

Kaibear

Aktives Mitglied
Und für Konto-Bewegungen: Wäre es ratsam dies in derselben Klasse zu gestalten oder in einer eigenen? Wobei sich hier die Frage stellt: Wie würde dann die Verknüpfung der Kontodaten (Kontoguthaben) mit dem Client aussehen? Dies klingt ja schon danach, als müsse ich die Kontodaten im Client einbinden.
 

Kaibear

Aktives Mitglied
Hab nun gefuchtelt und gefummelt und habs dann doch simpel hinbekommen. Manchmal hat man halt nen Brett vorm Kopp:

Java:
package personaldata;

import java.util.*;
import java.text.*;

import basic.TextConstants;


public class Person {
	
	protected String name;
	protected String vorname;
	//private Date dateOfBirth;
	protected GregorianCalendar dateOfBirth;
	protected DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
	
public Person(String name, String vorname, GregorianCalendar dateOfBirth){
	this.name = name;
	this.vorname = vorname;
	this.dateOfBirth = dateOfBirth;
}
public String getPersonData(){
	return name + TextConstants.SPACE + vorname + TextConstants.SPACE + df.format(dateOfBirth.getTime());
}
public String getName(){
	return name;
}
public String getVorname(){
	return vorname;
}
public GregorianCalendar getBirthday(){
	return dateOfBirth;
}

public Client toClient(String id, Integer pin){
	Client client = new Client(this.getName(),this.getVorname(), this.getBirthday(), id , pin);
	return client;
}

}

Schaut das für euch auch einigermaßen nutzbar aus oder ist das eher "schmutzig"? In der Client-Klasse kann ich ja nun die Setter löschen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Tage subtrahieren von einem Date() Java Basics - Anfänger-Themen 6
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
MiMa Date vs LocalDate/LocalDateTime Java Basics - Anfänger-Themen 13
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
sserio Date Library Frage Java Basics - Anfänger-Themen 9
P "Datestamp" to Date oder Timestamp Java Basics - Anfänger-Themen 15
B Date - Vergleich (equals / after) ? Java Basics - Anfänger-Themen 3
G convert Date to LocalDate Java Basics - Anfänger-Themen 11
G convert Optional<Date> into Optional<LocalDate> Java Basics - Anfänger-Themen 6
J Methoden toString()-Date Formatter Java Basics - Anfänger-Themen 8
L Java Date Format ändern Java Basics - Anfänger-Themen 5
B java.util.Date noch zeitgemäß? Java Basics - Anfänger-Themen 6
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
B Date - Umwandlung OffsetDateTime Java Basics - Anfänger-Themen 11
B Date Konvertierung Java Basics - Anfänger-Themen 0
B Date formatieren Java Basics - Anfänger-Themen 13
L Datentypen Date API - diese Woche bestimmen Java Basics - Anfänger-Themen 1
D Unterschied Date - Calendar Java Basics - Anfänger-Themen 1
Thallius Date für DatePicker formatieren aber wie? Java Basics - Anfänger-Themen 9
A Vererbungshierachie und java.util.Date Java Basics - Anfänger-Themen 31
agent47 Java 8 Locale Date Time Java Basics - Anfänger-Themen 2
S String zu Date Java Basics - Anfänger-Themen 6
L Java String to date? Java Basics - Anfänger-Themen 2
H Repräsentation von DateTime (Joda) in Java Util Date überführen Java Basics - Anfänger-Themen 3
I Date zu 01.01.<year> setzen Java Basics - Anfänger-Themen 1
H java date-time parser Java Basics - Anfänger-Themen 1
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
A String to Date parsing Java Basics - Anfänger-Themen 2
M TimeUnit ms nach date convertieren Java Basics - Anfänger-Themen 2
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
N Change date Format Java Basics - Anfänger-Themen 2
P Date oder Kalender? Was soll man verwenden? Java Basics - Anfänger-Themen 2
M Simple Date Format Java Basics - Anfänger-Themen 2
S Erste Schritte Berechnung mit Daten aus CSV und Date Objekt Java Basics - Anfänger-Themen 2
D Java Date/Calendar Problem Java Basics - Anfänger-Themen 4
Kenan89 Java Date List Java Basics - Anfänger-Themen 4
L Date differenz Java Basics - Anfänger-Themen 6
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
B Datentypen Date Java Basics - Anfänger-Themen 11
K konvertiere Millisekunden in ein Utc Date Objekt Java Basics - Anfänger-Themen 5
G Date - Calender | "Vergleich" Java Basics - Anfänger-Themen 3
M Mal wieder Probleme mit Date Java Basics - Anfänger-Themen 9
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6
Blindxantos Datentypen Probleme bei util.Date zu sql.Date Java Basics - Anfänger-Themen 5
I Date um 1 Jahr erhöhen? Java Basics - Anfänger-Themen 17
F GMT für Date Objekte festlegen Java Basics - Anfänger-Themen 5
F Sekunden abschneiden bei Date Java Basics - Anfänger-Themen 4
L int TimeZone für Date Java Basics - Anfänger-Themen 3
N alter mit Date ausrechnen Java Basics - Anfänger-Themen 10
turmaline String zu Date konvertieren -> Unparseable date Java Basics - Anfänger-Themen 5
T java.util.Date Java Basics - Anfänger-Themen 5
C Date() ->das Datum von gestern ausgeben Java Basics - Anfänger-Themen 11
M Datentypen Wie initialisiere ich ein Objekt vom Typ Date? Java Basics - Anfänger-Themen 3
H OOP java.sql.Date does not have a no-arg default constructor Java Basics - Anfänger-Themen 2
L Date subtrahieren? Java Basics - Anfänger-Themen 10
G Date von heute mit Uhrzeit erzeugen Java Basics - Anfänger-Themen 9
H Unterschied zwischen 2 Date in Sekunden am einfachsten? Java Basics - Anfänger-Themen 5
I Null - Wert bei Date (Mysql) Java Basics - Anfänger-Themen 2
H Date-Objekt um einen Monat "erhöhen" Java Basics - Anfänger-Themen 7
A The method getYear() from the type Date is deprecated Java Basics - Anfänger-Themen 6
P Datum: String in Date umwandeln Java Basics - Anfänger-Themen 7
T mit Typen Date rechnen Java Basics - Anfänger-Themen 6
F java.sql.Date Differenz Java Basics - Anfänger-Themen 3
P Date geht auf UNIX 1 Stunde nach Java Basics - Anfänger-Themen 14
M Date-Problem Java Basics - Anfänger-Themen 3
H Einfaches Date-parse problem Java Basics - Anfänger-Themen 2
Developer_X Date Java Basics - Anfänger-Themen 4
Antoras Daten aus Date lesen Java Basics - Anfänger-Themen 3
G String in Date konvertieren Java Basics - Anfänger-Themen 6
W 2 Date()-Daten vergleichen Java Basics - Anfänger-Themen 6
W String in Date Java Basics - Anfänger-Themen 4
G SpinnerDateModel stard & end nur Date? Java Basics - Anfänger-Themen 4
H Date-Object "um eins erhöhen! Java Basics - Anfänger-Themen 4
G Anfänger: Problem mit Date Java Basics - Anfänger-Themen 3
S NullPointerException bei Date.setTime() Java Basics - Anfänger-Themen 3
M 2 Date()-Datum´s vergleichen Java Basics - Anfänger-Themen 9
C Java 7 Date Java Basics - Anfänger-Themen 9
L Timer und Date Java Basics - Anfänger-Themen 2
G SQL Date zu JAVA Date Java Basics - Anfänger-Themen 4
G String in Date casten. Java Basics - Anfänger-Themen 7
G String in Date casten Java Basics - Anfänger-Themen 4
G java.text.parseException: Unparseable Date Java Basics - Anfänger-Themen 7
U java.util.Date to java.sql.Date Java Basics - Anfänger-Themen 2
B JSpinner/Date auslesen Java Basics - Anfänger-Themen 3
S Datum umwandeln: String in Date umwandeln Java Basics - Anfänger-Themen 4
F date und time berechnungen Java Basics - Anfänger-Themen 2
G Formatieren von Date-Objekten Java Basics - Anfänger-Themen 5
J Date-Objekt formatiert als String ausgeben Java Basics - Anfänger-Themen 2
G Date Objekt für aktuelles Datum erzeugen Java Basics - Anfänger-Themen 9
G Objekte vom Typ Date vergleichen Java Basics - Anfänger-Themen 2
P JAVA in Exe Date ausführen Java Basics - Anfänger-Themen 7
B string 2 sql.date() Java Basics - Anfänger-Themen 8
G date in sekunden umwandeln und wieder zurück. Java Basics - Anfänger-Themen 6
A einlesen von date und boolean Java Basics - Anfänger-Themen 3
G String in java.sql.Date umwandeln Java Basics - Anfänger-Themen 4
W Java.mysql.date in GregorianCalender konvertieren Java Basics - Anfänger-Themen 2
W Aus Textfeld ein "MySQL Date" auslesen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben