// A program that deals with PhoneEntry objects
// 5th version, to accompany encapsulated PhoneEntry class with toString()

public class PhoneEntryMain {
    public static void main(String[] args) {
        // create two PhoneEntry objects
        PhoneEntry pe1 = new PhoneEntry("Joe", "617-337-5555");
        PhoneEntry pe2 = new PhoneEntry("Sue","718-333-5555");

        // print each entry and its area code:
        // no longer can do this--
        // System.out.println("pe1 is " + pe1.name + ": " + pe1.phoneNo);
        
        System.out.println("area code = " +
                           pe1.areaCode());
        // Here using getters--
        System.out.println("pe1 is " + pe1.getName() + ": " + pe1.getPhoneNo());
        System.out.println("pe2 is " + pe2.getName() + ": " + pe2.getPhoneNo());
        System.out.println("area code = " + pe2.areaCode());

   
        // change area codes
        pe1.changeAreaCode("413");
        pe2.changeAreaCode("477");
        
        // check validity
        System.out.println("Checking validity of pe1: isValid() returns " + pe1.isValid());

        // print the entries again
        System.out.println("pe2 is " + pe1.getName() + ": " + pe1.getPhoneNo());
        System.out.println("pe2 is " + pe2.getName() + ": " + pe2.getPhoneNo());
        System.out.println("pe1 is " + pe1);  // finally works: prints hex number (address)
    }
}