/* Tehtävän 1 pisteytys pääpiirteissään: - luokan yleisrakenne 2 p - toteutettavat metodit 4+4+4p = 12p - pääohjelma 2 p ==================================== max 16 p. Vähennyksiä: - toteutettu perittyjä metodeja -3p tai enemmän - virheellinen konstruktori -3p - pyydetyt metodit käsittelevät this- tai toinen-joukkoa: max 8p / koko tehtävä */ public class KokonaislukujoukkoPlus extends Kokonaislukujoukko { /* Konstruktoria ei välttämättä tarvita, koska luokassa on parametriton oletuskonstruktori, joka kutsuu yliluokan parametritonta konstruktoria. Jos konstruktorin haluaa kirjoittaa, sen tulee olla joko public KokonaislukujoukkoPlus() {} tai public KokonaislukujoukkoPlus() { super(); } */ /* Huom! null-viitteet parametrina on käsitelty tässä siten, että parametri on tällöin korvattu tyhjällä joukolla */ public KokonaislukujoukkoPlus yhdiste(KokonaislukujoukkoPlus toinen) { if (toinen == null) toinen = new KokonaislukujoukkoPlus(); KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); for (int alkio: super) uusi.lisää(alkio); for (int alkio: toinen) uusi.lisää(alkio); return uusi; } public KokonaislukujoukkoPlus leikkaus(KokonaislukujoukkoPlus toinen) { if (toinen == null) toinen = new KokonaislukujoukkoPlus(); KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); for (int alkio: toinen) if (this.kuuluu(alkio)) uusi.lisää(alkio); return uusi; } public KokonaislukujoukkoPlus erotus(KokonaislukujoukkoPlus toinen) { if (toinen == null) toinen = new KokonaislukujoukkoPlus(); KokonaislukujoukkoPlus uusi = new KokonaislukujoukkoPlus(); for (int alkio: super) if (!toinen.kuuluu(alkio)) uusi.lisää(alkio); return uusi; } public static void main(String[] args) { KokonaislukujoukkoPlus parilliset = new KokonaislukujoukkoPlus(); KokonaislukujoukkoPlus parittomat = new KokonaislukujoukkoPlus(); for (int i = 2; i <= 20; i = i+2) parilliset.lisää(i); for (int i = 1; i <= 20; i = i+2) parittomat.lisää(i); for (int i = 0; i <= 20; i++) { if (parilliset.kuuluu(i)) System.out.println(i + " kuuluu joukkoon parilliset"); if (parittomat.kuuluu(i)) System.out.println(i + " kuuluu joukkoon parittomat"); } parilliset.poista(20); parilliset.poista(19); parittomat.poista(20); parittomat.poista(19); KokonaislukujoukkoPlus yhdiste = parilliset.yhdiste(parittomat); KokonaislukujoukkoPlus leikkaus = parilliset.leikkaus(yhdiste); KokonaislukujoukkoPlus erotus = yhdiste.erotus(parilliset); } }