1
Języki Programowania
Środowisko BlueJ
2
http://www.bluej.org
2
3
Zaczynamy pracę z BlueJ
Klikamy dwukrotnie
na ikonę BlueJ
Otwieramy nowy
projekt
New Project
Pojawia się wiele
predefiniowanych
projektów (klas)
Wybieramy nazwę
przyklady
4
BlueJ, pierwsza klasa
nowa klasa
nazwa
Hello
powstała nowa klasa
Hello.java
prawym przyciskiem
myszy wywołujemy
menu kontekstowe,
z którego możemy
np. dokonać edycji
3
5
Edycja i kompilacja
Edytor podaje gotowy kod
źródłowy wcześniej
zapisanej klasy
Hello
Tworząc nową klasę trzeba
ten kod wpisać, a potem
można go modyfikować -
edytować
Gotowy kod można
poddać tłumaczeniu -
kompilacji
6
Tworzenie obiektów
Klasa
Hello
w oknie
BlueJ oznacza tylko, że
klasa ta została
poprawnie skompilowana,
na razie jednak nie można
z niej korzystać w
praktyce
U dołu okna widać, że
wcześniej zostały już
utworzone dwa obiekty
z klasy
Hello
o
nazwach
hello1
i
hello2
Tworząc kolejny obiekt z danej klasy należy
mu nadać unikatową nazwę, w tym przypadku
np.
hello3
. Konstruktor obiektów sam
podpowiada kolejne numery obiektów
4
7
Obiekty
– sedno programowania
Obiekty
są podstawą idei
progra-
mowania obiektowego
.
W
BlueJ
wszystkie własności
obiektów można przywołać przez
menu kontekstowe
Można przy tym obejrzeć
wewnętrzne właściwości obiektów
(
Inspect
) lub usunąć obiekt
(
Remove
)
8
Figury jako obiekty
Otwieramy zdefiniowaną
przykładową klasę
shapes
i tworzymy obiekty
klas
Circle
Square
Triangle
Możemy nadać własne
nazwy obiektów, np.:
kolo
kwadrat
trojkat
Lub zaakceptować
proponowane przez
BlueJ
nazewnictwo typu:
circle1
circle2
square1
Uwaga:
powszechnie przyjęta jest konwencja, że
nazwy
klas
zaczynają się od dużej, a nazwy
obiektów
od małej litery
5
9
Dlaczego nie widać kółka?
Dokonujemy
inspekcji
obiektu
kolo
wybierając
z menu kontekstowego
opcję
Inspect
10
isVisible = false
Otwiera się okno inspektora
Parametr
isVisible
ma wartość
false
Należy go zmienić,
ale w jaki sposób?
6
11
Metoda
makeVisible()
W menu kontekstowym obiektu
kolo znajdujemy
metodę
makeVisible()
Klikamy na tę opcję i ....
Koło pojawia się w oknie konsoli
BlueJ
12
Badanie metod
W podobny sposób powodujemy pojawienie
się obiektów
kwadrat
i
trojkat
Następnie wywołujemy kolejno metody:
obiekt
kwadrat
metoda
moveRight()
obiekt
kolo
metoda
moveDown()
obiekt
kwadrat
metoda
moveRight()
obiekt
kwadrat
metoda
moveUp()
7
13
Metody z argumentami
Zmienimy teraz wielkość koła wywołując
związaną z nim metodę
changeSize(int)
Otwiera się okno dialogowe, w które
wprowadzamy nową wartość średnicy
koła w pikselach
Typ parametru
int
oznacza, że jest on
liczbą całkowitą.
Wpisujemy wartość 100 i konsola
pokazuje większe koło o średnicy 100
pikseli
14
Kolejne obiekty
tworzymy kolejne dwa obiekty klasy
Circle
kolo2
kolo3
i przesuwamy jedno z nich o 100 pikseli w prawo a
drugie o 50 pikseli w dół, po czym uwidaczniamy je
metodą
makeVisible()
Na ekranie widzimy jednak tylko dwa niebieskie
koła. Gdzie jest trzecie koło?
Duże niebieskie koło (obiekt
kolo
) przesłania inne
niebieskie koło (obiekt
kolo3
)
Aby uwidocznić obiekt
kolo3
w jego menu
szukamy metody
changeColor(
string
)
8
15
Argumenty typu
string
Argumentem metody
changeColor(String)
jest łańcuch
znaków. W tym przypadku
BlueJ
pozwala
wybrać jeden z 6 kolorów. Wybieramy np.
”yellow”
Na konsoli pojawia się niewidoczne
dotąd żółte koło (obiekt
kolo3
)
16
Powtórna inspekcja
Wywołujemy inspektora obiektu
kolo
i widzimy, że ma on nowe
wartości pól:
diameter
xPosition
yPosition
isVisible
Pola opisujące obiekty mają najczęściej jeden z trzech
podstawowych typów:
int
String
boolean
9
17
Malarz
– program Java
Dotąd wszystkie operacje na klasach, obiektach i ich parametrach
(wartościach pól) wykonywaliśmy interaktywnie, przy pomocy myszy
i odpowiednich opcji w menu. Czy można te operacje
zaprogramować w języku Java?
W jaki sposób tworzyć obiekty i nadawać im nazwy używając zapisu
w języku Java, a w szczególności jak
Utworzyć obiekt klasy
Circle
i nadać mu nazwę, np.
kolo2
Utworzyć obiekt klasy
Square
i nadać mu nazwę, np.
kwadrat
Jak zaprogramować takie czynności?
Stworzymy w tym celu nową klasę i nazwiemy ją
Malarz
18
Nowa klasa
– Malarz
Otwieramy w
BlueJ
projekt
shapes
i tworzymy nową klasę
o nazwie
Malarz
Następnie zaczynamy edytować
nową klasę
10
19
Klasa Malarz
Po wywołaniu edycji nowej klasy
Malarz
BlueJ
otwiera okno
klasy z tzw. szkieletem klasy.
Kasujemy wszystko z wyjątkiem
definicji
class
Malarz
Oraz nawiasów klamrowych
{
}
Nawiasy obejmują przyszłą treść
tworzonej klasy
20
Co ma zawierać klasa Malarz
zakładamy, że klasa
Malarz
, a więc i obiekty utworzone
z tej klasy powinny:
tworzyć (rysować) obiekty w postaci kół, prostokątów i trójkątów i
nadawać im nazwy
zawierać metodę, np.
rysujDom( )
, która:
utworzy i umieści w odpowiednich miejscach obiekty składowe
tworzące rysunek domu
będzie je mogła powiększać lub zmniejszać
uwidoczni na konsoli poszczególne obiekty
będzie mogła zmieniać barwy elementów rysunku domu
11
21
Tworzenie obiektów
Tworzenie (konstrukcja) obiektów składa się z dwóch kroków:
rejestruje się nazwę obiektu
tworzy się nowy obiekt i zapamiętuje z nadana wcześniej nazwą
zarejestruj nazwę
slonce
dla
jeszcze nieutworzonego obiektu
klasy
Circle
utwórz nowy obiekt klasy
Circle
i nadaj mu nazwę
slonce
Uwaga:
Java rozróżnia wielkość liter, dlatego:
CIRCLE ≠ Circle ≠ circle
Circle slonce
;
slonce = new Circle( );
22
Rejestracja przy tworzeniu
Rejestrację i utworzenie (konstrukcję) obiektu można również
wykonać w jednym kroku. Aby w ten sposób utworzyć nowy obiekt
klasy
Circle
i nadać mu nazwę
slonce
należy napisać:
Circle slonce = new Circle( );
Rejestruj nazwę obiektu
slonce
, który należy do
klasy
Circle
Utwórz nowy obiekt klasy
Circle
12
23
Klasa Malarz z obiektami
Klasa może być już
kompilowana
Można tworzyć obiekty
W czasie kompilacji nie
wystąpiły żadne błędy
24
Malarz
prymitywista
W menu kontekstowym klasy
Malarz
wybieramy opcję
new Malarz(),
tworzymy
nowy obiekt tej klasy i
nadajemy mu nazwę
prymitywista
Następnie wchodzimy do
inspekcji obiektu
prymitywista
13
25
Inspekcja obiektu
prymitywista
Strzałki oznaczają odwołanie do obiektu <object reference>
Podwójne kliknięcie na
link wywołuje okno
inspektora
wskazywanego obiektu
Inspektor wskazuje, że prymitywista ma
pola o nazwach
slonce
,
sciana
,
okno
i
dach
Nie są to liczby, ale obiekty odpowiednio
klas:
Circle
,
Square
,
Square
i
Triangle
26
Malarz może już malować
Aby obiekt klasy Malarz mógł malować należy
klasę wyposażyć w metodę malowania.
Metody języka Java składają się z nagłówka i
ciała
Nagłówek
zawiera:
• typ wyniku – u nas brak –
void
• nazwę metody –
rysujDom
• listę parametrów – u nas pusta
( )
Ciało
zawiera opis czynności, które wykonuje
metoda:
•
slonce.makeVisible();
• slonce.changeColor(
”yellow”);
• slonce.moveHorizontal(100);
• itd...
14
27
Nagłówek metody
Nagłówek metody Javy
void
rysujDom( )
;
Typ wyniku wyprodukowa-
nego (obliczonego) przez
metodę. Jeśli metoda nie
zwraca żadnego wyniku
używa się słowa
void
Nazwa metody
–
zgodnie z konwencją
zaczyna się od małej
litery
Lista parametrów metody,
nawiasów nie można
pominąć, nawet gdy lista
jest pusta
Przykłady nagłówków innych metod
void
rysujAkwarium( )
;
void
makeVisible( )
;
void
changeColor(
String
kolor
)
;
void
moveHorizontal(
int
distance
)
;
28
Ciało metody
Ciało metody
, nazywane też blokiem zawiera następujące
elementy:
1.
Klamrę otwierającą blok
{
2.
Ciąg instrukcji, np.
deklaracje zmiennych
instrukcje przypisania
pętle
wywołania metod np.
slonce.makeVisible( );
....
3.
Klamrę zamykającą blok
}
15
29
Uruchamiamy
prymitywistę
wschód słońca
na kempingu ?
Tworzymy obiekt klasy
Malarz
i
nazywamy go
prymitywista
.
W menu kontekstowym obiektu
prymitywista
znajdujemy
metodę
void rysujDom()
i widzimy ....
Niezupełnie o to nam chodziło, ale na początek i tak nieźle ...
30
Zadanie domowe
Zmodyfikować klasę
Malarz
w taki sposób,
by obiekt tej klasy dysponował metodą wygenerowania
załączonego obrazu