Bonjour,
Je reviens vers vous car certains concepts de POO ne sont vraiment clairs pour moi, et j'ai besoin de certaines précisions.
J'ai une classe Person possédant 3 attributs :
name : type String
firstName : type String
birthDate : type LocalDate
avec les getters/setters associés.
avec un constructeur possédant en paramètre les attributs name et firstName puisque birthDate doit être intéractif (saisie par l'utilisateur)
Le setter setBirthDate(LocalDate birthDate) doit posséder le code permettant d'initialiser la date de naissance de façon intéractif puis getBirthDate() de récupérer
cette dernière une fois l'objet Person instancié.
Mais j'obtiens null pour birthDate lorsque je fais un toString() sur l'objet Person instancié.
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public class Person { private String name; private String firstName; private LocalDate birthDate; public Person(String name, String firstName) { this.name = name; this.firstName = firstName; } public void setName(String name) { this.name = name; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getName() { return name; } public String getFirstName() { return firstName; } public void setBirthDate(LocalDate birthDate) { this.birthDate = birthDate; } public LocalDate getBirthDate() { System.out.print("Please enter your birthDate (dd MMMM yyyy) : "); String entry = TextIO.getlnString(); try { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.FRANCE); LocalDate birthDate = LocalDate.parse(entry.toLowerCase(), formatter); String s = String.format("%1$te %1$tb %1$tY",birthDate); //System.out.println("Thanks. Your birthDate format is correct."); //System.out.printf("%s%n", s); return birthDate; } catch (DateTimeParseException exc) { System.out.printf("%s is not parsable!%n", entry); throw exc; } } @Override public String toString() { return "Person " + "\n name : " + name + "\n firstName : " + firstName + "\n birthDate : " + birthDate; } }
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public class Main { public static void main(String[] args) { Person p1 = new Person("SMITH", "John"); p1.getName(); p1.getFirstName(); System.out.print("Please enter your birthDate (dd MMMM yyyy) : "); String entry = TextIO.getlnString(); //p1.setBirthDate(); p1.getBirthDate(); //System.out.println(p1.getName()); //System.out.println(p1.getFirstName()); System.out.println(p1.toString()); } }
Merci d'avance.
Transact.
Partager