Klasy i obiekty
Wprowadzenie
Poniżej znajdziesz instrukcje do ćwiczeń które mają na celu opanowanie podstawowych umiejętności związanych z programowaniem w języku Java. Umiejętności te stanowią podstawę dalszych ćwiczeń i dlatego opanowanie ich w wyznaczonym terminie traktuję bardzo poważnie ;-|. Niektóre ćwiczenia ilustrowane są fragmentami kodów, które z reguły służą do tego żeby je rozwinąć w ramach danego ćwiczenia. Jeżeli w ćwiczeniu występuje klasa biblioteczna, to jej pierwsze wystąpienie będzie jednocześnie linkiem do dokumentacji Java API, w której można znaleźć informacje potrzebne do jej wykorzystania.
Ćwiczenia
ćw. 1.1
Poniżej znajdziesz kod źródłowy klasy Prostokat - złożonej struktury danych którą użyjemy do tworzenia obiektów typu Prostokat. Klasa zawiera dwa pola (zmienne składowe) typu double, dwa konstruktory oraz metodę (funkcję składową) służącą do wyznaczania pola powierzchni prostokąta. W oparciu o informacje z wykładu zidentyfikuj te elementy, przeanalizuj cel ich użycia oraz składnię.
ćw. 1.2
Poniżej znajdziesz także kod źródłowy klasy Program, zawierającej metodę o nazwie main(), która zostanie wywołana kiedy zostanie zainicjowane wykonanie klasy Program. W ramach tej metody zostaną wykonane następujące czynności - deklaracja obiektu klasy Prostokat, utworzenie obiektu klasy Prostokat, wywołanie metody pole() na rzecz utworzonego obiektu oraz wydrukowanie do standardowego wyjścia zmiennej x przechowującej wartość którą zwróciła ta metoda. W oparciu o informacje z wykładu zidentyfikuj te elementy, przeanalizuj cel ich użycia oraz składnię.
class Prostokat { double dlugosc; double szerokosc;
Prostokat() { this.dlugosc=0.0; this.szerokosc=0.0; }
Prostokat(double dlugosc,double szerokosc) { this.dlugosc=dlugosc; this.szerokosc=szerokosc; }
double pole() { return dlugosc*szerokosc; } } |
public class Program { public static void main(String[] args) { Prostokat obj; obj=new Prostokat(3,4); double x=obj.pole();
System.out.println("Pole prostokata: "+x); } } |
ćw. 1.3
Posługując się informacjami z wykładu, zestaw odpowiednią jednostkę kompilacji, skompiluj projekt oraz przeanalizuj efekty kompilacji - ilość i nazewnictwo plików zawierających bajtkody dla maszyny wirtualnej Java. Użyj dowolnego edytora (vim, JCreator, NetBeans) oraz kompilatora javac, który jest częścią środowiska deweloperskiego Java SE Development Kit (JDK) udostępnianego przez firmę SUN. Następnie uruchom program za pomocą interpretera java, będącego częścią środowiska uruchomieniowego Java SE Runtime Environment JRE (które jest także częścią pakietu JDK, nie trzeba pobierać JRE oddzielnie). Na stronach internetowych można także znaleźć instrukcje dotyczące instalacji i użycia powyższych narzędzi.
ćw. 1.4
Do klasy Prostokat dodaj implementację metody obwod() zwracającej obwód prostokąta oraz odpowiednie wywołanie tej metody w programie, które umożliwi przetestowanie Twojej implementacji. Skompiluj i przetestuj przykład.
ćw. 1.5
Napisz implementację klasy Punkt, służącej do reprezentowania punktów na płaszczyźnie. Do klasy Prostokat dodaj pole srodek, będące obiektem klasy Punkt. Dodaj odpowiedni konstruktor umożliwiający zainicjowanie dodatkowego pola informacjami określającymi położenie środka danej figury na płaszczyźnie.
ćw. 1.6
W klasie Prostokat zaimplementuj metodę "void przesun(double u,double v)", która będzie realizowała translację figury o wektor (u,v), oraz metodę "void info(double u,double v)", która posłuży do wydrukowania informacji o okręgu (współrzędne środka, długość i szerokość) do standardowego wyjścia.
ćw. 1.7
Do Twojego projektu dodaj implementację klasy Okrag, zawierającą pole promien, odpowiedni konstruktor oraz metody analogiczne jak w klasie Prostokat. Skompiluj i przetestuj przykład.
ćw. 1.8
Do klas Prostokat i Okrag dodaj implementacje metod "boolean zawiera(Punkt obj)" i "boolean przecina(Okrag obj)".
ćw. 1.9
Za pomocą narzędzia javadoc (standardowe narzędzie dostarczane z pakietem JDK) utwórz standardową dokumentację w formacie html do klas Prostokat, Okrag i Punkt, zawierającą opisy do wszystkich pól i metod tych klas.
ćw. 1.10
Napisz klasę Wektor. Twoja klasa powinna mieć dwa pola rx i ry typu double, odpowiedni konstruktor oraz metody o nagłówkach "double dlugosc()" oraz "Wektor pomnoz(double x)", zwracające odpowiednio dlugość wektora oraz iloczyn wektora przez liczbę. Napisz także program pozwalający na przetestowanie Twojej klasy.
ćw. 1.11
Napisz klasę Macierz. Twoja klasa powinna mieć cztery pola a11, a12, a21, a22 typu int, odpowiedni konstruktor oraz metody o nagłówkach "int wyznacznik()" oraz "Macierz dodaj(Macierz obj)", zwracające odpowiednio wyznacznik macierzy oraz sumę dwóch macierzy. Napisz także program pozwalający na przetestowanie Twojej klasy.
ćw. 1.12* (opcjonalne)
Napisz klasę Ulamek. Twoja klasa powinna mieć dwa pola licznik i mianownik (zdecyduj jakiego typu), odpowiedni konstruktor oraz metody o nagłówkach "double rozwiniecie()" oraz "Ulamek dodaj(Ulamek obj)", zwracające odpowiednio rozwinięcie dziesiętne ułamka oraz sumę dwóch ułamków. Następnie zaimplementuj metodę "void skroc()", realizującą operację skracania ułamka. Napisz program pozwalający na przetestowanie Twojej klasy.
Z. Dendzik 2009, Programowanie dla platformy Java, sem. I, godz. 1-3.