Respuesta :
Answer:
Check the explanation
Explanation:
I have added comments in the code for your easy reference.
//Code for this solution
//File: Person.java
import java.time.LocalDate;
//Person class
public class Person {
//Member variables
private String firstName;
private String lastName;
private LocalDate birthDate;
//Paramterized constructors that initializes all the member variables
public Person(String fName, String lName, LocalDate bDate) {
firstName = fName;
lastName = lName;
birthDate = bDate;
}
//Getter methods for each of the member variables
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public LocalDate getBirthDate() {
return birthDate;
}
}
//File: Couple.java
//Couple class
public class Couple {
//Member variables
private Person person1;
private Person person2;
//Paramterized constructors that initializes all the member variables
public Couple(Person p1, Person p2) {
person1 = p1;
person2 = p2;
}
//Getter methods for each of the member variables
public Person getFirstPerson() {
return person1;
}
public Person getSecondPerson() {
return person2;
}
}
//File: Wedding.java
import java.util.Date;
//Wedding class
public class Wedding {
//Member variables
private Date weddingDate;
private Couple couple;
private String location;
//Paramterized constructors that initializes all the member variables
public Wedding(Date date, Couple c, String wedLocation) {
weddingDate = date;
couple = c;
location = wedLocation;
}
//Getter methods for each of the member variables
public Date getWeddingDate() {
return weddingDate;
}
public Couple getCouple() {
return couple;
}
public String getLocation() {
return location;
}
}
//File: TestWedding.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
//Test driver class
public class TestWedding {
private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//Method to display Wedding details - Couple, Location and Wedding date
public static void displayWedding(Wedding w) {
System.out.println("");
System.out.println("=== Wedding details ===");
Person p1 = w.getCouple().getFirstPerson();
Person p2 = w.getCouple().getSecondPerson();
System.out.println(p1.getFirstName() + " " + p2.getLastName() + "(born " + p1.getBirthDate().format(DateTimeFormatter.ISO_DATE) + ")"
+ " weds " + p2.getFirstName() + " " + p2.getLastName() + "(born " + p2.getBirthDate().format(DateTimeFormatter.ISO_DATE) + ")");
System.out.println("ON");
System.out.println( simpleDateFormat.format( w.getWeddingDate()));
System.out.println("AT");
System.out.println(w.getLocation());
}
//Test method - to create Person, Couple and Wedding objects
public static void main(String[] args) throws ParseException {
//Create Person objects
Person p10 = new Person("John", "Howard", LocalDate.of(2000, 10, 1));
Person p11 = new Person("Mary", "Eliza", LocalDate.of(2002, 1, 2));
//Create Couple object with above data
Couple c1 = new Couple(p10, p11);
//Create Wedding Object
Wedding w1 = new Wedding( simpleDateFormat.parse("2019-05-06"), c1, "CountrySide");
//Display Wedding details
displayWedding(w1);
Person p20 = new Person("James", "Howler", LocalDate.of(1999, 5, 1));
Person p21 = new Person("Jenny", "Hertz", LocalDate.of(2005, 4, 25));
Couple c2 = new Couple(p20, p21);
Wedding w2 = new Wedding(simpleDateFormat.parse("2019-10-02"), c2, "Mary Islands");
displayWedding(w2);
}
}
Kindly check the attached image below for the code output.


Answer:
See explaination
Explanation:
// Person.java
import java.time.LocalDate;
public class Person {
//attributes
private String firstName;
private String lastName;
private LocalDate birthDate;
//constructor initializing all fields
public Person(String firstName, String lastName, LocalDate birthDate) {
this.firstName = firstName;
this.lastName = lastName;
this.birthDate = birthDate;
}
//getter methods
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public LocalDate getBirthDate() {
return birthDate;
}
//returns a String containing first and last names
public String toString() {
return firstName + " " + lastName;
}
}
// Couple.java
public class Couple {
//Persons getting married
private Person person1;
private Person person2;
//constructor
public Couple(Person person1, Person person2) {
this.person1 = person1;
this.person2 = person2;
}
//getters
public Person getPerson1() {
return person1;
}
public Person getPerson2() {
return person2;
}
}
// Wedding.java
import java.time.LocalDate;
public class Wedding {
//date of wedding
private LocalDate weddingDate;
//Couple getting married
private Couple couple;
//constructor
public Wedding(LocalDate weddingDate, Couple couple) {
this.weddingDate = weddingDate;
this.couple = couple;
}
//getters
public LocalDate getWeddingDate() {
return weddingDate;
}
public Couple getCouple() {
return couple;
}
atOverride
public String toString() {
return couple.getPerson1()+" weds "+couple.getPerson2();
}
}
// TestWedding.java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class TestWedding {
//method to display details about a wedding
public static void display(Wedding wedding) {
System.out.println("***Wedding***");
System.out.println("Person 1: " + wedding.getCouple().getPerson1());
System.out.println("Person 2: " + wedding.getCouple().getPerson2());
System.out.println("Date: " + wedding.getWeddingDate().format(DateTimeFormatter.ofPattern("dd/MMM/yyyy")));
}
public static void main(String[] args) {
//a DateTimeFormatter object for parsing date from String
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
//creating Couple 1
Couple c1 = new Couple(new Person("Oliver", "Queen", LocalDate.parse("11/01/1994",formatter)),
new Person("Felicity", "Smoak", LocalDate.parse("10/07/1996",formatter)));
//creating a Wedding
Wedding wedding1=new Wedding(LocalDate.parse("01/09/2019",formatter), c1);
//creating another couple and wedding
Couple c2 = new Couple(new Person("John", "Diggle", LocalDate.parse("01/08/1989",formatter)),
new Person("Lyla", "Michaels", LocalDate.parse("03/07/1990",formatter)));
Wedding wedding2=new Wedding(LocalDate.parse("08/09/2019",formatter), c2);
//displaying both
display(wedding1);
display(wedding2);
}
}