P19Abstrakcyjna.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
//P19Abstrakcyjna.java package p19abstrakcyjna; import java.util.*; abstract class RodzinaKotowatych { static int i = 0; String s; RodzinaKotowatych() { i++; s = "Ali"; } RodzinaKotowatych(String x) { i++; s = x; } public abstract String upoluj(String x); public abstract void zjedz(); } class KotyDomowe extends RodzinaKotowatych { private String kolor; private String imie; private String ofiara; KotyDomowe(String x, String y) { kolor = x; imie = y; ofiara = "miska"; } KotyDomowe(String x, String y, String z) { super("Uli"); kolor = x; imie = y; ofiara = z; } public String upoluj(String x) { System.out.println(this + " upolowane: " + x); return ofiara; } public void zjedz() { this.upoluj(ofiara); // też dobrze: upoluj(ofiara); System.out.println(this + " zjedzone: " + ofiara); } public String toString() { return i + " " + s + " Kot domowy " + imie + " " + kolor; } } class KotyDuze extends RodzinaKotowatych { String gatunek, ofiara = "antylopa"; KotyDuze(String a) { super("Eli"); gatunek = a; } KotyDuze(String a, String b) { this(a); ofiara = b; } public String upoluj(String x) { ofiara = x; System.out.println(this + " upolowane: " + x); return x; } public void wybierzOfiare(String x) { ofiara = x; } public void zjedz() { this.upoluj(ofiara); System.out.println(this + " zjedzone: " + ofiara); } public String toString() { return i + " " + s + " Kot duzy " + gatunek; } } public class P19Abstrakcyjna { public static void main(String[] args) { KotyDomowe fruzia = new KotyDomowe("czarny", "Fruzia"); System.out.println(fruzia); fruzia.zjedz(); KotyDuze tygrys = new KotyDuze("Tygrys"); System.out.println(tygrys); tygrys.zjedz(); KotyDomowe kufa=new KotyDomowe("pregowany","Kufa","mysz"); System.out.println(kufa); kufa.zjedz(); KotyDuze lew = new KotyDuze("Lew", "zebra"); System.out.println(lew); lew.zjedz(); KotyDuze gepard = new KotyDuze("Gepard"); System.out.println(gepard); gepard.zjedz(); gepard.wybierzOfiare("gazela"); gepard.zjedz(); KotyDomowe tusia = new KotyDomowe("treecolor", "Tusia"); System.out.println(tusia); tusia.zjedz(); System.out.println(fruzia); } } |
---|
P20Sprzatanie.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
// P20Sprzatanie.java package p20sprzatanie; class KotySrednie { private String gatunek; static boolean zbytduzo = false; static boolean koniec = false; static int urodzonych = 0; static int zaginionych = 0; int numer; static int l = 10000; KotySrednie(String x) { gatunek = x; numer = ++urodzonych; if (urodzonych == 200) System.out.println("Urodzony " + gatunek); } public String toString() { return "Kot sredni " + gatunek; } public void finalize() { if (!zbytduzo) { zbytduzo = true; System.out.println("Zaczynaja ginac po " + urodzonych + " urodzonych kotach"); } if (numer == l) { System.out.println("Zaginal kot " + l + " => Koniec narodzin"); koniec = true; } ++zaginionych; if (zaginionych >= urodzonych) { System.out.println("Katastrofa " + zaginionych + " " + urodzonych + " " + gatunek); } } } public class P20Sprzatanie { public static void main(String[] args) { int k = 1; while (!KotySrednie.koniec) { KotySrednie ff = new KotySrednie("zbik-" + k); k++; } System.out.println(" Urodzonych: " + KotySrednie.urodzonych + " " + "Zaginionych: " + KotySrednie.zaginionych); if (args.length > 0) { if (args[0].equals("gc")) { System.gc(); System.out.println(" (gc) Urodzonych: " + KotySrednie.urodzonych + " " + " Zaginionych: " + KotySrednie.zaginionych); } } } } |
---|
P21Polimorfizm.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
// P21Polimorfizm.java package p21polimorfizm; import java.util.*; abstract class RodzinaKoty { static int i = 0; RodzinaKoty() { i++; } public static String bawSie(RodzinaKoty x, String y) { return x + " bawi się " + y; } public String mojeImie() { return "RodzinaKoty"; } public abstract String upoluj(String x); public abstract void zjedz(); } class Kotek extends RodzinaKoty { String czyj, imie, ofiara = "miska"; int ktory; Kotek(String x, String y) { imie = x; czyj = y; ktory = i; } public String upoluj(String x) { System.out.println(this + " upolowane: " + x); return x; } public void zjedz() { upoluj(ofiara); System.out.println(this + " zjedzone: " + ofiara); } public String toString() { return "Kotek " + ktory + " " + czyj + ", " + imie; } String spij() { return "Śpię 1 godzinę"; } } class Koteczek extends RodzinaKoty { String czyj, imie, kolor, ofiara = "dwie miski"; int ktory; Koteczek(String x, String y) { imie = x; kolor = y; czyj = "Ali"; ktory = i; } public String upoluj(String x) { System.out.println(this + " upolowane: " + x); return x; } public void zjedz() { upoluj(ofiara); System.out.println(this + " zjedzone: " + ofiara); } public String toString() { return "Koteczek " + ktory + ", " + czyj + ", " + imie + ", " + kolor; } String spij() { return "Śpię 2 godziny"; } public String mojeImie() { return "Jednak koteczek"; } } public class P21Polimorfizm { public static void main(String[] args) { Kotek a1 = new Kotek("Mruczek", "Oli"); Kotek a2 = new Kotek("Mruczek", "Toli"); System.out.println(a1); System.out.println(a2); Koteczek a3 = new Koteczek("Mruczek", "czarny"); Koteczek a4 = new Koteczek("Mruczek", "laciaty"); System.out.println(a3); System.out.println(a4); System.out.println(); // Rzutowanie w górę hierarchii klas - argument a1 String x1 = RodzinaKoty.bawSie(a1, " kulką"); System.out.println(x1); // Rzutowanie w górę hierarchii klas - argument a3 String x3 = RodzinaKoty.bawSie(a3, " piłką"); System.out.println(x3); System.out.println(); // Rzutowanie w górę hierarchii klas - może być niejawne RodzinaKoty a5 = new Kotek("Malutek", "Oli"); RodzinaKoty a6 = new Koteczek("Fruzia", "laciaty"); //Polimorfizm a5.zjedz(); a6.zjedz(); System.out.println(); // Wykonanie metod z klas wywiedzionych // a5.spij(); // Błąd kompilacji // a6.spij(); // Błąd kompilacji //Rzutowanie w dół hierarchii klas - musi być jawne String x5 = ((Kotek) a5).spij(); System.out.println(a5 + " " + x5); String x6 = ((Koteczek) a6).spij(); System.out.println(a6 + " " + x6); System.out.println(); //Rzutowanie w górę i nadpisywanie metod Koteczek x7 = new Koteczek("Kufa", "pregowany"); System.out.println(x7); RodzinaKoty x8 = new Koteczek("Melek", "bury"); System.out.println(x8); System.out.println(x7.mojeImie() + " " + x8.mojeImie()); System.out.println(); Kotek x9 = new Kotek("Felek", "pregowany"); System.out.println(x9); RodzinaKoty x10 = new Kotek("Baton", "bury"); System.out.println(x10); System.out.println(x9.mojeImie() + " " + x10.mojeImie()); } } |
---|
P22Interfejsy.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
// P22Interfejsy.java package p22interfejsy; interface WszystkieKoty { String cecha = " - to wolne stworzenie"; // final static String // automatycznie statyczna i ostateczna, // stala czasu kompilacji // kot nawet w niewoli jest wolny String polowanie(String x);// abstract public String // String polowanie(); zle jesli w klasach void jedzenie(); // abstract public jedzenie(); } class NaszeDomowe implements WszystkieKoty { String imie; static final String ofiara = "miska"; NaszeDomowe(String a) { imie = a; System.out.println("Cecha: " + imie + cecha); } public String polowanie(String x) { // ofiara = x; - blad System.out.println(imie + " upoluj: " + x); return ofiara; } public void jedzenie() { System.out.println(imie + ", zjedzone: " + ofiara); } } class PozostaleKoty implements WszystkieKoty { String rodzaj; String ofiara = "ofiara: wybrana przez kota"; PozostaleKoty(String a) { rodzaj = a; System.out.println("Cecha: " + rodzaj + cecha); } PozostaleKoty(String a, String b) { rodzaj = a; ofiara = b; System.out.println("Cecha: " + rodzaj + cecha); } public String polowanie(String x) { ofiara = x; System.out.println(rodzaj + ", upoluj: " + x); return x; } public void jedzenie() { System.out.println(rodzaj + ", zjedzone: " + ofiara); } } public class P22Interfejsy { public static void main(String[] args) { NaszeDomowe a = new NaszeDomowe("Fruzia"); a.jedzenie(); System.out.println(); PozostaleKoty b = new PozostaleKoty("ocelot"); b.jedzenie(); System.out.println(); PozostaleKoty c = new PozostaleKoty("gepard", "gazela"); c.jedzenie(); System.out.println(); PozostaleKoty d = new PozostaleKoty("lew"); d.jedzenie(); String odp1 = d.polowanie("antylopa"); System.out.println("Upolowane: " + odp1); d.jedzenie();System.out.println(); NaszeDomowe e = new NaszeDomowe("Kacper"); String odp2 = e.polowanie("mysz"); System.out.println("Upolowane: " + odp2); e.jedzenie(); System.out.println("---------------------"); // Referencje f,g - interfejsy // Polimorfizm WszystkieKoty f = new NaszeDomowe("Fruzia"); f.jedzenie(); System.out.println(); WszystkieKoty g = new PozostaleKoty("ocelot"); g.jedzenie(); } } |
---|
P23Interfejs.java
Interfejs 1 ( TablicaZodiak.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// TablicaZodiak.java - Interfejs 1 package P23Interfejs; import java.util.*; public interface TablicaZodiak { String[] ZODIAK = { "Zle dane", "Koziorozec", "Wodnik", "Ryby", "Baran", "Byk", "Bliznieta", "Rak", "Lew", "Panna", "Waga", "Skorpion", "Strzelec" }; } |
---|
Interfejs 2 (MiesiacDzien.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// MiesiacDzien.java - Interfejs 2 package P23Interfejs; import java.util.*; public interface MiesiacDzien { int[][] nr_znaku = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, {0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0}, {0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, {0, 4, 4, 4, 4, 4, 4, 4,4 , 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0}, {0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, {0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0}, {0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, {0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9}, {0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, 0}, {0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10,11,11,11,11,11,11,11,11,11}, {0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,12,12,12,12,12,12,12,12,12, 0}, {0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; } |
---|
Program implementujący powyższe interfejsy (P23Interfejs.java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// P23Interfejs.java package P23Interfejs; import java.util.*; public class P23Interfejs implements TablicaZodiak,MiesiacDzien { public static void main(String[] args) { int k1 = MiesiacDzien.nr_znaku[1][1]; System.out.println(TablicaZodiak.ZODIAK[k1]); int k2 = MiesiacDzien.nr_znaku[2][31]; System.out.println(TablicaZodiak.ZODIAK[k2]); int k3 = MiesiacDzien.nr_znaku[6][5]; String znak_zodiaku = new String(TablicaZodiak.ZODIAK[k3]); System.out.println(znak_zodiaku); int k4 = MiesiacDzien.nr_znaku[4][31]; System.out.println(TablicaZodiak.ZODIAK[k2]); } } |
---|