Temat: |
||
Wykonał |
Data |
Klasa/nr |
Bijak Dariusz |
06.01.2010 |
4i/1 |
Zadanie1
Podaj określenie programowania obiektowego, obiektu, klasy (str. 210).
Zadanie 2
Przeanalizuj kody przykładowe.
class Punkt3D {
int x;
int y;
int z;
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
class Main {
public static void main (String args[]) {
Punkt3D punkt = new Punkt3D();
punkt.x = 100;
punkt.y = 100;
punkt.z = 100;
System.out.println("punkt.x = " + punkt.x);
System.out.println("punkt.y = " + punkt.y);
System.out.println("punkt.z = " + punkt.z);
}
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
class Punkt3D{
int x;
int y;
int z;
void wyswietlWspolrzedne() {
System.out.println("wsp˘rzedna x = " + x);
System.out.println("wsp˘rzedna y = " + y);
System.out.println("wsp˘rzedna z = " + z);
}
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
class Main {
public static void main (String args[]) {
Punkt3D punkt = new Punkt3D();
punkt.x = 100;
punkt.y = 100;
punkt.z = 100;
punkt.wyswietlWspolrzedne();
}
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
class Punkt3D{
int x;
int y;
int z;
int pobierzX() {
return x;
}
int pobierzY() {
return y;
}
int pobierzZ() {
return z;
}
void wyswietlWspolrzedne() {
System.out.println("wsp˘rzedna x = " + x);
System.out.println("wsp˘rzedna y = " + y);
System.out.println("wsp˘rzedna z = " + z);
}
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
class Main {
public static void main (String args[]) {
Punkt3D punkt = new Punkt3D();
punkt.x = 77;
punkt.y = 100;
punkt.z = 100;
System.out.println("wspolrzedna x = " + punkt.pobierzX());
System.out.println("wspolrzedna y = " + punkt.pobierzY());
System.out.println("wspolrzedna z = " + punkt.pobierzZ());
}
}
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Zadanie 3
Wykonaj poniższe ćwiczenia. Kody wklej do sprawozdania.
Ćwiczenie 1
Napisz przykładową klasę Liczba Całkowita, która będzie przechowywała wartość całkowitą. Klasa ta powinna zawierać metodę wyswietlLiczbe, która będzie wyświetlała na ekranie przechowywaną wartość, oraz metodę pobierzLiczbe zwracającą przechowywaną wartość.
class LiczbaCalkowita {
int liczba;
void wyswietlLiczbe() {
System.out.println(liczba);
}
int pobierzLiczbe() {
return liczba;
}
}
___________________________________________________________________
Ćwiczenie 2
Napisz kod przykładowej klasy Prostokat zawierającej cztery pola
przechowujące współrzędne czterech rogów prostokąta.
Wykorzystaj obiekty klasy Punkt.
class Prostakat {
Punkt lewyGorny;
Punkt lewyDolny;
Punkt prawyGorny;
Punkt prawyDolny;
}
_______________________________________________________________
Ćwiczenie 3
Do utworzonej w ćwiczeniu 2 klasy Prostokat dopisz metody
zwracające współrzędne wszystkich czterech punktów oraz
metodę wyświetlającą wartość współrzędnych.
class Prostokat {
Punkt lewyGorny = new Punkt();
Punkt lewyDolny = new Punkt();
Punkt prawyGorny = new Punkt();
Punkt prawyDolny = new Punkt();
int pobierzLewyGornyX() {
return lewyGorny.x;}
int pobierzLewyGornyY() {
return lewyGorny.y;}
int pobierzLewyDolnyX() {
return lewyDolny.x;}
int pobierzLewyDolnyY() {
return lewyDolny.y;}
int pobierzPrawyGornyX() {
return prawyGorny.x;}
int pobierzPrawyGornyY() {
return prawyGorny.y;}
int pobierzPrawyDolnyX() {
return prawyDolny.x;}
int pobierzPrawyDolnyY() {
return prawyDolny.y;}
void wyswietlWspolrzedne() {
System.out.println("Lewy górny x: " + pobierzLewyGorny());
System.out.println("Lewy górny y: " + pobierzLewyGorny());
System.out.println("Lewy dolny x: " + pobierzLewyDolny());
System.out.println("Lewy dolny y: " + pobierzLewyDolny());
System.out.println("Prawy górny x: " + pobierzPrawyGorny());
System.out.println("Prawy górny y: " + pobierzPrawyGorny());
System.out.println("Prawy dolny x: " + pobierzPrawyDolny());
System.out.println("Prawy dolny y: " + pobierzPrawyDolny());
____________________________________________________________
Ćwiczenie 4
Napisz przykładową klasę Main testującą zachowanie klas
LiczbaCalkowita oraz Prostokat.
class Main {
public static void main (String args[]) {
LiczbaCalkowita liczba = new LiczbaCalkowita();
liczba.liczba = 100;
System.out.println(liczba.pobierzLiczbe());
Prostokat prostokat = new Prostokat();
prostokat.lewyGorny.x = 100;
prostokat.lewyGorny.y = 100;
prostokat.prawyGorny.x = 200;
prostokat.prawyGorny.y = 100;
prostokat.lewyDolny.x = 100;
prostokat.lewyDolny.y = 150;
prostokat.prawyDolny.x = 200;
prostokat.prawyDolny.y = 150;
prostokat.wyswietlWspolrzedne();
}
}
___________________________________________________________
Ćwiczenie 5
Napisz klasę Prostokat przechowującą jedynie współrzędne
lewego górnego i prawego dolnego rogu (wystarczają one do
jednoznacznego wyznaczenia prostokąta na płaszczyźnie).
Dodaj metody podające współrzędne każdego rogu.
class Prostokat {
Punkt lewyGorny = new Punkt();
Punkt prawyDolny = new Punkt();
int pobierzLewyGornyX() {
return lewyGorny.x;}
int pobierzLewyGornyY() {
return lewyGorny.y;}
int pobierzLewyDolnyX() {
return lewyDolny.x;}
int pobierzLewyDolnyY() {
return lewyDolny.y;}
int pobierzPrawyGornyX() {
return prawyGorny.x;}
int pobierzPrawyGornyY() {
return prawyGorny.y;}
int pobierzPrawyDolnyX() {
return prawyDolny.x;}
int pobierzPrawyDolnyY() {
return prawyDolny.y;}
void wyswietlWspolrzedne() {
System.out.println("Lewy górny x: " + pobierzLewyGorny());
System.out.println("Lewy górny y: " + pobierzLewyGorny());
System.out.println("Lewy dolny x: " + pobierzLewyDolny());
System.out.println("Lewy dolny y: " + pobierzLewyDolny());
System.out.println("Prawy górny x: " + pobierzPrawyGorny());
System.out.println("Prawy górny y: " + pobierzPrawyGorny());
System.out.println("Prawy dolny x: " + pobierzPrawyDolny());
System.out.println("Prawy dolny y: " + pobierzPrawyDolny());
____________________________________________________________
Ćwiczenie 6
Do klasy Prostokat z ćwiczenia 2 i 3 dopisz metodę
sprawdzającą, czy wprowadzone współrzędne faktycznie
definiują prostokąt (cztery punkty na płaszczyźnie dają dowolny
czworokąt, który nie musi mieć kształtów prostokąta.
class Prostokat {
Punkt lewyGorny = new Punkt();
Punkt lewyDolny = new Punkt();
Punkt prawyGorny = new Punkt();
Punkt prawyDolny = new Punkt();
int pobierzLewyGornyX() {
return lewyGorny.x;}
int pobierzLewyGornyY() {
return lewyGorny.y;}
int pobierzLewyDolnyX() {
return lewyDolny.x;}
int pobierzLewyDolnyY() {
return lewyDolny.y;}
int pobierzPrawyGornyX() {
return prawyGorny.x;}
int pobierzPrawyGornyY() {
return prawyGorny.y;}
int pobierzPrawyDolnyX() {
return prawyDolny.x;}
int pobierzPrawyDolnyY() {
return prawyDolny.y;}
void wyswietlWspolrzedne() {
System.out.println("Lewy górny x: " + pobierzLewyGornyX());
System.out.println("Lewy górny y: " + pobierzLewyGornyY());
System.out.println("Lewy dolny x: " + pobierzLewyDolnyX());
System.out.println("Lewy dolny y: " + pobierzLewyDolnyY());
System.out.println("Prawy górny x: " + pobierzPrawyGornyX());
System.out.println("Prawy górny y: " + pobierzPrawyGornyY());
System.out.println("Prawy dolny x: " + pobierzPrawyDolnyX());
System.out.println("Prawy dolny y: " + pobierzPrawyDolnyY());
}
boolean czyProst() {
if (pobierzLewyGornyX() ! = pobierzLewyDolnyX() ) ||
(pobierzPrawyGornyX() ! = pobierzPrawyDolnyX() ) ||
(pobierzLewyGornyY() ! = pobierzPrawyGornyY() ) ||
(pobierzLewyDolnyY() ! = pobierzPrwayDolnyY() ) ) {
return false;
}
else return true;
}
}
}
Zadanie 4
W prezentowanych przykładach poszczególne klasy były zapisywane w oddzielnych plikach. Klasa Main pełniła rolę klasy głównej. Nie musimy również kompilować klas oddzielnie. Ponieważ w klasie Main jest wykorzystywana klasa Punkt, wydanie polecenia Javac Main.java powodowało kompilacje obu plików. Warunkiem jednak jest, aby były one zapisane w tym samym katalogu.
W przykładach w podręczniku przyjęto zapis klas w jednym pliku, jak na przykład w listingu 3.10. str. 213. Przetestuj rozdzielenie klas do oddzielnych plików na tym przykładzie. Kody plików wklej do sprawozdania.
Programowanie strukturalne i obiektowe
Język Java Strona 10