Transcript Metode

C8 – LPO: Metode si
mostenire
CUPRINS

Metode.






Definiţie, apel.
Constructori
Supraîncărcare.
this
Moştenire
super
Obiective
După parcurgerea acestui curs ar trebuie sa puteţi:
 să creaţi (definitie) şi să operaţi (apel) cu
metode;
 iniţilizaţi variabile de instanţă utilizând
constructori;
 intelege si opera cu supraîncărcarea în cazul
metodelor;
 inţelege şi defini ierarhi de clase pentru scrierea
unei aplicatii orientate pe obiect.
Metode



metoda implementeaza o operatie cu datele obiectului;
metodele se implementeaza (definitie) sub forma unor
proceduri sau functii (întorc valori cu return) ce realizeaz
anumite operatii
metodele pot fi definite numai într-o definitie de clasa, astfel:
vizibilitate tip nume_met([lista parametri]) {
corp_1
}



tip - defineşte tipul de date întors de metoda;
nume_met - defineşte numele metodei;
[lista parametri] - o secventa optionala de perechi tip
nume, separate prin virgule.
Apelul metodelor şi transferul
parametrilor





apelul are ca efect lansarea in executie
a codului din corpul metodei;
sintaxa generala pentru apelul unei
metode este:
refObiect.nume_met(argumente)
Apel de metodă
STIVA
parametrii sunt variabile ce primesc
p1.setX(12);
12
12
valori în momentul apelului si se numesc
O copie a valorii
originale a
parametrului
argumente
setX(double abscisa) {
valorile parametrilor ce sunt tipuri de publicxvoid
= abscisa;
date primitive se transfera prin valoare}
la transferul prin valoare, metodei, i se
transfera o copie a valorilor parametrilor
din programul apelant
Constructori




defineşte starea initiala a obiectelor;
are acelasi nume cu clasa;
este apelat automat dupa crearea obiectului, înainte
ca operatorul new sa se termine;
nu întorc o valoarea de un anumit tip (nici macar
void);
public nume_clasa(){
...
};

sintactic sunt identice cu metodele (pot avea
parametri)
Supraîncrcarea (overloading)




permite folosirea aceleiaşi sintaxe pentru obiecte de
tip diferit;
la nivel de metode de clasa, apare atunci când
avem mai multe metode cu acelasi nume, dar cu
declaratii dinsticte de parametri;
supraîncrcarea este o forma polimorfism;
Java se foloseste de tipul si/sau de numarul
parametrilor din apel pentru a determina care dintre
metodele supraîncrcate sa le apeleze.
Referina this



this este argument implicit al oricarei
metode;
this este o referinta la obiectul curent;
this poate fi folosit în corpul oricrei metode al
obiectului curent.
public void setX(double x) {
this.x = x;
actualizareDistanta();
}
Moştenirea


moştenirea permite crearea unor ierarhii de
clasificare;
extends se foloseste în Java pentru a descrie
mostenire între clase;
class nume_subclasa extends nume_superclasa {
adugarea de noi variabile şi metode
}


reprezentarea grafic a mostenirii se face printr-o
sageata (care se citeste “mosteneste de la”);
clasa care exista se numeste superclasa, clasa
de baza sau clasa parinte, noua clasa se numeste
sublclasa, clasa derivata sau clasa copil.
nume_superclasa
nume_subclasa
Referina super







super este o referinta la clasa de baza;
se utilizeaza la apelul constructorilor din clasa de baza;
trebuie sa fie fie prima linie în constructorul clasei derivate;
se poate apela constructorul oricarei clase de baza;
se poate referi oricare membru al superclasei;
Apelul unui constructor al superclasei:
super(lista parametri)
Referirea unui membrul al superclasei:
super.membru
Intrebari
1.
2.
3.
4.
5.
Care metode necesita return?
Cand folosim numele de parametru dar cel de argument de
metoda?
Ce este apelul prin valoare?
Ce rol au constructorii?
Ce este superclasa si in ce realatie este cu subclasa
Bibliografie
1.
2.
3.
4.
5.
6.
http://www.oracle.com/technetwork/java/javase/documenta
tion/index.html
http://docs.oracle.com/javase/6/docs/
Ştefan Tanasă, Cristian Olaru, Ştefan Andrei, Java de la 0
la expert, Polirom, 2003, ISBN: 973-681-201-4.
Herber Schild, Java 2 - The Complete Reference, Fourth
Edition, Osborne, 2001, ISBN: 0-07-213084-9.
Deitel H.M., Deitel P. J., Java - How to programm, Fith
Edition, Prentice Hall, 2003, ISBN: 0-13-120236-7.
http://www.east.utcluj.ro/mb/mep/antal/downloads.html