Documente Academic
Documente Profesional
Documente Cultură
Prezentare 3:
Pachete;
Modificatori de
acces;
Reutilizare;
PROGRAMARE ORIENTATA Modificatorul
final
OBIECT
2020
Pachete si clase built-in
import <package>.<nume_clasa>;
import <package>.*;
15.10.2020 POO 2
Propriul pachet
15.10.2020 POO 3
Pachete - Coliziuni de nume
15.10.2020 POO 4
Modificatori de acces
15.10.2020 POO 5
Reutilizare
Utilizare
Compunere
Mostenire
15.10.2020 POO 6
Reutilizare
Pizza
has_a OForma
- double: pret
- OForma: forma + double: detArie()
PizzaClient
15.10.2020 POO 7
Utilizare
15.10.2020 POO 8
Compunere – “has-a”
15.10.2020 POO 9
Mostenire – “is-a”
15.10.2020 POO 10
Clasa Object
15.10.2020 POO 11
Metoda toString()
toString() in Object intoarce numele obiectului: M@af
15.10.2020 POO 15
extends: “is-a”
Care dintre urmatoarele variante au sens?
A. Triunghi extends Forma { … }
B. PhDContr extends PhD { … }
C. ContBancar extends Depozit { … }
15.10.2020 POO 16
extends: “is-a”
Care dintre urmatoarele variante au sens?
A. Triunghi extends Forma { … }
A. Da! Un triunghi este un tip de forma.
15.10.2020 POO 18
super - constructor
public class student extends Persoana {
private String studID;
Pisica Caine
Pisica Caine toString() toString()
toarce()
15.10.2020 POO 21
Conversie de tip Object
ilegal a0
Compilatorul va genera o eroare. Animal
ani 6
Verificarea legalitatii lui anm1.toarce(…): maiBatran(Animal)
Cum anm1 este un Animal, toarce este legal
doar daca este declarat in Animal sau una
dintre superclasele sale.
15.10.2020 POO 25
Quiz: Ce referentieri sunt legale?
h a0 a0
Animal Animal
ani 6
A. h.toString() maiBatran(Animal)
OK — este in partitia Object a clasei
Pisica
B. h.maiBatran(…)
toString()
OK —este in partitia Animal toarce()
C. h.toarce()
ILEGAL —nu este in partitia Animal
sau partitia Object
15.10.2020 POO 26
Modificatorul final
Argumente
Metode
Nu pot fi redefinite (suprascrise)
Clase
DEMO
Nu pot fi extinse
15.10.2020 POO 27