/* Tehtävä 1 - Lasse Tyrväinen Arvosteluperusteita: Periytyminen ja yläluokan käyttö 6p: -Yläluokan tai sen osien toteutus uudestaan -1-2p -Tästä verotetaan myös, jos yläluokka on toteutettu uudestaan aliluokan ulkopuolella. Toteutus piti tehdä annetun APIn perusteella. -Yäluokan ilmentymän tai sen osien pitäminen jäsenmuuttujina -2p -Erilaiset puutteet perinnän ymmärtämisessä -1-6p -Esimerkiksi virheelliset metodikutsut, huono perittyjen metodien käyttö Konstruktorit 1p Yhdiste/leikkaus/erotus 4p -Lievä logiikkavirhe tai muu pieni ongelma -0-1p -Suurempi ongelma -1-2p -Muokkaa this-oliota eikä palauta kopiota -1p (tästä verotetaan vain kerran) -Koon puuttumisesta uuden KljPlus luomisessa ei vähennetä pisteitä Pääohjelma 1p */ class KokonaislukujoukkoPlus extends Kokonaislukujoukko { public KokonaislukujoukkoPlus() { super(100); } public KokonaislukujoukkoPlus(int kapasiteetti) { super(kapasiteetti); } public KokonaislukujoukkoPlus yhdiste(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus temp = new KokonaislukujoukkoPlus(this.koko() + b.koko()); for (int alkio : this.toIntArray()) { temp.lisaa(alkio); } for (int alkio : b.toIntArray()) { temp.lisaa(alkio); } return temp; } public KokonaislukujoukkoPlus leikkaus(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus temp = new KokonaislukujoukkoPlus(this.koko()); for (int alkio : this.toIntArray()) { if (b.kuuluu(alkio)) { temp.lisaa(alkio); } } return temp; } public KokonaislukujoukkoPlus erotus(KokonaislukujoukkoPlus b) { KokonaislukujoukkoPlus temp = new KokonaislukujoukkoPlus(this.koko()); for (int alkio : this.toIntArray()) { if (!b.kuuluu(alkio)) { temp.lisaa(alkio); } } return temp; } public static void main(String[] args) { KokonaislukujoukkoPlus parilliset = new KokonaislukujoukkoPlus(4); KokonaislukujoukkoPlus parittomat = new KokonaislukujoukkoPlus(4); for (int i = 1; i <= 8; i++) { if (i % 2 == 0) { parilliset.lisaa(i); } else { parittomat.lisaa(i); } } System.out.println(parilliset); // {2,4,6,8} System.out.println(parittomat); // {1,3,5,7} KokonaislukujoukkoPlus kaikki = parilliset.yhdiste(parittomat); System.out.println(kaikki); // {1,2,..,8} System.out.println(kaikki.erotus(parilliset)); // == parittomat System.out.println(kaikki.erotus(parittomat)); // == parilliset System.out.print("Parillisten ja parittomien yhteiset alkiot: "); System.out.println(parilliset.leikkaus(parittomat)); // {} System.out.println("Onko 8 on parillisissa:" + parilliset.kuuluu(8)); parilliset.poista(8); System.out.println("Poistettiin 8, onko vielä 8 parillisissa:" + parilliset.kuuluu(8)); } }