JAVA- wykład 2 Treści prezentowane w wykładzie zostały oparte o: ● Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 ● C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2008 ● A. Zoła, Programowanie w języku Java, 2004 http://fatcat.ftj.agh.edu.pl/~palka/public/java_pl.pdf
Barteczko, JAVA Programowanie praktyczne od podstaw, PWN,
2014
C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice
2008
A. Zoa, Programowanie w jzyku Java, 2004
http://fatcat.ftj.agh.edu.pl/~palka/public/java_pl.pdf
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 2
1. Klasy i obiekty w Javie Definiowanie klasy jest równoznaczne z
tworzeniem wzorca (przepisu) danego obiektu, który umoliwia
tworzenie obiektów tej klasy.
[atrybutyDostepu] class NazwaKlasy [extends NazwaNadklasy]
[implements NazwyInterfejsów]
{//ciao klasy tj.
//definicje skadowych klasy:
}
public (publiczny)-moliwo dostpu z dowolnej klasy
protected (chroniony)-moliwo dostpu z kadej klasy pochodnej lub
klas nalecych do tego samego pakietu
private (prywatny)-moliwo dostpu wycznie w danej klasie
dostp domylny (bez podanego specyfikatora dostpu)- moliwo dostpu
wycznie z klas nalecych do tego samego pakietu
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 3
POLA UWAGA: w pliku ródowym moe wystpowa tylko jedna klasa
publiczna i jeli wystpuje, to plik musi mie tak sam nazw jak ta
klasa, z uwzgldnieniem wielkoci liter.
W ciele klasy definiowane s skadniki klasy, tj. zmienne (pola) i
metody. Pola okrelaj z jakich elementów skadaj si poszczególne
obiekty klasy, za metody okrelaj dziaania, które mona na nich
wykonywa.
DEFINIOWANIE PÓL KLASY
Przykad
METODY
Przy tworzeniu obiektów pola klasy zawsze uzyskuj pocztkowe,
domylne wartoci (zerowe)
DEFINIOWANIE METOD KLASY
[public ]class NazwaKlasy{
}
}
METODY
Lista parametrów zawiera rozdzielone przecinkami deklaracje
parametrów, które metoda otrzymuje przy wywoaniu.
Jeli metoda zwraca wynik, to w definicji okrelamy konkretny
typ_wyniku i zakoczenie jej dziaania powinno nastpi na skutek
instrukcji return [wyraenie]; zwracajcej dane typu_wyniku, jeli nie
zwraca adnego wyniku, to jej typ_wyniku okrelamy sowem kluczowym
void (zakoczenie metody nastpuje po dotarciu do ostatniego nawiasu
„}” lub” instrukcji return;).
W Javie argumenty przekazywane s metodom wycznie przez warto, tj. w
metodzie odwoujemy si do kopii argumentu.
Metody statyczne (static) nie s wywoywane na rzecz obiektów, mog
zatem by wywoywane nawet, gdy nie istnieje aden obiekt danej
klasy.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 6
KONSTRUKTORY Konstruktor suy gównie do inicjowania wartoci pól
obiektów.
Konstruktor ma nazw jak nazwa klasy i nie ma adnego typu
wyniku.
DEFINIOWANIE KONSTRUKTORÓW
Konstruktory zawsze s wywoywane za pomoc wyraenia new : NazwaKlasy
tworzonyObiekt = new NazwaKlasy(parametryKonstruktora)
Jeli w klasie nie zdefiniowano adnego konstruktora, to do definicji
klasy automatycznie dodawany jest konstruktor bezparametrowy (który
nie robi nic).
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 7
KONSTRUKTORY c.d.
a=x;b=y;//nadaje polom a i b, wartoci
//przekazane jako argumenty konstruktora
}
}
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 8
SKADOWE STATYCZNE
Skadowe (pola i metody) niestatyczne (instancyjne) zawsze wi si z
istnieniem obiektu danej klasy
Skadowe statyczne (klasowe) tzn. ze specyfikatorem static
nie dotycz obiektów, ale caej klasy – s wspólne dla wszystkich
obiektów tej klasy
mog by uywane nawet wtedy, gdy nie istnieje aden obiekt klasy
do skadowych statycznych odwoujemy si
NazwaKlasy.nazwaSkadowej
PRZYKADY
metoda main – musi by statyczna poniewa od niej zaczyna si
wykonywanie programu, a w tym momencie nie istnieje jeszcze aden
obiekt.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 9
SKADOWE STATYCZNE c.d.
W klasie System (dostarczanej jako klasa standardowa) jest staa
statyczna out (obiekt klasy PrintStream oznaczajcy standardowe
wyjcie)
public class System{
. . .
}
W klasie PrintStream (jedna z klas standardowych) zdefiniowane s
metody println, wypisujce do strumienia wyjciowego -PrintStream
podane argumenty
public class PrintStream{
SKADOWE STATYCZNE c.d.
println to metoda uywana na rzecz tego obiektu
Std: System.out.println(String s)
UWAGI:
Pola niestatyczne (instancyjne) istniej w kadym obiekcie klasy,
natomiast dla pól statycznych (klasowych) przydzielany jest tylko
jeden obszar pamici na ca klas
Z metod statycznych nie wolno odwoywa si do niestatycznych
skadowych klasy (gdy obiekt moe nie istnie)
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 11
PRZECIANIE METOD Przecianie metod i konstruktorów polega na
definiowaniu metod o
tej samej nazwie, ale rónicych si liczb i/lub typami argumentów np.
metoda println() ma bardzo wiele wersji z argumentami rónych
typów.
PRZYKAD dla klasy Para o prywatnych polach int a,b
void add(Para p)//dodaje do pary, na rzecz
//której wywoano metod, par p
void add(int i)//do obu pól pary dodaje podan liczb
void add(int x, int y)//pierwszy argument dodaje do
//1-go sk. Pary, a 2-gi do 2-go
UWAGA: Naley specyfikowa parametry o radykalnie rónych typach (aby
unikn pomyek wynikajcych z automatycznej konwersji typów) np. dla
dwóch metod o tej samej nazwie z parametrami int i short, próba
wywoania metody z parametrem char spowoduje wywoanie metody z
parametrem int
Nie istnieje moliwo deklarowania metod o tej samej nazwie,
sygnaturze, ale o ronym typie wyniku.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 12
PRZECIANIE KONSTRUKTORÓW
Analogicznie moemy przecia konstruktory, czyli w jednej klasie
moemy mie konstruktory z rónymi parametrami. Aby nie powtarza
wspólnego kodu w rónych konstruktorach wygodnie jest wywoywa
konstruktor w innym konstruktorze. Do takich wywoa uywamy sowa
kluczowego this().
PRZYKAD
public Para(int x){
OBIEKTY I REFERENCJE
public class Para{
private int a,b;
public Para(){}//konstruktor bezparametrowy
a=x;b=y;
a=x;b=y;
OBIEKTY I REFERENCJE
p.set(1,2);
p.show();
Obiekt musi by utworzony za pomoc wyraenia new (Sama deklaracja np.
Para p; nie wystarcza). Dopiero zastosowanie wyraenia new powoduje
przydzielenie pamici dla obiektu (na stercie). Wynikiem tego
wyraenia jest adres miejsca w pamici przydzielonego obiektowi –
referencja. Zatem zmienna p z przykadu zawiera referencj do obiektu
klasy Para.
Wszystkie zmienne deklarowane z nazw klasy w miejscu nazwy typu s
zmiennymi typu referencyjnego (zawieraj referencje do obiektów lub
null).
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 15
OBIEKTY I REFERENCJE
– Porównywa referencj ( == lub !=)
Operacje wykonywane na zmiennych obiektowych dotycz referencji, a
nie obiektów (operacje arytmetyczne s niedozwolone). Na obiektach
(ich wntrzu) operujemy za pomoc metod zdefiniowanych w klasie
obiektu.
PRZYKAD
//new zwraca referencj do obiektu i podstawia pod p
Para p1=new Para();//nowy obiekt o wartociach 0,0
p1=p;//kopiujemy referencj, teraz oba obiekty
//wskazuj na to samo miejsce w pamici
p1.show(); //(1,2)
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 16
SOWO KLUCZOWE this Wyraenie new tworzy obiekt (przydziela pami i
inicjuje wartoci
zerami), a nastpnie dla nowo utworzonego obiektu uruchamiany jest
konstruktor. W konstruktorze dostpna jest referencja do tego
obiektu w postaci niejawnie zdefiniowanej zmiennej this.
public Para(int a, int b){
this.a=a; this.b=b;
//przez konstruktor
Obiekt na rzecz którego wywoano metod, jest wewntrz metody
reprezentowany sowem kluczowym this.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 17
SOWO KLUCZOWE this Metoda zwracajca referencj do obiektu na rzecz
którego
zostaa wywoana, np. metoda dodajca par przekazan jako argument do
pary, na rzecz której wywoano metod
Para add(Para p){
suma.add(p1).add(p2);
this(...) uyte jako pierwsza instrukcja konstruktora pozwala wywoa
w nim inny konstruktor
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 18
ZASIG ZMIENNYCH
W kadej metodzie/konstruktorze klasy moemy odwoa si do
identyfikatorów skadowych klasy(pól i metod) niezalenie od tego w
którym miejscu klasy s zadeklarowane.
Zmienne zadeklarowane w metodzie/konstruktorze czyli tzw. zmienne
lokalne maj zasig lokalny- od miejsca deklaracji do koca metody,
dotyczy to równie parametrów deklarowanych w nagówku metody.
Zmienne lokalne musz mie nadane wartoci (w przeciwnym przypadku -bd
kompilacji).
Zmienne deklarowane wewntrz bloków lokalnych (zestaw instrukcji
ujty w {}) maj zasig od miejsca deklaracji do koca bloku. Wartoci
zmiennych lokalnych s tracone po wyjciu sterowania z bloku
(automatyczne zwolnienie pamici).
Java sama dba o to, aby usun obiekt, gdy nie istnieje ju aden
wskanik do niego. Zajmuje si tym tak zwany garbage collector. Jeeli
w klasie zostanie zadeklarowana metoda finalize(), to bdzie ona
wywoywana przed zwolnieniem pamici przydzielonej kademu obiektowi
tej klasy.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 19
PAKIETY
Pakiety(ang.packages) s zbiorami(bibliotekami) klas sucymi ich
logicznej organizacji. Pakiet grupuje klasy o wspólnej
funkcjonalnoci.
Standardowa biblioteka Javy skada si z wielu pakietów, do których
nale java.lang, java.util, java.net. Maj one struktur hierarchiczn.
Pakiety mog zawiera klasy, a take inne pakiety, podobnie jak w
przypadku katalogów i podkatalogów. Wszystkie standardowe pakiety
Javy znajduj si w pakietach java i javax.
Pakiety chroni nas przed kolizjami nazw. Moe istnie wiele klas o
takich samych nazwach w rónych pakietach np. File, dlatego uywamy
nazw kwalifikowanych: nazwa_pakietu.nazwa_klasy np. java.io.File f=
new java.io.File(”plik.txt”);
Kada klasa naley do jakiego pakietu. Dla klas definiowanych w
naszych przykadach uywany by pakiet domylny (zwykle biecy
katalog).
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 20
PAKIETY c.d. Aby zachowa unikalno nazw pakietów zaleca si
stosowanie
w tych nazwach odwróconych domen internetowych(które s
unikatowe)
Klasy s przechowywane w podkatalogach systemu plików. cieka do
klasy musi odpowiada nazwie jej pakietu. Nazwy pakietów zwyczajowo
pisze si maymi literami. Kolejne poziomy zagniedenia w hierarchii
pakietów oddziela si od siebie kropkami, podobnie do tego jak nazwy
kolejnych katalogów w ciece dostpu oddziela si od siebie
ukonikami.
Jeli zatem deklarujemy, e klasa naley do pewnego pakietu, to plik
zawierajcy implementacj tej klasy musi znajdowa si w katalogu
odpowiadajcym temu pakietowi.
Przykadowo, jeli plik zawierajcy definicj klasy HelloWorld znajduje
si w katalogu pl/naukajavy, to klasa ta naley do pakietu
pl.naukajavy.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 21
PAKIETY c.d. Pakiety klas s zwykle przechowywane w plikach JAR
(Java
ARchive) lub ZIP. Pliki Jar zawieraj skompresowane pliki klas i
katalogi.
Klasy zdefiniowane w nienazwanym pakiecie (tj. bez uycia dyrektywy
package) maj nazwy proste np. Para.
Przy tworzeniu wikszych projektów lub klas, uywanych w innych
programach, klasy umieszczamy w nazwanych pakietach, stosujc
dyrektyw package. (W NetBeans wystarczy poda nazw pakietu w dialogu
definiowania klasy, a automatycznie wygenerowany plik ródowy bdzie
zawiera odpowiedni dyrektyw package) np. :
package pl.naukajavy; public class HelloWorld { public static void
main(String[] args) { System.out.println("Hello World!"); } }
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 22
IMPORTOWANIE KLAS
import nazwa_pakietu.*; //importuje wszystkie
import nazwa_pakietu.KonkretnaKlasa;
}
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 23
IMPORTOWANIE KLAS Klasy String i System pochodz z pakietu
java.lang. Nie
wymaga on importu, nazwy klas z tego pakietu s importowane
domylnie.
Importowanie nazw klas nie oznacza wstawiania ich definicji do
programu, umoliwia on tylko posugiwanie si nazwami skróconymi
Import statyczny umoliwia odwoania do skadowych statycznych
import static nazwa_pakietu.*;
import static nazwa_pakietu.KonkretnaKlasa;
out.println(”krócej”);
STRUKTURA PROGRAMU
Program w Javie to zestaw definicji klas
Poza ciaem klasy nie moe by adnego kodu, poza dyrektywami package,
importu i komentarzami
package … //nieobowizkowa deklaracja pakietu
class B{ … }
Program moe by zapisany w 1 lub wielu plikach (.java) (W pliku
moe by tylko 1 klasa publiczna)
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 25
DZIEDZICZENIE Dziedziczenie polega na przejciu waciwoci i
funkcjonalnoci
obiektów pewnej klasy, z ewentualn ich modyfikacj i/lub
uzupenieniem w taki sposób, by byy bardziej wyspecjalizowane.
Definicja klasy pochodnej:
Klasa A jest bezporedni nadklas, superklas, klas bazow klasy
B
Klasa B jest bezporedni podklas, klas pochodn klasy A
Aby utworzy klas pochodn od klasy z innego pakietu, klasa bazowa
musi by zadeklarowana jako public (W innym przypadku nie mona si do
niej odwoa spoza pakietu).
Klasa moe dziedziczy tylko po jednej nadklasie.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 26
DZIEDZICZENIE ZMIENNYCH
Podklasa z tego samego pakietu dziedziczy wszystko oprócz zmiennych
private. Podklasa, zdefiniowana poza pakietem, w którym jest klasa
bazowa, nie dziedziczy zmiennych private i zmiennych z domylnym
atrybutem dostpu.
Tabela przedstawia jak atrybuty dostpu wpywaj na dziedziczenie
zmiennych, gdy podklasa jest zdefiniowana w tym samym pakiecie, co
klasa bazowa i gdy podklasa jest zdefiniowana w innym
pakiecie.
Pakiet 2 Pakiet 1
Nie int a; Tak int a;
public int b; Tak public int b; Tak public int b;
protected int c;
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 27
Dziedziczenie metod
Konstruktory nie s nigdy dziedziczone.
Pola klasy bazowej (najczciej prywatne- nie mamy do nich dostpu w
podklasie) inicjujemy w konstruktorze podklasy za pomoc wywoania
konstruktora klasy bazowej. Co wicej, jeli tego nie zrobimy, to
kompilator sam wywoa konstruktor bezparametrowy nadklasy. Jawne
wywoanie konstruktora klasy bazowej w konstruktorze
podklasy(koniecznie jako pierwsza instrukcja) dokonuje si
poleceniem
super(argl,...,argn);
Dziedziczenie - przykad
Dziedziczenie – przykad c.d. // definicja klasy pochodnej
public class Pies extends Zwierze {
private String imie; // Imi psa
private String rasa; // Rasa
public Pies(String toImie) {
super("Pies"); // wywoaj konstruktor nadklasy
imie = tolmie; // podane imi
rasa = taRasa; // podana rasa
Dziedziczenie – przykad c.d.
public class Test {
Pies nowyPies = new Pies("Fido","Chihuahua"); Pies gwiazdorPies =
new Pies("Lassie"); nowyPies.coToJest(); // opis
gwiazdorPies.coToJest(); // i opis gwiazdora
}
}
Klasa Pies dziedziczy po klasie Zwierz, wic obiekty klasy Pies maj
równie waciwoci obiektów klasy Zwierze, a zatem moemy na ich rzecz
uywa metod zdefiniowanych w klasie Zwierze
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 31
DZIEDZICZENIE-referencyjna konwersja rozszerzajca
Zauwamy, e obiekty klasy Pies s równie obiektami klasy Zwierze (maj
jej wszelkie waciwoci). Zatem referencje do obiektów klasy Pies
moemy przypisa zmiennym oznaczajcym obiekty klasy Zwierze : Pies
p=new Pies(...); Zwierze z=p;
Nazywamy to referencyjn konwersj rozszerzajc (widening reference
conversion). Konwersja jest rozszerzajca, bo przeksztacamy typ
pochodny(referencja do obiektu podklasy) do typu szerszego
(referencja do obiektu nadklasy)
Zdolno obiektów do stawania si obiektem swojej nadklasy jest
uyteczna.
PRZYKAD: Zaómy, e mamy nadklas NadKlasa, z której wyprowadzilimy
podklasy: PodKlasa1, PodKlasa2.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 32
DZIEDZICZENIE – konwersja rozszerzajca
Zaómy, e mamy zdefiniowan metod public typ metoda(NadKlasa n1,
NadKlasa n2){ …. }
Wówczas dziki automatycznej konwersji referencyjnej moemy wywoywa j
dla rónych rodzajów par: NadKlasa nkl1 = new NadKlasa(...);
NadKlasa nkl2 = new NadKlasa(...); PodKlasa1 p1 = new
PodKlasa1(...); PodKlasa2 p2 = new PodKlasa2(...); typ zm;
zm=metoda(nkl1,nkl2); zm=metoda(nkl1,p1); zm=metoda(p1,p2);
Gdyby nie byo obiektowych konwersji rozszerzajcych, to dla kadej
moliwej kombinacji par musielibymy napisa inn wersj metody
metoda().
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 33
DZIEDZICZENIE-referencyjna konwersja zwajca
Zauwamy, e w rozwaanej powyej metodzie public typ metoda(NadKlasa
n1, NadKlasa n2){ …. } wobec parametrów n1, n2 moemy uywa metod z
NadKlasy, ale nie mona uywa metod z klas pochodnych (nawet, gdy n1,
n2 wskazuj na obiekty klas pochodnych)
Referencyjna konwersja zwajca – polega na jawnym zastosowaniu
operatora rzutowania do podklasy np..: void jakasMetoda(NadKlasa
n){ typ zm=((PodKlasa1)n).metodaPodKlasy1(); … }
W przypadku, gdyby kto wywoa t metod dla obiektu podklasy
PodKlasa2, zostaby wyrzucony bd CastClassException i wykonanie
programu zostaoby przerwane
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 34
OPERATOR instanceof
Wyraenie ref instanceof T ma warto true, jeli referencja ref nie
jest null i moe by w fazie wykonania programu rzutowana do typu T
bez zgoszenia wyjtku CastClassException tzn. jeli referencja ref
jest typu T lub dowolnego podtypu T. Wówczas:
void jakasMetoda (NadKlasa n){ typ zm; if(n instanceof PodKlasa1)
zm=((PodKlasa1)n).metodaPodKlasy1() else if (n instanceof
PodKlasa2) zm=((PodKlasa2)n).metodaPodKlasy2() … }
METODA getClass()
Innym sposobem stwierdzania typu jest zastosowanie metody
getClass(). Metoda ta zwraca faktyczny typ obiektu w postaci
referencji do obiektu klasy Class. Obiekty tej klasy oznaczaj klasy
Pies p=new Pies(”Burek”); Zwierze z=p; Class c=z.getClass();
//zmienna c bdzie oznacza klas Pies
Aby dowiedzie si nazwy klasy -metoda getName() Class
c=z.getClass(); String nazwa=c.getName();
Uwaga: Rónica pomidzy instanceof, a getClass(): jeli PodKlasa1
miaaby klas pochodn PodPodKlasa1: PodPodKlasa1 kl=new
PodPodKlasa1(...); to kl instanceof PodKlasa1 zwróci true (bo brane
s pod uwag podtypy), natomiast kl.getClass().getName() zwróci napis
”PodPodKlasa1”
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 36
DZIEDZICZENIE -nadpisywanie metod w klasie pochodnej
Metoda coToJest() z nadklasy Zwierze public void coToJest(){
System.out.println("To jest " + gatunek);
}
}
Ta metoda ma t sam sygnatur co metoda o tej samej nazwie w klasie
bazowej i nadpisuje si nad tamt metod. Metoda nadpisujca metod z
klasy bazowej nie moe mie atrybutu dostpu bardziej restrykcyjnego
ni metoda z klasy bazowej.
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 37
DZIEDZICZENIE - podsumowanie
W Javie kada klasa moe bezporednio dziedziczy tylko po jednej
klasie, ale porednio moe mie wiele nadklas, co wynika z hierarchii
dziedziczenia. Ta hierarchia zawsze zaczyna si na klasie Object
(której definicja znajduje si w zestawie standardowych klas Javy).
Zatem w Javie wszystkie klasy pochodz porednio od klasy Object.
Jeli definiujc klas, nie uyjemy sowa extends (nie zadamy jawnie
dziedziczenia) to i tak nasza klasa domylnie bdzie dziedziczy klas
Object (tak jakbymy napisali class A extends Object). Zatem
referencj do obiektu dowolnej klasy mona przypisa zmiennej typu
Object.
Object
NadKlasa
PodKlasa2
PodKlasa1
PodPodKlasa1
METODY equals() i toString() Operator == uyty wobec obiektów
porównuje referencj
Do porównywania zawartoci obiektów suy metoda public boolean
equals(Object o) przedefiniowana w wikszoci standardowych klas (np.
String), która zwraca true, gdy obiekt na rzecz którego wywoano
metod ma tak sam zawarto jak obiekt, przekazany jako argument
Dla klasy Para sami musimy j zdefiniowa, sygnatura metody musi by
zawsze jak powyej np. public class Para{ private a, b; public
boolean equals(Object obj){ if (this==obj) return true; if
(obj==null) return false; if (getClass()!=obj.getClass())return
false; Para other=(Para)obj;//konwersja zwajca
if(a!=other.a||b!=other.b)return false; else return true; } }
12.10.2014 Dorota Pylak - Aplikacje w Javie-cz 2 39
METODY equals() i toString()
Do przedstawiania zawartoci obiektów w postaci napisów suy metoda :
public String toString() wprowadzona ju w klasie Object. W naszych
klasach definiujemy j sami. Jeli metodzie println() przekaemy jako
argument referencj do obiektu, to zostanie wywoana metoda
toString()
Przykad public class Para{ private int a,b; //....konstruktory
public String toString(){ return ”(”+a+”,”+b+”)”; } public static
void main(String[] args){ Para p=new Para(1,2);
System.out.println(p); } }
Slajd 1
Slajd 2
Slajd 3
Slajd 4
Slajd 5
Slajd 6
Slajd 7
Slajd 8
Slajd 9
Slajd 10
Slajd 11
Slajd 12
Slajd 13
Slajd 14
Slajd 15
Slajd 16
Slajd 17
Slajd 18
Slajd 19
Slajd 20
Slajd 21
Slajd 22
Slajd 23
Slajd 24
Slajd 25
Slajd 26
Slajd 27
Slajd 28
Slajd 29
Slajd 30
Slajd 31
Slajd 32
Slajd 33
Slajd 34
Slajd 35
Slajd 36
Slajd 37
Slajd 38
Slajd 39