Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- abstract class Stepien{
- Stepien(){
- name = "Stepien";
- }
- private String name;
- public String saySmthFny(){
- return "I'm abstract!";
- }
- abstract public int abstractStepien();
- }
- class Kapitan{
- private String imie;
- private String nazwisko;
- private int wiek;
- private boolean emerytura;
- public Kapitan(){
- imie = "Adam";
- nazwisko = "Szary";
- wiek = 40;
- emerytura = false;
- }
- public Kapitan(String i, String n, int w, boolean e)
- {
- imie = i;
- nazwisko = n;
- wiek = w;
- emerytura = e;
- }
- @Override
- public String toString()
- {
- return "Kapitan " + this.imie + " " + this.nazwisko + ", wiek " + wiek + ", emerytura: " + emerytura;
- }
- }
- class Statek{
- private Kapitan kapitan;
- private String nazwa;
- private int zaloga;
- public Statek(){
- kapitan = new Kapitan();
- nazwa = "Black Rose";
- zaloga = 200;
- }
- public Statek(String n, int z){
- kapitan = new Kapitan();
- nazwa = n;
- zaloga = z;
- }
- public Statek(Kapitan k, String n, int z){
- kapitan = k;
- nazwa = n;
- zaloga = z;
- }
- @Override
- public String toString(){
- return "Statek " + nazwa + ", liczba osob na pokadzie " + zaloga + ", dowodzi nimi: " + kapitan.toString() + ".";
- }
- public void setLiczbaOsob(int z){
- zaloga = z;
- }
- public int getLiczbaOsob(){
- return zaloga;
- }
- public String getNazwa(){
- return nazwa;
- }
- }
- class StatekPasazerski extends Statek{
- private int pasazerowie;
- public StatekPasazerski(){
- this(new Kapitan("Jakub", "Rozen", 50, false), "Jaszczomp", 10, 100);
- }
- public StatekPasazerski(Kapitan k, String n, int z, int p){
- super(k, n, z+p);
- pasazerowie = p;
- }
- @Override
- public String toString(){
- return super.toString() + " Na statku przebywa " + pasazerowie + " pasazerow.";
- }
- @Override
- public boolean equals(Object obj){
- if(obj == null){
- return false;
- }
- if(getClass() != obj.getClass()){
- return false;
- }
- if(this == obj){
- return true;
- }
- final StatekPasazerski other = (StatekPasazerski)obj;
- if(this.pasazerowie != other.pasazerowie){
- return false;
- }
- return true;
- }
- @Override
- public int hashCode(){
- int hash = 7;
- hash = 19 * hash + Objects.hashCode(this.pasazerowie);
- return hash;
- }
- public void setLiczbaOsob(int p){
- super.setLiczbaOsob(super.getLiczbaOsob()-pasazerowie+p);
- pasazerowie = p;
- }
- public int getLiczbaOsob(){
- return pasazerowie;
- }
- }
- public class HelloWorld{
- public static void main(String []args){
- Kapitan pierwszy = new Kapitan("Rafal", "Molenda", 28, false);
- System.out.println(pierwszy);
- Statek zwykly = new Statek();
- System.out.println(zwykly);
- StatekPasazerski niezwykly = new StatekPasazerski();
- System.out.println(niezwykly);
- StatekPasazerski swobodny = new StatekPasazerski(new Kapitan("Dominic", "Vincetti", 70, true), "Old Boat", 200, 1000);
- System.out.println(swobodny);
- swobodny.setLiczbaOsob(800);
- System.out.println(swobodny);
- //polimorfizm
- Statek[] tablica = new Statek[4];
- tablica[0] = zwykly;
- tablica[1] = niezwykly;
- tablica[2] = new Statek(new Kapitan("Andrzej", "Borowka", 30, false), "St. Piekarczyk", 2);
- tablica[3] = swobodny;
- for(Statek statek: tablica)
- {
- System.out.printf("%s ma %d pasazerow.\n", statek.getNazwa(), statek.getLiczbaOsob());
- }
- System.out.println(tablica[2].toString());
- StatekPasazerski rzutowany;
- if(tablica[0] instanceof StatekPasazerski){
- rzutowany = (StatekPasazerski)tablica[0];
- rzutowany.setLiczbaOsob(50);
- } else {
- rzutowany = new StatekPasazerski();
- rzutowany.setLiczbaOsob(50);
- }
- System.out.println(rzutowany.toString());
- //metoda equals
- StatekPasazerski porownawczy = rzutowany;
- System.out.println(rzutowany.equals(porownawczy));
- System.out.println(rzutowany.hashCode());
- System.out.println(porownawczy.hashCode());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement