Skip to content

Instantly share code, notes, and snippets.

@pjastr
Last active November 8, 2017 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/123d53e6fac272d92656e64fa880c76f to your computer and use it in GitHub Desktop.
Save pjastr/123d53e6fac272d92656e64fa880c76f to your computer and use it in GitHub Desktop.

Uwaga! We wszystkich poleceniach nie używaj znacznika @Override (o ile to możliwe).

  1. Stwórz nowy projekt. Wykonaj w nim następujące polecenia:
  • Napisz w nim pustą klasę Pojazd oraz dwie dziedziczące po niej klasy Samochod i Rower.
  • Teraz utwórz interfejs Jazda, zawierający deklarację metody Jedz() typu void.
  • Podepnij interfejs do klas Samochod i Rower i zaimplementuj metodę Jedz() wyświetlając w konsoli komunikat "Jadę samochodem" lub "Jadę rowerem".
  • Stwórz po jednym obiekcie typu Samochod i Rower. Dla nowo utworzonych obiektów wywołaj metodę Jedz() i zobacz co wyświetli się na ekranie.
  • Stwórz nowy interfejs Muzyka z metodą Klakson() typu void i podepnij go do klasy Rower. Następnie dodaj implementację, by ta metoda wyświetla łańcuch "dryń". Wywołaj metodę na obiekcie typu Rower. Czy wielodziedziczenie interfejsów w Java jest możliwe?
  • Narysuj diagram UML projektu.
  • Skorzystaj z rzutowania w górę i stwórz obiekt Rower zrzutowany na typ Pojazd (Pojazd rower2 = new Rower();). Wywołaj na tym obiekcie metodę Klakson(). Czy to jest możliwe?
  1. W nowym projekcie wykonaj poniższe czynności:
  • Stwórz klasę Osoba
  • Stwórz interfejsy Sport i Muzyka, dodaj w nich deklarację metody Gra() zwracającej typ String
  • Oba interejsy podepnij pod klasę Osoba, dodaj implementację interfejsu tak by metoda zwracała string "gra".
  • w klasie Main i metodzie Main stwórz trzy obiekty za pomocą poniższego kodu:
            Osoba osoba1 = new Osoba();
            Muzyka osoba2 = new Osoba();
            Sport osoba3 = new Osoba();
  1. W nowym projekcie wykonaj poniższe czynności:
  • Stwórz klasę Owoc i klasę potomną Gruszka.
  • Stwórz interfejs Jedzenie i dodaj w nim deklarację metody Jedz() typu void.
  • Podepnij interfejs pod obie klasy stworzonę wyżej, dodaj w obu klasach implementację niejawną w postaci wyświetlania jakiegoś stringa na konsoli.
  • W klasie Main i instrukcji Main dodaj kod.
        Gruszka gruszka1 = new Gruszka();
        Owoc gruszka2 = new Gruszka();
        Jedzenie gruszka3 = new Gruszka();
        Owoc gruszka4 = new Owoc();
        Jedzenie gruszka5 = new Owoc();
        gruszka1.Jedz();
        ((Owoc)gruszka1).Jedz();
        ((Gruszka)gruszka1).Jedz();
        ((Jedzenie)gruszka1).Jedz();
        System.out.println("---");
        gruszka2.Jedz();
        ((Owoc)gruszka2).Jedz();
        ((Gruszka)gruszka2).Jedz();
        ((Jedzenie)gruszka2).Jedz();
        System.out.println("---");
        gruszka3.Jedz();
        ((Owoc)gruszka3).Jedz();
        ((Gruszka)gruszka3).Jedz();
        ((Jedzenie)gruszka3).Jedz();
        System.out.println("---");
        gruszka4.Jedz();
        ((Owoc)gruszka4).Jedz();
        //((Gruszka)gruszka4).Jedz();
        ((Jedzenie)gruszka4).Jedz();
        System.out.println("---");
        gruszka5.Jedz();
        ((Owoc)gruszka5).Jedz();
        //((Gruszka)gruszka5).Jedz();
        ((Jedzenie)gruszka5).Jedz();

Przed uruchomieniem przeanalizuj co powinno się wyświetlić na konsoli.

  1. W nowym projekcie wykonaj czynności:
  • Stwórz klasę WlasnaKlasa
  • Stwórz interfejs Aaa i dodaj w nim deklarację metody Liczba() zwracającej typ int.
  • Stwórz interfejs Bbb dziedziczący z interfejsu Aaa i dodaj w nim deklarację metody Wyraz() zwracającej typ String.
  • Podejpnij interfejs Bbb pod klasę WlasnaKlasa. Zastanów się, które metody musisz obowiązkowo zaimplementować.
  • Narysuj diagram UML projektu.
  1. W nowym projekcie wykonaj czynności:
  • W klasie Car dodaj pola year (rok produkcji) i brand (marka) oraz konstruktor z parametrami (year, brand).
  • W klasie Main stwórz kolekcje cars i dodaj na nią kilka samochodów za pomocą konstruktora np.:
        List<Car> cars = new ArrayList<Car>();
        cars.add(new Car(2010, "Ford"));
        cars.add(new Car(2016, "Fiat"));
        cars.add(new Car(2012, "Skoda"));
        cars.add(new Car(2010, "BMW"));

(dodaj brakujące biblioteki)

  • Do klasy Car dodaj interfejs Comparable<T> i metodę CompareTo. Następnie posortuj elementy na liście i wyświetl je kolejno na konsoli. Na koniec zmień kolejność sortowania.
  1. Stwórz nowy projekt - Zwierzaki:
  • Stwórz klasę Zwierze, po której dziedziczyć będą następujące klasy: Pies, Wilk, Rekin, Orzel i Krokodyl.
  • Stwórz interfejs zawierający dwie metody: void JakSiePoruszam() i void CoJem().
  • Obiekt każdej klasy powinien umieć wywołać powyższe metody i odpowiedzieć na nie w sensowny sposób (np. "poruszam się na czterech łapach")
  • W każdej klasie potomnej po Zwierzaku dodaj pola: imię, waga, ilość nóg. Następnie poćwiczyć użycie interfejsu Comparable<T>.
  1. Stwórz nowy projekt - Zbiór figur:

Zaimplementuj klasy, które pozwolą reprezentować obiekty w dwuwymiarowej przestrzeni.

Punkt – reprezentowany przez dwie zmienne typu rzeczywistego X i Y

Koło – reprezentowane przez środek koła (punkt), oraz promień.

Kwadrat – reprezentowany przez 4 punkty krawędziowe.

(Wszystkie powyższe klasy posiadają też pole nazwa typu string.)

Stwórz potrzebne konstruktory.

Dodaj interfejsy z metodami (podziel je pod względem odpowiedzialności):

  • metoda LiczObwód (obwód punktu = 0)
  • metoda PobierzDaneZKlawiatury
  • metoda Wyświetl

Po zakończeniu implementacji stwórz kilka obiektów, policz ich obwód, a następnie je wyświetl. Na koniec stwórz kolekcję, posortuj obiekty.

Na przyszłe zajęcia:

A) zapoznaj się z podstawowymi metodami związane z obsługą plików, zapisem i odczytem plików tesktowych.

B) zbuduj artifeks, zastanów się jak go uruchomić pod Windowsem/Linuksem, jak przygotować plik .exe/setup.exe pod Windows?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment