Java Program Examples
14. Define a class named MyDay that implements the day of the week in a program. The class MyDay should store the day, such as Sun for Sunday. The program should be able to perform the following operations on an object of the type MyDay:
a. Set the day. b. Print the day. c. Return the day. d. Return the next day. e. Return the previous day.
The class should also has the appropriate constructor. Write a program to test all the operations for class MyDay as described in a. to e. above.
MyDay class and object manipulation. |
import java.util.*;
//------------------------------------------------------------------ // MyDay class. Playing with day of week. I use MyDay instead of Day //------------------------------------------------------------------
publicclass MyDay { // instantiate standard input object static Scanner readinput = new Scanner(System.in);
// member variable, private by default String day; // constructor with "Sunday" value public MyDay(String day) { day = "Sunday"; } // set the day public void setDay(String theDay) { day = theDay; } // print or return the day public String getDay() { return day; } // print the day, looks unnecessary public void printDay() { System.out.println("When printing, your day is " + day); } // return the next day public String getNextDay() { // using direct comparison will fail as day == "Saturday"? // so use compareTo() method... if((day.compareTo("Saturday") == 0) || (day.compareTo("Sat") == 0)) return ("Sunday"); else if((day.compareTo("Sunday") == 0) || (day.compareTo("Sun") == 0)) return ("Monday"); else if((day.compareTo("Monday") == 0) || (day.compareTo("Mon") == 0)) return ("Tuesday"); else if((day.compareTo("Tuesday") == 0) || (day.compareTo("Tue") == 0)) return ("Wednesday"); else if((day.compareTo("Wednesday") == 0) || (day.compareTo("Wed") == 0)) return ("Thursday"); else if((day.compareTo("Thursday") == 0) || (day.compareTo("Thu") == 0)) return ("Friday"); else if((day.compareTo("Friday") == 0) || (day.compareTo("Fri") == 0)) return ("Saturday"); else return ("\"Opps Error lol!\""); } // return the previous day public String getPreDay() { if((day.compareTo("Friday") == 0) || (day.compareTo("Fri") == 0)) return ("Thursday"); else if((day.compareTo("Thursday") == 0) || (day.compareTo("Thu") == 0)) return ("Wednesday"); else if((day.compareTo("Wednesday") == 0) || (day.compareTo("Wed") == 0)) return ("Tuesday"); else if((day.compareTo("Tuesday") == 0) || (day.compareTo("Tue") == 0)) return ("Monday"); else if((day.compareTo("Monday") == 0) || (day.compareTo("Mon") == 0)) return ("Sunday"); else if((day.compareTo("Sunday") == 0) || (day.compareTo("Sun") == 0)) return ("Saturday"); else if((day.compareTo("Saturday") == 0) || (day.compareTo("Sat") == 0)) return ("Friday"); else return ("\"Opps Error lol!\""); }
// main execution point public static void main (String args[]) { // One of its weakness is the case sensitive: sun, Sunday, sunday, SuNdAy... // need more codes to avoid this case sensitiveness...
// instantiate testday object of type MyDay class // with "Sun" as initial value.... MyDay testday = new MyDay("Sun"); // prompt user to set his/her day System.out.print("Enter day to set your day: "); // read and store user's day String storeday = readinput.nextLine(); // invoke setDay() method to set a day defined by user testday.setDay(storeday); // invoke getDay() method to get a day System.out.println("Your day is " + testday.getDay()); // test printing by invoking printDay() method testday.printDay(); // invoke getPreDay() method to get the previous day System.out.println("Your previous day is " + testday.getPreDay()); // invoke getNextDay() method to get the next day System.out.println("Your next day is " + testday.getNextDay()); } } |
An output samples:
Enter day to set your day: Wednesday Your day is Wednesday When printing, your day is Wednesday Your previous day is Tuesday Your next day is Thursday
Enter day to set your day: Sat Your day is Sat When printing, your day is Sat Your previous day is Friday Your next day is Sunday
Enter day to set your day: sun Your day is sun When printing, your day is sun Your previous day is "Opps Error lol!" Your next day is "Opps Error lol!"
Enter day to set your day: Saturday Your day is Saturday When printing, your day is Saturday Your previous day is Friday Your next day is Sunday |