Kurs Java od podstaw 6 Klasy abstrakcyjne interfejsy i metoda equals
>> YOUR LINK HERE: ___ http://youtube.com/watch?v=xtelEWWixic
W trakcie dzisiejszej lekcji przyjrzymy się zachowaniu klas abstrakcyjnych oraz metodzie equals. To jednak nie wszystko. W drugiej części filmu zajmiemy się bowiem interfejsami oraz zrozumieniem słowa kluczowego static. • ---------------- • 🥰 Chcesz się uczyć Javy z nowego kursu? Zajrzyj na zajavka.pl i przejdź całą drogę od podstaw do profesjonalnego programowania w Javie ➡️ https://zajavka.pl • --------------------------------------------------------------------------------------------------- • Po obejrzeniu filmu: • --------------------------------------------------------------------------------------------------- • Czasem podczas programowania, zwłaszcza dużych systemów, zdarza się, że mamy do czynienia z dużą ilością pięter. W związku z tym, warto dobrze przemyśleć swoje programy, aby klasy, które będą znajdowały się na dole i wykonywały dla nas konkretne zadania, miały sensownie odziedziczone i zaiplementowane klasy i interfejsy nadrzędne. • nterfejs opiera się na funkcjonalności, a klasa na implementacji. Nawet jeżeli implementujemy dziesięć interfejsów i każdy posiada taką samą deklarację jednej metody, to nie kolidują one wzajemnie ze sobą. Interfejs jest gwarantem jej istnienia, a nie tego, w jaki sposób powinna być zaimplementowana, dlatego różnica między klasą a interfejsem jest niewielka. Chociażby dlatego, podczas pisania własnych programów radzę kilkukrotnie się zastanowić, co w danej sytuacji będzie lepsze i dlaczego. • Najlepiej patrzeć tutaj na relację jest i posiada. Znaczy to tyle, że jeżeli np. Wojtek jest mężczyzną, to może śmiało rozszerzać męskie cechy, ale bycie mężczyzną nie oznacza, że ma się zegarek, dlatego posiadanie zegarka umieściłbym akurat w interfejsie. • --------------------------------------------------------------------------------------------------- • Zadania do wykonania: • --------------------------------------------------------------------------------------------------- • 1. Napisz dowolną klasę abstrakcyjną, która będzie implementowała 2 interfejsy i będzie po niej dziedziczyła jedna klasa. Niech klasy i interfejsy nazywają się Silnik, Samochód, Skrzynia biegów i Osobówka. W zadaniu chodzi o to, aby zależności między klasami były sensowne. • 2. Stwórz klasę Produkt zawierającą statyczne pole id, które będzie rosło wraz z utworzeniem każdego nowego produktu (czyli obiektu danej klasy), a także finalne pole nazwa produktu i metodę uruchom drukującą tekst i identyfikator. Następnie w klasie fabryka stwórz metody pozwalające na stworzenie stu produktów(użyj tablicy). Później wyrywkowo kilka przetestuj wywołując ich metodę działaj. Ważne aby metoda działaj zwracała też unikalny numer id. • 3. Stwórz klasę punkt, a także klasę punkt 3d, która będzie po niej dziedziczyć. W klasie punkt zdefiniuj int x, int y, getter i setter w klasy punkt3d int z, również getter i setter, a także konstruktory przyjmujące 3 parametry w klasie punkt 3d i 2 parametry w klasie punkt, oraz konstruktor domyślny w klasie Punkt. A także konstruktor przypisujący parametry klasie Punkt, dzięki wywołaniu super, oraz oraz przypisujący punkt z klasie z. Następnie w klasie układ współrzędnych stwórz kilka takich obiektów typu punkt, dodając im za każdym razem inne parametry. Zrób to w pętli, użyj tablicy. Następnie ładnie wydrukuj wypisując skąd pochodzi dany punkt(używając metody toString bezpośrednio na obiekcie Punkt3D), a także jego koordynaty. • 4. Utwórz klasę Matematyka zawierającą same metody statyczne. Utwórz metody na dodawanie, odejmowanie, mnożenie i dzielenie. Następnie w klasie main wywołaj je dla różnych parametrów. • 5. Utwórz klasę Drzewo i oznacz jej konstruktor jako prywatny. Następnie spróbuj utworzyć jej obiekt w nowej klasie. W jaki sposób można rozwiązać to zagadnienie? Podpowiedź, w klasie drzewo możesz utworzyć sobie pola i metody pomocnicze. • Zapraszam Cię również na GitHuba, gdzie znajdziesz omawiane w filmie przykłady: • https://goo.gl/Yf69fZ
#############################
