Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.63 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. abstract class Stepien{
  4. Stepien(){
  5. name = "Stepien";
  6. }
  7. private String name;
  8. public String saySmthFny(){
  9. return "I'm abstract!";
  10. }
  11. abstract public int abstractStepien();
  12. }
  13.  
  14. class Kapitan{
  15. private String imie;
  16. private String nazwisko;
  17. private int wiek;
  18. private boolean emerytura;
  19. public Kapitan(){
  20. imie = "Adam";
  21. nazwisko = "Szary";
  22. wiek = 40;
  23. emerytura = false;
  24. }
  25. public Kapitan(String i, String n, int w, boolean e)
  26. {
  27. imie = i;
  28. nazwisko = n;
  29. wiek = w;
  30. emerytura = e;
  31. }
  32. @Override
  33. public String toString()
  34. {
  35. return "Kapitan " + this.imie + " " + this.nazwisko + ", wiek " + wiek + ", emerytura: " + emerytura;
  36. }
  37. }
  38.  
  39. class Statek{
  40. private Kapitan kapitan;
  41. private String nazwa;
  42. private int zaloga;
  43. public Statek(){
  44. kapitan = new Kapitan();
  45. nazwa = "Black Rose";
  46. zaloga = 200;
  47. }
  48. public Statek(String n, int z){
  49. kapitan = new Kapitan();
  50. nazwa = n;
  51. zaloga = z;
  52. }
  53. public Statek(Kapitan k, String n, int z){
  54. kapitan = k;
  55. nazwa = n;
  56. zaloga = z;
  57. }
  58. @Override
  59. public String toString(){
  60. return "Statek " + nazwa + ", liczba osob na pokadzie " + zaloga + ", dowodzi nimi: " + kapitan.toString() + ".";
  61. }
  62. public void setLiczbaOsob(int z){
  63. zaloga = z;
  64. }
  65. public int getLiczbaOsob(){
  66. return zaloga;
  67. }
  68. public String getNazwa(){
  69. return nazwa;
  70. }
  71. }
  72.  
  73. class StatekPasazerski extends Statek{
  74. private int pasazerowie;
  75. public StatekPasazerski(){
  76. this(new Kapitan("Jakub", "Rozen", 50, false), "Jaszczomp", 10, 100);
  77. }
  78. public StatekPasazerski(Kapitan k, String n, int z, int p){
  79. super(k, n, z+p);
  80. pasazerowie = p;
  81. }
  82. @Override
  83. public String toString(){
  84. return super.toString() + " Na statku przebywa " + pasazerowie + " pasazerow.";
  85. }
  86. @Override
  87. public boolean equals(Object obj){
  88. if(obj == null){
  89. return false;
  90. }
  91. if(getClass() != obj.getClass()){
  92. return false;
  93. }
  94. if(this == obj){
  95. return true;
  96. }
  97. final StatekPasazerski other = (StatekPasazerski)obj;
  98. if(this.pasazerowie != other.pasazerowie){
  99. return false;
  100. }
  101. return true;
  102. }
  103. @Override
  104. public int hashCode(){
  105. int hash = 7;
  106. hash = 19 * hash + Objects.hashCode(this.pasazerowie);
  107. return hash;
  108. }
  109. public void setLiczbaOsob(int p){
  110. super.setLiczbaOsob(super.getLiczbaOsob()-pasazerowie+p);
  111. pasazerowie = p;
  112. }
  113. public int getLiczbaOsob(){
  114. return pasazerowie;
  115. }
  116. }
  117.  
  118. public class HelloWorld{
  119.  
  120. public static void main(String []args){
  121. Kapitan pierwszy = new Kapitan("Rafal", "Molenda", 28, false);
  122. System.out.println(pierwszy);
  123.  
  124. Statek zwykly = new Statek();
  125. System.out.println(zwykly);
  126.  
  127. StatekPasazerski niezwykly = new StatekPasazerski();
  128. System.out.println(niezwykly);
  129.  
  130. StatekPasazerski swobodny = new StatekPasazerski(new Kapitan("Dominic", "Vincetti", 70, true), "Old Boat", 200, 1000);
  131. System.out.println(swobodny);
  132.  
  133. swobodny.setLiczbaOsob(800);
  134. System.out.println(swobodny);
  135.  
  136. //polimorfizm
  137.  
  138. Statek[] tablica = new Statek[4];
  139. tablica[0] = zwykly;
  140. tablica[1] = niezwykly;
  141. tablica[2] = new Statek(new Kapitan("Andrzej", "Borowka", 30, false), "St. Piekarczyk", 2);
  142. tablica[3] = swobodny;
  143.  
  144. for(Statek statek: tablica)
  145. {
  146. System.out.printf("%s ma %d pasazerow.\n", statek.getNazwa(), statek.getLiczbaOsob());
  147. }
  148.  
  149. System.out.println(tablica[2].toString());
  150.  
  151. StatekPasazerski rzutowany;
  152. if(tablica[0] instanceof StatekPasazerski){
  153. rzutowany = (StatekPasazerski)tablica[0];
  154. rzutowany.setLiczbaOsob(50);
  155.  
  156. } else {
  157. rzutowany = new StatekPasazerski();
  158. rzutowany.setLiczbaOsob(50);
  159. }
  160.  
  161. System.out.println(rzutowany.toString());
  162.  
  163. //metoda equals
  164. StatekPasazerski porownawczy = rzutowany;
  165.  
  166. System.out.println(rzutowany.equals(porownawczy));
  167. System.out.println(rzutowany.hashCode());
  168. System.out.println(porownawczy.hashCode());
  169. }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement