/* * Olio-ohjelmoinnin perusteet I. * * Viikonpäiviä testaava luokka. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 4.2.2020. * */ // Otetaan käyttöön Scanner-luokka. import java.util.Scanner; public class ViikonpaivaTesti { /* * Tulostetaan mielipide viikonpäivästä. */ public static void kerroViikonpäivästä(Viikonpaiva viikonpäivä) { // Kerrotaan päivästä. Vertailuoperaattori (==) toimisi tässä samoin // kuin equals-metodi, koska luetellun tyypin vakioilla on aina vain // yksi ilmentymä. if (viikonpäivä.equals(Viikonpaiva.LA) || viikonpäivä.equals(Viikonpaiva.SU)) { System.out.println("Yes way! Viikonloppu."); } else { System.out.println("No way! Töitä."); } } public static void main(String[] args) { // Valintoja erottava merkkijono. final String EROTIN = ", "; // Kerrotaan mitä tapahtuu. System.out.println("Moi! Kerron viikonpäivästä."); // Muodostetaan luetellun tyypin arvoista taulukko. Viikonpaiva[] viikonpäivät = Viikonpaiva.values(); // Tulostetaan käyttäjälle ohje. System.out.println("Anna jokin arvoista:"); for (Viikonpaiva viikonpäivä : viikonpäivät) { System.out.println(viikonpäivä + " = " + viikonpäivä.nimi()); } try { // Luetaan käyttäjän valinta. Scanner lukija = new Scanner(System.in); String syöte = lukija.nextLine(); // Yritetään muuntaa syöte luetellun tyypin arvoksi. Viikonpaiva viikonpäivä = Viikonpaiva.valueOf(syöte); // Lausutaan mielipide. kerroViikonpäivästä(viikonpäivä); } catch (IllegalArgumentException e) { // Tänne tullaan, jos valueOf-metodi heittää poikkeuksen. System.out.println("Virheellinen valinta!"); } } }