Programowanie 2 - Ćwiczenia 3
Poprzednie
Następne
Temat: Java cd. Wstęp do programowania obiektowego.
Pętla for
pętla wykonująca się od a równego 0 do 9.
for (deklaracja zmiennej; warunek_logiczny; instrukcja_wykonywana_przy_kazdym_przejsciu) {
/* instrukcje wykonywane zawsze gdy wartunek logiczny jest prawdziwy */
}
public class Petla1 {
/**
* @param args
*/
public static void main(String[] args) {
for (int a=0; a<10; a++) {
System.out.println(a);
}
}
}
switch
Wykonanie części programu w zależności od wartości wyrażenia.
switch ( wyrażenie)
{
case Wartosć1 :
/* ... */
break;
case Wartosć2 :
/* ... */
break;
default :
/* ... */
break;
}
Przykładowy program:
public class ProgramSwitch {
/**
* @param args
*/
public static void main(String[] args) {
int b= 1;
switch (b) {
case 0: System.out.println("wartosc 0");
break;
case 1: System.out.println("wartosc 1");
break;
default: System.out.println("wartosc inna niz 0 i 1");
break;
}
}
}
Zadanie 2.3
Napisz program odczytujący liczbę całkowitoliczbową oznaczającą rok
urodzenia, a następnie obliczającą ile dana osoba ma lat(zakładając iż
urodziła się 1 stycznia podanego roku), wypisującą tę wartość.
Następnie program powinien wypisać wszystkie lata do bieżącego roku.
np. gdy podamy: 1999
to program powinien zwrócić wartość:
Masz 10 lat
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
Podstawowe definicje
Na wcześniejszych zajęciachużywaliśmy klas jedynie w celu zdefiniowania
metody main().
Jednak zastosowanie klas jest zdecydowanie szersze w programowaniu
obiektowym.
Programowanie obiektowe (wikipedia) (object-oriented
programming) — paradygmat programowania, w którym programy definiuje
się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane
najczęściej polami) i zachowanie (czyli procedury, tu: metody).
Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów,
komunikujących się pomiędzy sobą w celu wykonywania zadań.
Obiekt
Obiekt to podstawowe pojęcie
wchodzące w skład paradygmatu programowania obiektowego w analizie i
projektowaniu oprogramowania oraz w programowaniu.
Jest to struktura zawierająca:
* dane
* metody, czyli funkcje służące do wykonywania na
tych danych określonych zadań.
Z reguły obiekty (a właściwie klasy, do których te obiekty należą) są
konstruowane tak, aby dane przez nie przenoszone były dostępne
wyłącznie przez odpowiednie metody, co zabezpiecza je przed
niechcianymi modyfikacjami. Takie zamknięcie danych nazywa się
enkapsulacją czyli jakby zamknięcie ich w kapsule.
Każdy obiekt ma trzy cechy:
* tożsamość, czyli cechę umożliwiającą jego
identyfikację i odróżnienie od innych obiektów;
* stan, czyli aktualny stan danych składowych;
* zachowanie (ang. behaviour), czyli zestaw metod
wykonujących operacje na tych danych.
Klasa
W programowaniu obiektowym klasa jest
częściową lub całkowitą definicją dla obiektów. Definicja obejmuje
dopuszczalny stan obiektów oraz ich zachowania. Obiekt, który został
stworzony na podstawie danej klasy nazywany jest jej instancją. Klasy
mogą być typami języka programowania - przykładowo, instancja klasy
Owoc będzie mieć typ Owoc. Klasy posiadają zarówno interfejs, jak i
strukturę. Interfejs opisuje, jak komunikować się z jej instancjami za
pośrednictwem metod, zaś struktura definiuje sposób mapowania stanu
obiektu na elementarne atrybuty.
Zależnie od implementacji, klasy mogą istnieć w programie tylko na
etapie jego kompilacji, w wyniku której są tłumaczone na kod
strukturalny lub też posiadać swoją reprezentację w kodzie wynikowym w
postaci metaobiektów. Za ich pomocą program może odczytywać i
manipulować informacjami o klasie podczas wykonywania.
Utworzenie pierwszej klasy
// Klasa o nazwie Kolo. Bedzie reprezentowac figure geometryczna pozwalajaca
// na wykonaniu podstawowych operacji takich jak obliczenie pola i obwodu
public class Kolo {
// pola (wlasciwosci)
public double x;
public double y;
public double promien;
public Kolo(double d, double e, double f) {
this.x = d;
this.y = e;
this.promien = f;
}
// operacje (metody)
public double obliczPole() {
return ((3.14 * 3.14) * promien);
}
public double obliczObwod() {
return (6.28 * promien);
}
public void opiszSie() {
String napis = "Kolo";
napis += " (x: " + x;
napis += ", y: " + y;
napis += ", promien: " + promien;
napis += " pole: " + obliczPole();
napis += " obwod: " + obliczObwod();
System.out.println("-------------- ");
System.out.println(napis);
System.out.println("-------------- ");
}
public static void main(String[] args) {
// utworzenie obiektu o nazwie kolo1
Kolo kolo1 = new Kolo(10.0, 20.0, 5.0);
// utworzenie obiektu o nazwie kolo2
Kolo kolo2 = new Kolo(5.0, 1.0, 2.0);
System.out.println("KOLO1: ");
kolo1.opiszSie();
System.out.println("KOLO2: ");
kolo2.opiszSie();
}
}
Definicja - struktura kodu
// Klasa o nazwie Kolo. Bedzie reprezentowac figure geometryczna pozwalajaca
// na wykonaniu podstawowych operacji takich jak obliczenie pola i obwodu
public class <nazwa_klasy> {
// pola (wlasciwosci)
...
// KONSTRUKTOR np.
public <nazwa_klasy> (double d, double e, double f) {
this.x = d;
this.y = e;
this.promien = f;
}
// METODY np.
public double obliczPole() {
return ((3.14 * 3.14) * promien);
}
...
< OPCJONALNY KOD - tylko gdy chcemy rozpocząć działanie programu w bieżącej klasie
public static void main(String[] args) {
// utworzenie obiektu o nazwie kolo1
Kolo kolo1 = new Kolo(10.0, 20.0, 5.0);
// utworzenie obiektu o nazwie kolo2
Kolo kolo2 = new Kolo(5.0, 1.0, 2.0);
System.out.println("KOLO1: ");
kolo1.opiszSie();
System.out.println("KOLO2: ");
kolo2.opiszSie();
}
}
Zadanie 3.0
Utwórz klasę o nazwie "MojProgram" i przenies do niej metodę
main. Sprawdź czy program będzie działać.
Zadanie 3.1
Dodaj metodę o nazwie czyPunktWKole
powinna ona zwracać wartość typu logicznego "true" gdy podany punkt (o
współrzędnych przekazanych do metody) należy do koła. W przeciwnym
przypadku powinien zwrócić wartość "false".