background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Definicje

 

Java – środowisko programistyczne 
zorientowane obiektowo do tworzenia 
aplikacji desktopowych, sieciowych i apletów 
na strony WWW.

Sercem platformy JSE jest maszyna 
wirtualna Javy zwana Java Virtual Machine 
(JVM) do uruchamiania gotowych aplikacji.

Język obiektowy-> wszystkie zapisy składają 
się z klas i obiektów

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Podstawowe pojęcia:

 

Klasa

 definiuje zestaw 

Metod

 i 

Pól

 dla swoich 

Obiektów

. Przykładem klasy 

może być samochód. Może on podejmować różne działania np. jechać i ma 

pewne właściwości np. kolor. Jest jednak abstrakcyjny, mówiąc inaczej 

"nienamacalny". Jeżeli mówimy o klasie Samochód to oznacza, że mówimy o 

jakimś samochodzie. 

Ponieważ program zawiera wiele klas  musimy wiedzieć, która jest klasą 

główną: główną jest klasa publiczna zawierająca metodę 

main()

Ogólny wzór definicji klasy w Javie wygląda w następujący sposób:

[modyfikator dostępu] class NazwaKlasy {

 

 // definicja pól i metod

}

Nasz wzorcowy samochód:

public class Samochod {

   public 

Color

 kolor = new Color(255,255,255); // pole kolor określa 

kolor samochodu

   public void jedzie(){

      //kod odpowiedzialny za jazdę samochodu

   }   

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Podstawowe pojęcia:

 

Obiekt

 - byt fizyczny stanowiący instancję klasy.

Obiekt jest fizyczną "manifestacją" Klasy. 

Oznacza to że ma własne miejsce w pamięci komputera i 
możemy nim manipulować. Jeżeli mówimy o obiekcie samochód 
będącym instancją Klasy Samochód to oznacza, że mówimy o 
konkretnym samochodzie.

Obiekt definiujemy jako Zmienną. 

Zmienna

 - byt fizyczny o którym mówimy że ma wartość.

Przez pojęcie zmiennej w Javie rozumiemy referencję, 
wskazanie, do określonego miejsca w pamięci komputera. 
Zmienne reprezentują dane i pozwalają za swoim 

pośrednictwem nimi manipulować.

 

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Podstawowe pojęcia:

 

Stała

 - rodzaj zmiennej, której wartość nie podlega 

modyfikacji.

Stała to zmienna, która po nadaniu jej wartości nie może 

być już zmieniona. Zazwyczaj tej konstrukcji używa się do 

definiowania np. ustawień. Chcąc uzyskać taki efekt należy 

użyć słowa kluczowego 

final

.

Metoda

 - działanie, które mogą podjąć 

Obiekty

 danej Klasy.

Metoda określa Działanie. Dlatego najczęściej stosuje się 

do jej nazwania czasowniki. 

samochód.jedzie() - jedzie() to metoda, działanie.

 

Metody wywołujemy za pomocą znaku „

.

” po nazwie 

zmiennej.

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Podstawowe pojęcia:

 

Konstruktor

 - to specyficzna metoda wywoływana by stworzyć 

Obiekt

.

Konstruktor jest wywoływany za każdym razem gdy tworzony jest 

nowy obiekt. Można go traktować jako specyficzną metodę, która 

zwraca nową instancję klasy, ale nie ma tego wpisanego w 

sygnaturze. 

Konstruktor może przyjmować parametry. Konstruktor 

bezparametrowy nazywany jest czasami konstruktorem domyślnym 

ponieważ, jeżeli nie zdefiniowano w klasie żadnego konstruktora to 

kompilator umieści w niej konstruktor bezparametrowy. 

Jeżeli zdefiniujemy w klasie choć jeden konstruktor z parametrami 

to kompilator nie wygeneruje konstruktora domyślnego. Musimy go 

sami zdefiniować.

Pole

 - właściwość 

Obiektu

 danej Klasy.

Samochód może mieć kolor. Pole Klasy rozumiemy właściwość lub 

relację MA. Pole jest zmienną która należy do klasy. 

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Modyfikatory dostępu:

 

Publiczny - określany jest słowem kluczowym 

public

Oznacza iż do danej metody, pola, definicji klasy i 

interfejsu ma dostęp każdy obiekt w uniwersum javy 

(JU). Dostęp ten nie jest uzależniony o tego w jakim 

pakiecie znajduje się udostępniana własność i czy to 

jest ten sam pakiet co pakiet obiektu z którego 

pochodzi żądanie. 

Prywatny - jest przeciwieństwem modyfikatora 

publicznego. Pola, metody, klasy i interfejsy 

oznaczone słowem 

private

 są całkowicie niewidoczne 

poza definicją swojego właściciela.

Żaden obiekt w JU nie będzie wstanie odwołać się do 

zawartości PrywatnaKlasa. Bardzo istotnym faktem 

jest to, że klasa znajdująca się na najwyższym 

poziomie nie może być prywatna.  

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Jedynym dowolnym elementem jest nazwa programu:

public class Program {

 

public static void main (String args[]) 

{  
// definicja pól i metod

}

}

Nazwa programu jest pisana zawsze wielką literą, nie może 

rozpoczynać się cyfrą, zawierać znaku spacji, a także polskich 

liter.

Nie może też być jednym ze słów kluczowychjęzyka Java (np. 

class, public)

Pisanie programu rozpoczynamy od podania słowa kluczowego 

class 

oznaczającego, że budujemy klasę.

Zaraz po nim umieszczamy nazwę programu, a przed nim 

modyfikator dostępu 

public

Podstawowe zasady: 

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public class Program {

 

public static void main (String args[]) 

{  
// definicja pól i metod

}

}

Po nazwie programu stosujemy nawias kalmrowy otwierający i 

zamykający. W środku znajduje się 

ciało klasy

.

Klasa główna musi zawierać metodę 

main()

. Poprzedzona 

modyfikatorem 

public

 oraz specyfikatorem 

static

.

void

 oznacza, że metoda nie zwraca żadnych wartości.

Po nazwie w zwykłych nawiasach argument 

String args[]

. Dzięki 

niemu będzie można przekazywać w postaci tekstu argumenty do 

przetworzenia.

Po nawiasach zwykłych stosujemy nawias klamrowy otwierający i 

zamykający. Jego wnętrze to ciało metody 

main()

.

Podstawowe zasady: 

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Wyróżnia się dwa rodzaje komentarzy: 

Liniowy:

// główna klasa programu:

public class Program {

//główna metoda programu
 

public static void main (String args[]) 

{  
// definicja pól i metod

}

}

Blokowy:

/* główna klasa aplikacji
o nazwie Program: */

public class Program {

 

public static void main (String args[]) 

{  
// definicja pól i metod

}

Komentarze 

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Instrukcje sterujące

W momencie  gdy chcemy, aby program dokonał wyboru jednej z 

dróg na podstawie prawdziwości jakiegoś warunku logicznego 

możemy użyć jednej z dwóch instrukcji sterujących. Jeżeli chcemy, 

aby wybór został dokonany na podstawie stanu obiektu możemy użyć 

przełącznika - switch.

Instrukcja 

if

 / 

if else

Najprostszą instrukcją warunkową jest instrukcja if:

if

 (warunek_logiczny){

   //instrukcje wykonane jeżeli warunek jest PRAWDZIWY

}

odmianą tej instrukcji jest instrukcja 

if else

:

if(warunek_logiczny){

   //instrukcje wykonane jeżeli warunek jest PRAWDZIWY

}

else{

   //instrukcje wykonane jeżeli warunek jest FAŁSZYWY

}

Instrukcje sterujące

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

instrukcje można zagłębiać:

if

(warunek_logiczny1){

   

if

(warunek_logiczny2){

      

//instrukcje wykonane jeżeli warunek2 jest 

PRAWDZIWY

   

}

}

oraz dokonywać wielokrotnego wyboru:

if

(warunek_logiczny1){

   //instrukcje wykonane jeżeli warunek1 jest PRAWDZIWY

}

else if

(warunek_logiczny2){

   //instrukcje wykonane jeżeli warunek2 jest PRAWDZIWY

}

else

{

   //instrukcje wykonane jeżeli warunek1 i warunek 2 są 

FAŁSZYWE

Instrukcje sterujące

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Pętle

Jeżeli chcemy wykonać jakiś fragment kodu wielokrotnie to możemy 

wypisać go explicite:

System.out.println(1);

System.out.println(2);

System.out.println(3);

Takie rozwiązanie jest jednak złe. Co jeżeli chcemy wypisać np. 

wszystkie posty z forum? Jest tego trochę. W dodatku liczba ta wciąż 

rośnie więc w momencie uruchomienia kodu na pewno nie będzie tam 

ostatnich postów. Rozwiązaniem tego problemu jest specjalna 

instrukcja języka - Pętla. Ogólna zasada działania pętli jest bardzo 

prosta i można ją ująć na trzy sposoby:

WYKONAJ POLECENIE N-KROTNIE

lub

WYKONAJ POLECENIE DOPÓKI SPEŁNIONY JEST WARUNEK

lub

WYKONAJ POLECENIE DLA KAŻDEGO ELEMENTU ZBIORU B

Pętle

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Pętla for
Jest to pętla policzalna, czyli taka o której możemy 

powiedzieć iż wykona się określoną liczbę razy. Ogólna 

składnia pętli for wygląda w następujący sposób:

for

 (int i = 0; warunek; krok){

        

//instrukcja

}

Uwagi:

Zmienną 

i

 nazywamy Indeksem Pętli 

Indeks może być dowolnym typem prostym poza boolean. Typ char 

ograniczony jest do 65535 

Warunek może być dowolnym zdaniem logicznym, należy jednak 

zwrócić uwagę by nie była to tautologia. Otrzymamy wtedy pętle 

nieskończoną 

Krok pętli może być dowolny jednak tak samo jak w przypadku 

warunku trzeba uważać na zapętlenie się programu.

Pętla 

for

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Gdzie należy używać pętli for? 
Pętla ta najlepiej sprawdza się gdy chcemy wykonać jakąś 
operację na wszystkich elementach tablicy. Jest naturalną 
i najbardziej czytelną dla tego typu problemów:

int[] a = new int[] { 1, 2, 3 };

for

 (int i = 0; i < a.length; i++) {

        System.out.println(a[i]);
}

Pętla 

for

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Pętle while i do while
Pętle niepoliczalne, czyli takie o których nie 

możemy powiedzieć ile razy się wykonają. 
Ich składnia jest następująca:

while

(warunekLogiczny){

   

//instrukcja

}

/*---------*/

do

{

   

//instrukcja

while

(warunekLogiczny)

Uwagi:

warunek musi być zmienną boolean lub obiektem 

klasy java.lang.Boolean.

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Obie te konstrukcje są bardzo podobne do siebie. Główna różnica 

polega na tym iż w pętli 

while

 warunek jest sprawdzany przed 

wykonaniem instrukcji, a w pętli 

do while

 po wykonaniu 

instrukcji. Oznacza to, że pętla do while wykona się co najmniej 

jeden raz. Poniższy przykład ilustruje różnicę:

int i = 0;

while

 (i < 1) {

        

System.out.println("while " + i);

        

i++;

}

do

 {

        

System.out.println("do while " + i);

        

i++;

while 

(i < 1);

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

Druga pętla wykona się pomimo iż warunek, 1 < 1, nie jest 

prawdziwy.

Kiedy używać? Najczęściej pętla while jest wykorzystywana do 

nasłuchiwania. 

Polega to na stworzeniu nieskończonej pętli, najczęściej podając 

jako argument słowo true, której zadaniem jest wykonywanie 

danego kodu nasłuchującego. Prosty szablon animacji:

while

(animuj){

    //kod animacji

}

Dopóki flaga animuj jest prawdziwa wykonywana jest animacja. 

Podobnie ma się sprawa z prostymi serwerami które nasłuchują 

w ten sposób na portach. 

Pętla 

while

 i 

do while

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public class KlasaA 

{

public static void main(String[] args)

{

//program drukuje zadany napis

System.out.print("

Witaj na zajęciach z JAVY

");

}

}

Zadania

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

import java.util.*;

public class wypisz_date

 {

public static void main(String[] args) 

{

//program drukuje dzisiejsza date

Date dzisDzien = new Date();

System.out.println("Dzisiaj jest: " + dzisDzien);

}

}

Zadania

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public class KlasaA 

{

public static void main(String[] args)

{

//program który sprawdza czy podane imie jest zgodne z wzorcem

System.out.print("

Podaj imie:

 ");

Scanner wejscie1 = new Scanner(System.in);

String imie = wejscie1.nextLine();

System.out.println(imie.length());

if

(imie.toLowerCase().equals("olek"))

{

System.out.println("OK");

}

else

{

System.out.println("zle");

}

}

Zadania

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public static void main(String[] args)

{

//odliczanie od 1 co trzecią liczbę, przez 30 razy, na koncu komunikat 'koniec'

 

for

(int i=1, k=1; k<=30; k++, i=i+3)

{

System.out.println(i);

}

System.out.println("

koniec

");

int k=30;

int i=1;

********************************************

while

(k>0)

{

System.out.println(i);

i = i+3;

k--;

}

System.out.println("

koniec

");

}

Zadania

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public static void main(String[] args)

{

//pobranie liczby od uzytkownika, jezeli jest od 0 do 10 to napisac 'ok'

//jezeli mniejsza od 0 to napisac 'za malo'

//jezeli wieksza od 10 'za duzo'

//jezeli nie podano liczby - 'podaj liczbe'

boolean koniec=true;

while

(koniec)

{

System.out.print("Podaj liczbe: ");

Scanner wejscie1 = new Scanner(System.in);

String wej = wejscie1.nextLine();

int liczba = Integer.parseInt(wej);

if

(liczba < 0)

{

System.out.println("Za malo");

}

else

 if(liczba < 10)

{

System.out.println("OK");

koniec = false;

}

else

{

System.out.println("Za duzo");

}

}

}

background image

      Aleksander Skała

Kraków  27 kwietnia 2010 r.

public static void main(String[] args)

{

//program obliczający 'podatek'

//pobranie liczby od uzytkownika

//jezeli mniej niz 6000 to zwraca 0

//podatek w przedziale 6000 - 20000  - 10%

//w przedziale 20000-40000 - 20%

//powyzej - 40%

while

(true)

{

System.out.print("Podaj liczbe: ");

Scanner wejscie1 = new Scanner(System.in);

double zarobki = wejscie1.nextFloat();

if

(zarobki < 6000)

{

System.out.println("0");

}

else if

(zarobki < 20000)

{

double podatek = (zarobki - 6000)*0.2;

System.out.println(podatek);

}

else if

(zarobki < 40000)

{

double podatek = (zarobki - 20000)*0.3;

System.out.println(podatek);

}

else

{

double podatek = (zarobki - 40000)*0.4;

System.out.println(podatek);

}


Document Outline