// Liitetään tiedosto pakkaukseen. package nisakkaat; /* * Olio-ohjelmoinnin perusteet I. * * Yksinkertainen nisäkästä mallintava abstrakti yliluokka. * * Jorma Laurikkala (jorma.laurikkala@tuni.fi). * * Viimeksi muutettu 28.1.2020. * */ public abstract class Nisakas { /* * Kaikille nisäkkäille yhteiset tiedot ilmentymäattribuutteina. * */ // true = elää, false = edesmennyt. private boolean elossa; // Nisäkkään paino (> 0) kiloina. private double paino; /* * Rakentajat. * */ /* * Luodaan elävä nisäkäs, joka painaa 100 g. */ public Nisakas() { elossa = true; paino = 0.1; } /* * Parametrillinen rakentaja, jonka parametreilla määritellään nisäkkään * elämä (e) ja paino (kg). Paino asetetaan vain, jos se on sallittu. */ public Nisakas(boolean e, double kg) { elossa(e); paino(kg); } /* * Kaikille nisäkkäille yhteisiä toimintoja luokkametodeina. * */ /* * Palauttaa lajimuistiin tallentuneen tiedon siitä onko toinen olio uhkaava. * Oletetaan, että nisäkäs on oletusarvoisesti varovainen, jos toinen olio * on olemassa. */ public static boolean onkoUhka(Object toinen) { if (toinen != null) { return true; } else { return false; } } /* * Aksessorit. * */ public boolean elossa() { return elossa; } public void elossa(boolean e) { elossa = e; } public double paino() { return paino; } public void paino(double kg) { if (kg > 0) { paino = kg; } } /* * Kaikille nisäkkäille yhteisiä toimintoja ilmentymämetodeina. * */ /* * Syömistä, jota konkreettisen aliluokan on pakko tarkentaa toteuttamalla * tämä metodi. */ public abstract void syö(); /* * Oletetaan suurin osa nisäkkäistä "pieniksi". */ public boolean onkoIso() { return false; } }