In: Computer Science
Design a class named Person with fields for holding a person's
name, address, and telephone number(all as Strings). Write
a constructor that initializes all of these values, and mutator and
accessor methods for every field.
Next, design a class named Customer, which inherits from the Person
class. The Customer class should have a String field for the
customer number and a boolean field indicating whether the customer
wishes to be on a mailing list. Write a constructor that
initializes these values and the appropriate mutator and accessor
methods for the class's fields.
Demonstrate the Customer class in a program that prompts the user
to enter values for the customer's name, address, phone number,
and customer number, and then asks the user whether or not the
customer wants to receive mail. Use this information to create a
customer object and then print its information.
Put all of your classes in the same file. To do this, do not
declare them public.
Instead, simply write:
class Person { ... }
class Customer { ... }
Sample Run
java Driver
Enter·name·of·customer:Julia·Stevens↵
Enter·address·of·customer:77·Massachusetts·Ave·Cambridge,·MA·02139↵
Enter·phone·number·of·customer:617-777-7777↵
Enter·customer·number:928734502↵
Enter·yes/no·--·does·the·customer·want·to·recieve·mail?:no↵
↵
Customer:·↵
Name:·Julia·Stevens↵
Address:·77·Massachusetts·Ave·Cambridge,·MA·02139↵
Phone·Number:·617-777-7777↵
Customer·Number:·928734502↵
Recieve·Mail?:·false↵
Here is the completed code for this problem. Comments are included, go through it, learn how things work and let me know if you have any doubts or if you need anything to change. If you are satisfied with the solution, please rate the answer. Thanks
//You can save the file as Driver.java
import java.util.Scanner;
class Person {
// attributes
String name;
String address;
String phoneNumber;
// constructor to initialize all fields
public Person(String name, String address, String phoneNumber) {
this.name = name;
this.address = address;
this.phoneNumber = phoneNumber;
}
// getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
// Customer class inheriting Person
class Customer extends Person {
// additional attributes
String custNumber;
boolean receiveMail;
// constructor taking all values
public Customer(String name, String address, String phoneNumber,
String custNumber, boolean receiveMail) {
// passing name, address, phone numbr to super class
super(name, address, phoneNumber);
this.custNumber = custNumber;
this.receiveMail = receiveMail;
}
// getters and setters
public String getCustNumber() {
return custNumber;
}
public void setCustNumber(String custNumber) {
this.custNumber = custNumber;
}
public boolean wantsToReceiveMail() {
return receiveMail;
}
public void setReceiveMail(boolean receiveMail) {
this.receiveMail = receiveMail;
}
}
// Driver class
class Driver {
public static void main(String[] args) {
// scanner for reading input and output
Scanner scanner = new Scanner(System.in);
// asking and receiving inputs
System.out.print("Enter name of customer:");
String name = scanner.nextLine();
System.out.print("Enter address of customer:");
String address = scanner.nextLine();
System.out.print("Enter phone number of customer:");
String phone = scanner.nextLine();
System.out.print("Enter customer number:");
String custNumber = scanner.nextLine();
System.out
.print("Enter yes/no -- does the customer want to recieve mail?:");
boolean receiveMail = scanner.nextLine().equalsIgnoreCase("yes");
// creating a Customer object
Customer customer = new Customer(name, address, phone, custNumber,
receiveMail);
// displaying customer details
System.out.println("Customer:");
System.out.println("Name: " + customer.getName());
System.out.println("Address: " + customer.getAddress());
System.out.println("Phone Number: " + customer.getPhoneNumber());
System.out.println("Customer Number: " + customer.getCustNumber());
System.out.println("Receive Mail?: " + customer.wantsToReceiveMail());
}
}
/*OUTPUT*/
Enter name of customer:Julia Stevens
Enter address of customer:77 Massachusetts Ave Cambridge, MA 02139
Enter phone number of customer:617-777-7777
Enter customer number:928734502
Enter yes/no -- does the customer want to recieve mail?:no
Customer:
Name: Julia Stevens
Address: 77 Massachusetts Ave Cambridge, MA 02139
Phone Number: 617-777-7777
Customer Number: 928734502
Receive Mail?: false