Język Java

Transkrypt

Język Java
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Język programowania Java
Wojciech Rząsa
[email protected]
Katedra Informatyki i Automatyki, Politechnika Rzeszowska
16 kwietnia 2015
Wojciech Rząsa, KIiA PRz
Java
1/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
2/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
3/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
James Gosling, Sun Microsystems
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
James Gosling, Sun Microsystems
Powstał na wzór języków C++ i Smalltalk
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
James Gosling, Sun Microsystems
Powstał na wzór języków C++ i Smalltalk
Maszyna wirtualna
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
James Gosling, Sun Microsystems
Powstał na wzór języków C++ i Smalltalk
Maszyna wirtualna
Maszyna wirtualna, przenośność
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp
Obiektowy język programowania
James Gosling, Sun Microsystems
Powstał na wzór języków C++ i Smalltalk
Maszyna wirtualna
Maszyna wirtualna, przenośność
Silne typowanie (brak automatycznego rzutowania)
Wojciech Rząsa, KIiA PRz
Java
4/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Tworzenie każdego obiektu „dynamicznie”, za pomocą new
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Tworzenie każdego obiektu „dynamicznie”, za pomocą new
Automatyczne zarządzanie pamięcią
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Tworzenie każdego obiektu „dynamicznie”, za pomocą new
Automatyczne zarządzanie pamięcią
Jednokrotne dziedziczenie
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Tworzenie każdego obiektu „dynamicznie”, za pomocą new
Automatyczne zarządzanie pamięcią
Jednokrotne dziedziczenie
Interfejsy
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Java a C++
Brak automatycznej konwersji typów
Brak wskaźników
Zmienne są referencjami
Tworzenie każdego obiektu „dynamicznie”, za pomocą new
Automatyczne zarządzanie pamięcią
Jednokrotne dziedziczenie
Interfejsy
Pakiety zamiast namespace
Wojciech Rząsa, KIiA PRz
Java
5/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Hello world
1
2
3
4
5
public class Hello {
public static void main ( String [] args ) {
System . out . println ( " Hello world " );
}
}
Hello world w Javie, plik Hello.java
Nazwa klasy: Hello, nazwa pliku: Hello.java
Wojciech Rząsa, KIiA PRz
Java
6/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Hello world
1
2
3
4
5
public class Hello {
public static void main ( String [] args ) {
System . out . println ( " Hello world " );
}
}
Hello world w Javie, plik Hello.java
Nazwa klasy: Hello, nazwa pliku: Hello.java
main, jak w C/C++
Wojciech Rząsa, KIiA PRz
Java
6/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Hello world
1
2
3
4
5
public class Hello {
public static void main ( String [] args ) {
System . out . println ( " Hello world " );
}
}
Hello world w Javie, plik Hello.java
Nazwa klasy: Hello, nazwa pliku: Hello.java
main, jak w C/C++
System.out.println do wypisywania. . .
Wojciech Rząsa, KIiA PRz
Java
6/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Hello world
1
2
3
4
5
public class Hello {
public static void main ( String [] args ) {
System . out . println ( " Hello world " );
}
}
Hello world w Javie, plik Hello.java
Nazwa klasy: Hello, nazwa pliku: Hello.java
main, jak w C/C++
System.out.println do wypisywania. . .
Kompilacja: javac Hello.java (utworzy plik Hello.class)
Wojciech Rząsa, KIiA PRz
Java
6/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Hello world
1
2
3
4
5
public class Hello {
public static void main ( String [] args ) {
System . out . println ( " Hello world " );
}
}
Hello world w Javie, plik Hello.java
Nazwa klasy: Hello, nazwa pliku: Hello.java
main, jak w C/C++
System.out.println do wypisywania. . .
Kompilacja: javac Hello.java (utworzy plik Hello.class)
Uruchomienie java Hello
Wojciech Rząsa, KIiA PRz
Java
6/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Środowisko programistyczne (IDE)
Kolorowanie składni
Podpowiadanie
Zarządzane projektem (tworzenie plików, usuwanie itp)
Kompilacja
Uruchomienie
Debugowanie
...
Wojciech Rząsa, KIiA PRz
Java
7/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
8/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Zmienne
1
typ nazwa ;
Składnia deklaracji zmiennej
Wojciech Rząsa, KIiA PRz
Java
9/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Zmienne
1
typ nazwa ;
Składnia deklaracji zmiennej
1
int i ;
Przykład deklaracji zmiennej
Wojciech Rząsa, KIiA PRz
Java
9/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Zmienne
1
typ nazwa ;
Składnia deklaracji zmiennej
1
int i ;
Przykład deklaracji zmiennej
1
typ nazwa = wartosc ;
Składnia inicjalizacji zmiennej
Wojciech Rząsa, KIiA PRz
Java
9/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Zmienne
1
typ nazwa ;
Składnia deklaracji zmiennej
1
int i ;
Przykład deklaracji zmiennej
1
typ nazwa = wartosc ;
Składnia inicjalizacji zmiennej
1
int i = 10;
Przykład inicjalizacji zmiennej
Wojciech Rząsa, KIiA PRz
Java
9/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
long 64 bity, ze znakiem (−263 do 263 − 1)
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
long 64 bity, ze znakiem (−263 do 263 − 1)
float pojedynczej precyzji wg. IEEE 754, 32 bity
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
long 64 bity, ze znakiem (−263 do 263 − 1)
float pojedynczej precyzji wg. IEEE 754, 32 bity
double podwójnej precyzji wg. IEEE 754, 64 bity
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
long 64 bity, ze znakiem (−263 do 263 − 1)
float pojedynczej precyzji wg. IEEE 754, 32 bity
double podwójnej precyzji wg. IEEE 754, 64 bity
boolean true/false
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typy
byte 8 bitów, ze znakiem (-128 do 127)
short 16 bitów, ze znakiem (-32768 do 32767)
int 32 bitów, ze znakiem (−231 do 231 + 1)
long 64 bity, ze znakiem (−263 do 263 − 1)
float pojedynczej precyzji wg. IEEE 754, 32 bity
double podwójnej precyzji wg. IEEE 754, 64 bity
boolean true/false
char znak, 16-bit Unicode
Wojciech Rząsa, KIiA PRz
Java
10/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typ String
Nie jest wbudowany w język
Wojciech Rząsa, KIiA PRz
Java
11/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typ String
Nie jest wbudowany w język
Elementy ułatwiające korzystanie są wbudowane w język
Wojciech Rząsa, KIiA PRz
Java
11/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typ String
Nie jest wbudowany w język
Elementy ułatwiające korzystanie są wbudowane w język
1
2
3
4
5
6
7
String imie = " Jan " ;
String nazwisko = " Kowalski " ;
int wiek = 34;
String intro = imie + " " + nazwisko + " " + wiek ;
System . out . println ( intro );
Przykład użycia String
Wojciech Rząsa, KIiA PRz
Java
11/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Typ String
Nie jest wbudowany w język
Elementy ułatwiające korzystanie są wbudowane w język
1
2
3
4
5
6
7
8
String imie = " Jan " ;
String nazwisko = " Kowalski " ;
float srednia = 4.5567678 f ;
String intro = imie + " " + nazwisko ;
intro = String . format ( " % s ś rednia : %.3 f " , intro , srednia );
System . out . println ( intro );
Przykład użycia String.format
Wojciech Rząsa, KIiA PRz
Java
11/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
12/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Składnia
Oparta na C/C++
Wojciech Rząsa, KIiA PRz
Java
13/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Instrukcja warunkowa
1
2
3
4
5
6
int i = 4;
if ( i % 2 == 0) {
System . out . println ( " Parzyste " );
} else {
System . out . println ( " Nieparzyste " );
}
Instrukcja if
Składnia jak w C/C++
Warunek musi być typu logicznego, nie może być:
if (i % 2)
Wojciech Rząsa, KIiA PRz
Java
14/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Instrukcja wyboru
1
2
3
4
5
6
7
8
9
10
11
12
13
int dzien = 4;
String nazwa ;
switch ( dzien ) {
case 1: nazwa = " niedziela " ;
break ;
case 2: nazwa = " poniedzia ł ek " ;
break ;
case 3: nazwa = " wtorek " ;
break ;
/* ... i tak dalej */
default : nazwa = " ?? " ;
break ;
}
Instrukcja switch
Wojciech Rząsa, KIiA PRz
Java
15/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Pętla for
1
2
3
for ( int i = 0; i < 10; i ++) {
System . out . println ( i );
}
Instrukcja for
Składnia jak w C/C++
Warunek musi być typu logicznego
Wojciech Rząsa, KIiA PRz
Java
16/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Pętla while
1
2
3
4
5
int i = 10;
while ( i > 0) {
System . out . println ( i );
i - -;
}
Instrukcja while
Składnia jak w C/C++
Warunek musi być typu logicznego
Wojciech Rząsa, KIiA PRz
Java
17/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Pętla do while
1
2
3
4
5
int i = 10;
do {
System . out . println ( i );
i - -;
} while ( i > 0);
Instrukcja do while
Składnia jak w C/C++
Warunek musi być typu logicznego
Wojciech Rząsa, KIiA PRz
Java
18/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
19/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Tablice
Mogą przechowywać wiele wartości
Wszystkie wartości muszą być tego samego typu
Do poszczególnych wartości odwołujemy się poprzez jej numer
w tablicy
Numeracja wartości zaczyna się od zera
Mogą być wielowymiarowe
Wojciech Rząsa, KIiA PRz
Java
20/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Tablice
1
float [] oceny ;
Deklaracja zmiennej tablicowej
Wojciech Rząsa, KIiA PRz
Java
21/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Tablice
1
float [] oceny ;
Deklaracja zmiennej tablicowej
1
oceny = new float [30];
Utworzenie zmiennej tablicowej
Wojciech Rząsa, KIiA PRz
Java
21/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Tablice
1
float [] oceny ;
Deklaracja zmiennej tablicowej
1
oceny = new float [30];
Utworzenie zmiennej tablicowej
1
float [] oceny = new float [30];
Deklaracja i utworzenie zmiennej tablicowej
Wojciech Rząsa, KIiA PRz
Java
21/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Tablice – przykład użycia
1
2
3
4
5
6
7
8
9
float [] oceny = new float [30];
for ( int i = 0; i < oceny . length ; i ++) {
oceny [ i ] = i % 4 + 2;
}
for ( int i = 0; i < oceny . length ; i ++) {
System . out . println ( " Ocena : " + oceny [ i ]);
}
Przykład użycia tablicy
Można sprawdzić długość tablicy: tab.length
Przekroczenie rozmiaru: ArrayIndexOutOfBoundsException
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 30
at Template.main(Template.java:10)
Wojciech Rząsa, KIiA PRz
Java
22/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
23/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wypisywanie
System.out.println Wypisywanie ze znakiem nowej linii
System.out.print Wypisywanie
System.out.printf Wypisywanie z formatowaniem
System.out.write Wypisywanie kolejnych bajtów z tablicy
Wojciech Rząsa, KIiA PRz
Java
24/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wczytywanie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java . util . Scanner ;
public class ScannerDemo {
public static void main ( String [] args ) {
Scanner in = new Scanner ( System . in );
int i = in . nextInt ();
// wczytaj inta
String slowo = in . next ();
// wczytaj s ł owo
String linia = in . nextLine (); // wczytaj ca ł ą lini ę
System . out . println ( " int : " + i );
System . out . println ( " slowo : " + slowo );
System . out . println ( " linia : " + linia );
}
}
Wczytywanie z klawiatury za pomocą Scanner
Wojciech Rząsa, KIiA PRz
Java
25/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wczytywanie za pomocą konsoli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java . io . Console ;
public class R e a d P a s s w o r d D e m o {
public static void main ( String [] args ) {
Console console = System . console ();
// wczytaj nazw ę uzytkownika , normalnie
String login = console . readLine ( " Login : " );
// wczytaj has ło , nie pokazuj ą c go
String haslo = new String ( console . readPassword ( " Haslo : " ));
System . out . println ( login + " : " + haslo );
}
}
Wczytywanie z klawiatury za pomocą Console
Obiekt Console nie jest dostępny jeśli uruchomimy program
z IDE!
Trzeba uruchomić z wiersza poleceń systemu operacyjnego!
Wojciech Rząsa, KIiA PRz
Java
26/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
Wstęp
Obiekty i klasy w Javie
Dziedziczenie
Wojciech Rząsa,Interfejsy
KIiA PRz
Java
27/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
W jednym programie: wiele operacji o tej samej nazwie,
polegających na czymś innym
A w życiu?
otwórz drzwi
otwórz plik
otwórz konto bankowe
Operacja otwórz oznacza różne rzeczy, zależnie od tego
na czym ją wykonujemy!
Jak uporządkować operacje i dane, zwłaszcza w dużym
programie?
Wojciech Rząsa, KIiA PRz
Java
28/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Obiekty mogą wysyłać między sobą komunikaty
(współpracować)
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Obiekty mogą wysyłać między sobą komunikaty
(współpracować)
Obiekt po odebraniu komunikatu wykonuje odpowiednią
operację (reaguje)
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Obiekty mogą wysyłać między sobą komunikaty
(współpracować)
Obiekt po odebraniu komunikatu wykonuje odpowiednią
operację (reaguje)
Na przykład:
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Obiekty mogą wysyłać między sobą komunikaty
(współpracować)
Obiekt po odebraniu komunikatu wykonuje odpowiednią
operację (reaguje)
Na przykład:
Obiekt przełożony → mów wykład → wykładowca
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Programowanie obiektowe
Świat składa się z obiektów
Każdy obiekt potrafi wykonywać pewne operacje
Operacje mogą zmieniać stan obiektów
Obiekty mogą wysyłać między sobą komunikaty
(współpracować)
Obiekt po odebraniu komunikatu wykonuje odpowiednią
operację (reaguje)
Na przykład:
Obiekt przełożony → mów wykład → wykładowca
Obiekt wykładowca → zdałeś na 5.0 → student
Wojciech Rząsa, KIiA PRz
Java
29/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . .
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
operacje są zapisywane jako. . .
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
operacje są zapisywane jako. . . funkcje
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
operacje są zapisywane jako. . . funkcje
W programowaniu obiektowym, wewnątrz obiektu
umieszczamy:
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
operacje są zapisywane jako. . . funkcje
W programowaniu obiektowym, wewnątrz obiektu
umieszczamy:
zmienne i nazywamy je polami
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
wykładowca – mów wykład
student – zdałeś na
Mają swój stan (który może się zmieniać)
student – lista ocen
student – humor
W programach:
stan jest zapamiętywany w. . . zmiennych
operacje są zapisywane jako. . . funkcje
W programowaniu obiektowym, wewnątrz obiektu
umieszczamy:
zmienne i nazywamy je polami
funkcje i nazywamy je metodami
Wojciech Rząsa, KIiA PRz
Java
30/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
Wojciech Rząsa, KIiA PRz
Java
31/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
metody (funkcje)
Wojciech Rząsa, KIiA PRz
Java
31/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
metody (funkcje)
Mają swój stan (który może się zmieniać)
Wojciech Rząsa, KIiA PRz
Java
31/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty
Mają swój zestaw operacji (które potrafią wykonać)
metody (funkcje)
Mają swój stan (który może się zmieniać)
pola (zmienne)
Wojciech Rząsa, KIiA PRz
Java
31/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Odpowiadają na te same komunikaty (przedstaw sie)
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Odpowiadają na te same komunikaty (przedstaw sie)
Mają takie same cechy (imie)
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Odpowiadają na te same komunikaty (przedstaw sie)
Mają takie same cechy (imie)
Jak wygodnie tworzyć takie „podobne” obiekty?
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Odpowiadają na te same komunikaty (przedstaw sie)
Mają takie same cechy (imie)
Jak wygodnie tworzyć takie „podobne” obiekty?
Grupy „podobnych” obiektów nazywamy klasami
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Grupy „podobnych” obiektów
Można wyróżnić grupy obiektów, które są do siebie podobne
Potrafią wykonywać te same operacje (przedstaw sie)
Odpowiadają na te same komunikaty (przedstaw sie)
Mają takie same cechy (imie)
Jak wygodnie tworzyć takie „podobne” obiekty?
Grupy „podobnych” obiektów nazywamy klasami
Klasy służą do wygodnego tworzenia „podobnych” obiektów
Wojciech Rząsa, KIiA PRz
Java
32/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
każdy obiekt klasy Osoba ma pole imie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
każdy obiekt klasy Osoba ma pole imie
każdy obiekt klasy Osoba ma takie same metody:
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
każdy obiekt klasy Osoba ma pole imie
każdy obiekt klasy Osoba ma takie same metody:
przywitaj sie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
każdy obiekt klasy Osoba ma pole imie
każdy obiekt klasy Osoba ma takie same metody:
przywitaj sie
nazywasz sie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Klasa pozwala wygodnie tworzyć obiekty
Mówimy, że są to obiekty danej klasy:
jozek to obiekt klasy Osoba
franek to obiekt klasy Osoba
Każdy z obiektów ma swoje własne pola i może je dowolnie
ustawiać
jozek ma swoje własne pole imie
niezależnie od tego franek na swoje pole imie
Obiekty danej klasy mają taką samą listę metod i pól
każdy obiekt klasy Osoba ma pole imie
każdy obiekt klasy Osoba ma takie same metody:
przywitaj sie
nazywasz sie
przedstaw sie
Wojciech Rząsa, KIiA PRz
Java
33/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Obiekty danej klasy mają:
Wojciech Rząsa, KIiA PRz
Java
34/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Obiekty danej klasy mają:
Taki sam zestaw cech
Wojciech Rząsa, KIiA PRz
Java
34/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Obiekty danej klasy mają:
Taki sam zestaw cech
Reagują na taki sam zestaw komunikatów
Wojciech Rząsa, KIiA PRz
Java
34/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa
Obiekty danej klasy mają:
Taki sam zestaw cech
Reagują na taki sam zestaw komunikatów
Potrafią podejmować takie same działania
Wojciech Rząsa, KIiA PRz
Java
34/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa w Javie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Osoba {
// pola , czyli zmienne wewn ą trz klasy
private String imie ;
private String nazwisko ;
// metody , czyli funkcje wewn ą trz klasy
public void nazywasz_sie ( String imie , String nazwisko ) {
this . imie = imie ;
// this . imie -- pole imie
this . nazwisko = nazwisko ; // this . nazwisko -- pole nazwisko
}
public void przywitaj_sie () {
System . out . println ( " Cze ś ć " );
}
public void przedstaw_sie () {
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
}
Wojciech Rząsa, KIiA PRz
Definicja klasy Osoba
Java
35/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Obiekty w Javie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class OsobaDemo {
public static void main ( String [] args ) {
Osoba jozek ;
// referencja do obiektu osoba
jozek = new Osoba (); // utworzenie i zapamietanie
// nowego obiektu
jozek . nazywasz_sie ( " J ó zef " , " Nowak " ); // wywo ł anie metody
// na obiekcie
Osoba franek = new Osoba ();
franek . nazywasz_sie ( " Franciszek " , " Kowalski " );
jozek . przywitaj_sie ();
jozek . przedstaw_sie ();
franek . przywitaj_sie ();
franek . przedstaw_sie ();
}
}
Wojciech Rząsa, KIiA PRz
Użycie obiektów klasy Osoba
Java
36/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasy i obiekty
Nazwy klas z wielkiej litery
Wojciech Rząsa, KIiA PRz
Java
37/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasy i obiekty
Nazwy klas z wielkiej litery
Nazwy zmiennych z małej litery
Wojciech Rząsa, KIiA PRz
Java
37/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasy i obiekty
Nazwy klas z wielkiej litery
Nazwy zmiennych z małej litery
Nazwy pól z małej litery
Wojciech Rząsa, KIiA PRz
Java
37/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasy i obiekty
Nazwy klas z wielkiej litery
Nazwy zmiennych z małej litery
Nazwy pól z małej litery
Nazwy metod z małej litery
Wojciech Rząsa, KIiA PRz
Java
37/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Konstruktor
(Prawie) zwyczajna metoda
Wywoływana w momencie tworzenia obiektu
Pozwala ustawić początkowe wartości pól
Musi się nazywać tak samo jak klasa
Nie zwraca wartości
Wojciech Rząsa, KIiA PRz
Java
38/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa z konstruktorem
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Osoba {
// pola , czyli zmienne wewn ą trz klasy
private String imie ;
private String nazwisko ;
public Osoba ( String imie , String nazwisko ) {
this . imie = imie ; this . nazwisko = nazwisko ;
}
// metody , czyli funkcje wewn ą trz klasy
public void nazywasz_sie ( String imie , String nazwisko ) {
this . imie = imie ;
// this . imie -- pole imie
this . nazwisko = nazwisko ; // this . nazwisko -- pole nazwisko
}
public void przywitaj_sie () {
System . out . println ( " Cze ś ć " );
}
public void przedstaw_sie () {
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
}
Wojciech Rząsa, KIiA PRz
Java
39/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Użycie klasy z konstruktorem
1
2
3
4
5
6
7
8
9
10
11
12
public class OsobaDemo {
public static void main ( String [] args ) {
Osoba jozek = new Osoba ( " J ó zef " , " Nowak " );
Osoba franek = new Osoba ( " Franciszek " , " Kowalski " );
jozek . przywitaj_sie ();
jozek . przedstaw_sie ();
franek . przywitaj_sie ();
franek . przedstaw_sie ();
}
}
Użycie klasy Osoba z konstruktorem
Wojciech Rząsa, KIiA PRz
Java
40/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik –
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Można utworzyć osobne klasy:
Student
Pracownik
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Można utworzyć osobne klasy:
Student
Pracownik
Każdej z tych klas dodać wszystkie cechy, które ma Osoba
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Można utworzyć osobne klasy:
Student
Pracownik
Każdej z tych klas dodać wszystkie cechy, które ma Osoba
Mówimy, że
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Można utworzyć osobne klasy:
Student
Pracownik
Każdej z tych klas dodać wszystkie cechy, które ma Osoba
Mówimy, że
klasa Student dziedziczy po klasie Osoba
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Różne klasy mogą mieć wspólne cechy
Osoba
Student
Pracownik uczelni
Ale mają też cechy, ktore je różnią
Student – lista ocen
Pracownik – tytuł! ;-)
Można utworzyć osobne klasy:
Student
Pracownik
Każdej z tych klas dodać wszystkie cechy, które ma Osoba
Mówimy, że
klasa Student dziedziczy po klasie Osoba
klasa Pracownik dziedziczy po klasie Osoba
Wojciech Rząsa, KIiA PRz
Java
41/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Student i Pracownik
1
2
3
4
public class Student extends Osoba {
private float oceny [];
private int ile_ocen ;
}
Klasa Student dziedzicząca po klasie Osoba
1
2
3
public class Pracownik extends Osoba {
private String tytul ;
}
Klasa Pracownik dziedzicząca po klasie Osoba
Wojciech Rząsa, KIiA PRz
Java
42/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa dziedzicząca
Dziedziczy pola i metody klasy nadrzędnej
(W Javie) nie dziedziczy konstruktorów
Może dodać swoje pola i metody
Może nadpisać odziedziczone pola i metody
Wojciech Rząsa, KIiA PRz
Java
43/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Kompletna klasa Student
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Student extends Osoba {
private float oceny [];
private int ile_ocen ;
public Student ( String imie , String nazwisko ) {
super ( imie , nazwisko );
oceny = new float [50];
ile_ocen = 0;
}
public void zdales_na ( float ocena ) {
oceny [ ile_ocen ] = ocena ;
ile_ocen ++;
}
}
Klasa Student z własnymi polami i metodami
Wojciech Rząsa, KIiA PRz
Java
44/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Kompletna klasa Pracownik
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Pracownik extends Osoba {
private String tytul ;
public Pracownik ( String imie , String nazwisko ) {
super ( imie , nazwisko );
tytul = " " ;
}
public Pracownik ( String tytul , String imie , String nazwisko ) {
super ( imie , nazwisko );
this . tytul = tytul ;
}
}
Klasa Pracownik z własnymi polami i metodami
Wojciech Rząsa, KIiA PRz
Java
45/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Kompletna klasa Pracownik
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Pracownik extends Osoba {
private String tytul ;
public Pracownik ( String imie , String nazwisko ) {
super ( imie , nazwisko );
tytul = " " ;
}
public Pracownik ( String tytul , String imie , String nazwisko ) {
super ( imie , nazwisko );
this . tytul = tytul ;
}
// To nie zadzia ł a : imie i nazwisko s ą prywatne !
public void przedstaw_sie () {
System . out . println ( " Jestem " + tytul + " "
+ imie + " " + nazwisko );
}
}
Klasa Pracownik nie ma dostępu do prywatnych pól klasy Osoba
Wojciech Rząsa, KIiA PRz
Java
46/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dostęp do pól i metod
private dostęp tylko dla tej klasy
public dostep dla wszystkich
protected dostęp tylko dla tej klasy i tych, które z niej
dziedziczą
(brak modyfikatora) – o tym kiedy indziej ;)
Wojciech Rząsa, KIiA PRz
Java
47/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Klasa z polami protected
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Osoba {
// pola , czyli zmienne wewn ą trz klasy
protected String imie ;
protected String nazwisko ;
public Osoba ( String imie , String nazwisko ) {
this . imie = imie ; this . nazwisko = nazwisko ;
}
// metody , czyli funkcje wewn ą trz klasy
public void nazywasz_sie ( String imie , String nazwisko ) {
this . imie = imie ;
// this . imie -- pole imie
this . nazwisko = nazwisko ; // this . nazwisko -- pole nazwisko
}
public void przywitaj_sie () {
System . out . println ( " Cze ś ć " );
}
public void przedstaw_sie () {
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
}
Wojciech Rząsa, KIiA PRz
Java
48/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Użycie klas dziedziczących i dziedziczonych – zmienne
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class OsobaDemo {
public static void main ( String [] args ) {
Osoba pan_jozek = new Osoba ( " J ó zef " , " Nowak " );
Pracownik prof =
new Pracownik ( " prof . dr hab . " , " Krzysztof " , " Kowalski " );
Student tomek = new Student ( " Tomasz " , " Kwiatkowski " );
Osoba [] ludzie = new Osoba [3];
ludzie [0] = tomek ;
ludzie [1] = prof ;
ludzie [2] = pan_jozek ;
for ( int i = 0; i < ludzie . length ; i ++) {
ludzie [ i ]. przedstaw_sie ();
}
}
}
Wojciech Rząsa, KIiA PRz
Użycie klas dziedziczących po klasie Osoba
Java
49/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Użycie klas dziedziczących i dziedziczonych – metody
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class OsobaDemo {
static void p r z e d s t a w _ c z l o w i e k a ( Osoba o ) {
o . przedstaw_sie ();
}
public static void main ( String [] args ) {
Osoba pan_jozek = new Osoba ( " J ó zef " , " Nowak " );
Pracownik prof =
new Pracownik ( " prof . dr hab . " , " Krzysztof " , " Kowalski " );
Student tomek = new Student ( " Tomasz " , " Kwiatkowski " );
p r z e d s t a w _ c z l o w i e k a ( pan_jozek );
p r z e d s t a w _ c z l o w i e k a ( prof );
}
}
Użycie klas dziedziczących po klasie Osoba
Wojciech Rząsa, KIiA PRz
Java
50/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Dziedziczenie
Pozwala napisać kod raz, używać wiele razy
W Javie dziedziczyć można tylko po jednej klasie bazowej
Po danej klasie może dziedziczyć wiele klas. . .
. . . z których znowu dziedziczyć mogą kolejne klasy
Wojciech Rząsa, KIiA PRz
Java
51/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Interfejsy
Niezależnie od dziedziczenia
Klasa może implementować wiele interfejsów
Interfejs deklaruje metody, ale ich nie implementuje
Nie da się utworzyć obiektu z interfejsu
Wojciech Rząsa, KIiA PRz
Java
52/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Interfejsy
Niezależnie od dziedziczenia
Klasa może implementować wiele interfejsów
Interfejs deklaruje metody, ale ich nie implementuje
Nie da się utworzyć obiektu z interfejsu
1
2
3
4
interface Mieszkaniec {
public void wypiszAdres ();
public String podajAdres ();
}
Definicja interfejsu Mieszkaniec
Wojciech Rząsa, KIiA PRz
Java
52/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Implementacja interfejsu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Student extends Osoba implements Mieszkaniec {
private float oceny [];
private int ile_ocen ;
public Student ( String imie , String nazwisko ) {
super ( imie , nazwisko );
oceny = new float [50];
ile_ocen = 0;
}
public void zdales_na ( float ocena ) {
oceny [ ile_ocen ] = ocena ;
ile_ocen ++;
}
public String podajAdres () {
return " Akademik " ;
}
public void wypiszAdres () {
System . out . println ( podajAdres ());
}
}
Wojciech Rząsa, KIiA PRz
Java
53/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Implementacja interfejsu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Pracownik extends Osoba implements Mieszkaniec {
private String tytul ;
/*
* (...)
* tu si ę nic nie zmienia
* (...)
*/
public String podajAdres () {
return " Moja Willa ! " ;
}
public void wypiszAdres () {
System . out . println ( podajAdres ());
}
}
Klasa Pracownik implementująca interfejs Mieszkaniec
Wojciech Rząsa, KIiA PRz
Java
54/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wstęp W Javie Dziedziczenie Interfejsy
Wykorzystanie interfejsu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class M ie sz ka n ie cD em o {
public static void main ( String [] args ) {
Osoba pan_jozek = new Osoba ( " J ó zef " , " Nowak " );
Pracownik prof =
new Pracownik ( " prof . dr hab . " , " Krzysztof " , " Kowalski " );
Student tomek = new Student ( " Tomasz " , " Kwiatkowski " );
Mieszkaniec [] ludzie = new Mieszkaniec [3];
ludzie [0] = tomek ;
ludzie [1] = prof ;
// ludzie [2] = pan_jozek ; tego nie mo ż na zrobi ć !
for ( int i = 0; i < ludzie . length ; i ++) {
ludzie [ i ]. wypiszAdres (); // b ł ą d dla i == 2
}
}
}
Użycie klas implementujących interfejs Mieszkaniec
Wojciech Rząsa, KIiA PRz
Java
55/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Plan
1 Wstęp
2 Zmienne i typy
3 Instrukcje sterujące
4 Tablice
5 Wypisywanie i wczytywanie
6 Programowanie obiektowe
7 Wyjątki – obsługa błędów
Wojciech Rząsa, KIiA PRz
Java
56/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wyjątek jest obiektem
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wyjątek jest obiektem
Wyjątek może być przechwycony
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wyjątek jest obiektem
Wyjątek może być przechwycony
Nieprzechwycony wyjątek powoduje zakończenie programu
Exception in thread "main" java.lang.NullPointerException
at MieszkaniecDemo.main(mainMieszkaniecDemo.java:15)
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wyjątek jest obiektem
Wyjątek może być przechwycony
Nieprzechwycony wyjątek powoduje zakończenie programu
Exception in thread "main" java.lang.NullPointerException
at MieszkaniecDemo.main(mainMieszkaniecDemo.java:15)
Dokumentacja do klas i metod mówi jakie wyjątki mogą one
generować
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Wyjątki
Służą do obsługi błędów
Program generuje wyjątek w przypadku błędu
Wyjątek jest obiektem
Wyjątek może być przechwycony
Nieprzechwycony wyjątek powoduje zakończenie programu
Exception in thread "main" java.lang.NullPointerException
at MieszkaniecDemo.main(mainMieszkaniecDemo.java:15)
Dokumentacja do klas i metod mówi jakie wyjątki mogą one
generować
Java może zażądać przechwycenia wyjątku w programie
Wojciech Rząsa, KIiA PRz
Java
57/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątku
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class M ie sz ka n ie cD em o {
public static void main ( String [] args ) {
Osoba pan_jozek = new Osoba ( " J ó zef " , " Nowak " );
Pracownik prof =
new Pracownik ( " prof . dr hab . " , " Krzysztof " , " Kowalski " );
Student tomek = new Student ( " Tomasz " , " Kwiatkowski " );
Mieszkaniec [] ludzie = new Mieszkaniec [3];
ludzie [0] = tomek ;
ludzie [1] = prof ;
// ludzie [2] = pan_jozek ; tego nie mo ż na zrobi ć !
try {
for ( int i = 0; i < ludzie . length ; i ++) {
ludzie [ i ]. wypiszAdres ();
}
} catch ( N u l l P o i n t e r E x c e p t i o n e ) {
System . out . println ( " Z ł apa ł em : " + e
+ " tablica nie jest wype ł niona !? " );
}
}
}
Wojciech Rząsa, KIiA PRz
Java
58/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątku – stack trace
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class M ie sz ka n ie cD em o {
public static void main ( String [] args ) {
Osoba pan_jozek = new Osoba ( " J ó zef " , " Nowak " );
Pracownik prof =
new Pracownik ( " prof . dr hab . " , " Krzysztof " , " Kowalski " );
Student tomek = new Student ( " Tomasz " , " Kwiatkowski " );
Mieszkaniec [] ludzie = new Mieszkaniec [3];
ludzie [0] = tomek ;
ludzie [1] = prof ;
// ludzie [2] = pan_jozek ; tego nie mo ż na zrobi ć !
try {
for ( int i = 0; i < ludzie . length ; i ++) {
ludzie [ i ]. wypiszAdres ();
}
} catch ( N u l l P o i n t e r E x c e p t i o n e ) {
e . p ri nt St a ck Tr ac e ();
}
}
}
Wojciech Rząsa, KIiA PRz
Java
59/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątku – stack trace
java.lang.NullPointerException
at MieszkaniecDemo.main(MieszkaniecDemo.java:16)
Wojciech Rząsa, KIiA PRz
Java
60/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątków – uwagi
catch przechwyci tylko wyjątek odpowiedniej klasy
Wojciech Rząsa, KIiA PRz
Java
61/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątków – uwagi
catch przechwyci tylko wyjątek odpowiedniej klasy
Po jednym try może być wiele catch dla różnych klas
wyjątków
Wojciech Rząsa, KIiA PRz
Java
61/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątków – uwagi
catch przechwyci tylko wyjątek odpowiedniej klasy
Po jednym try może być wiele catch dla różnych klas
wyjątków
Można użyć bloku finally, który wykona się zawsze,
niezależnie od wyjątków
Wojciech Rząsa, KIiA PRz
Java
61/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Obsługa wyjątków – uwagi
catch przechwyci tylko wyjątek odpowiedniej klasy
Po jednym try może być wiele catch dla różnych klas
wyjątków
Można użyć bloku finally, który wykona się zawsze,
niezależnie od wyjątków
Metoda może deklarować, że generuje wyjątek pewnej klasy
(nawet jeśli w rzeczywistości tego nie robi)
1
2
3
public void przedstaw_sie () throws N a m e N o t S e t E x c e p t i o n {
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
Metoda może wygenerować wyjątek
Wojciech Rząsa, KIiA PRz
Java
61/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Generowanie wyjątku
1
2
3
4
5
6
public void przedstaw_sie () {
if ( imie == null || nazwisko == null ) {
throw new R u n t i m e E x c e p t i o n ( " name not known ! " );
}
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
Generowanie wyjątku
Własny wyjątek: klasa dziedzicząca po Exception lub
RuntimeException
Wojciech Rząsa, KIiA PRz
Java
62/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Generowanie wyjątku
1
2
3
4
5
6
public void przedstaw_sie () {
if ( imie == null || nazwisko == null ) {
throw new R u n t i m e E x c e p t i o n ( " name not known ! " );
}
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
Generowanie wyjątku
Własny wyjątek: klasa dziedzicząca po Exception lub
RuntimeException
Metoda generująca RuntimeException lub pochodny nie
musi go deklarować
Wojciech Rząsa, KIiA PRz
Java
62/62
Wstęp Zmienne Sterowanie Tablice IO OOP Wyjątki
Generowanie wyjątku
1
2
3
4
5
6
public void przedstaw_sie () {
if ( imie == null || nazwisko == null ) {
throw new R u n t i m e E x c e p t i o n ( " name not known ! " );
}
System . out . println ( " Jestem " + imie + " " + nazwisko );
}
Generowanie wyjątku
Własny wyjątek: klasa dziedzicząca po Exception lub
RuntimeException
Metoda generująca RuntimeException lub pochodny nie
musi go deklarować
Metoda generująca Exception lub pochodny musi go
deklarować w nagłówku
Wojciech Rząsa, KIiA PRz
Java
62/62