// Otetaan käyttöön nisäkkäät. import nisakkaat.*; /* * Olio-ohjelmoinnin perusteet I. * * Testaaan Kissa-luokassa korvattuja Object-luokan metodeja sekä yliluokan * Comparable-toteutusta. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 5.2.2020. * */ public class KissaTesti { public static void main(String[] args) { // Luodaan kissoja. Möykyn ja Mörön tila on sama. Kissa möykky = new Kissa(true, 2, "musta", "kippura"); Kissa mörkö = new Kissa(true, 2, "musta", "kippura"); // Kokeillaan korvattua toString-metodia, jota println-metodi kutsuu // automaattisesti. System.out.println("Möykky: " + möykky); // Möykky: Kissa: true, 2.0, musta, kippura System.out.println("Mörkö: " + mörkö); // Mörkö: Kissa: true, 2.0, musta, kippura // Vertaillaan kissoja operaattoreilla, jolloin tutkitaan liittyvätkö // viitteet samoihin olioihin vai ei. System.out.println("Viitteet samassa oliossa? " + ((möykky == mörkö))); // false System.out.println("Viitteet eri oliossa? " + ((möykky != mörkö))); // true // Vertaillaan kissoja equals-metodilla, jolloin tutkitaan ovatko // olioiden tiedot samat. System.out.println("Olioilla samat tiedot? " + möykky.equals(mörkö)); // true System.out.println("Olioilla eri tiedot? " + !möykky.equals(mörkö)); // false // Tarkistetaan, että paluuarvo on false, kun vertailtava olion puuttuu // (null-arvo) tai vertailtava olio on väärää tyyppiä (String) . System.out.println("Möykky ja null samat? " + möykky.equals(null)); // false System.out.println("Möykky ja \"Puppe\" samat? " + möykky.equals("Puppe")); // false // Tarkastellaan olioiden hajautuskoodeja. System.out.println("Möykyn koodi: " + möykky.hashCode()); // -645089104 System.out.println("Mörkön koodi: " + mörkö.hashCode()); // -645089104 // Vertaillaan kissoja compareTo-metodilla, jolloin tutkitaan olioiden // suuruusjärjestystä. System.out.println("Möykky vs. Mörkö: " + möykky.compareTo(mörkö)); // 0 möykky.paino(möykky.paino() + 0.2); // Ruokitaan Möykkyä. System.out.println("Möykky: " + möykky); // Möykky: Kissa: true, 2.2, musta, kippura System.out.println("Mörkö: " + mörkö); // Mörkö: Kissa: true, 2.0, musta, kippura System.out.println("Möykky vs. Mörkö: " + möykky.compareTo(mörkö)); // 1 // Tarkastellaan olioiden hajautuskoodeja. System.out.println("Möykyn koodi: " + möykky.hashCode()); // 1831126003 System.out.println("Mörkön koodi: " + mörkö.hashCode()); // -645089104 } }