Documente Academic
Documente Profesional
Documente Cultură
Ciprian MUNTEANU
Constructori
folositi pentru a crea obiecte; sunt initializate campurile si
proprietatile clasei
metode speciale: nume = numele clasei
nu au tip returnat (nici macar void)
o clasa poate avea unul sau mai multi constructori cu
(expliciti) sau fara parametri (impliciti)
nu pot exista 2 constructori cu parametri de acelasi tip
daca nu definim niciun constructor, C# creaza unul
default fara parametri; el va instantia obiectul si va seta
campurile si proprietatile clasei cu valorile default
specifice tipurilor lor
2
Constructori - Exemple
fara parametri:
cu parametri:
3
Constructori - Exercitiu
creati o clasa Persoana cu 3 proprietati public
auto-implementate:
Nume de tip string
Prenume de tip string
Varsta de tip int
5
Exercitiu recapitulativ
creati o clasa publica numita Money; clasa are:
2 proprietati publice auto-implementate: Amount de tip decimal si Currency de tip string
1 constructor implicit care intializeaza Amount cu 0 si Currency cu “RON”
1 constructor explicit cu 2 parametri amount si currency (parametrul currency este
optional, valoare default = “EUR”) cu care sunt initializate proprietatile clasei
o metoda publica GetAmountWithCurrency care returneaza un string = <amount>
<currency>
o metoda publica MultiplyAmount care nu returneaza nimic; primeste ca parametru
factorul de multiplicare si inmulteste amountul cu factorul primit
destructor care printeaza pe ecran mesajul: “Destructorul clasei a fost apelat in mod
automat”
in metoda Main din clasa Program:
creati un obiect (numit salariuA) de tip Money folosind constructorul implicit al
clasei; folosind proprietatile clasei setati amountul la 10 si moneda USD
creati un obiect (numit salariuB) de tip Money folosind constructorul explicit al
clasei pasand ca parametri 25.5 RON; apelati metoda MultiplyAmount transmitand
valoarea 1.25 ca parametru
pentru fiecare obiect afisati pe ecran valorea cu moneda folosind metoda
GetAmountWithCurrency
6
Membri Statici
8
Clase statice
9
Clase statice - Exercitiu
creati o clasa statica numita ConvertorTemperatura
creati 3 metode publice statice:
ConvertCelsiusToKelvin care primeste ca parametru o temperatura
exprimata in grade celsius si o returneaza exprimata in grade kelvin
(kelvin = celsius + 273)
ConvertCelsiusToFahrenheit care primeste ca parametru o
temperatura exprimata in grade celsius si o returneaza exprimata
in grade fahrenheit (fahrenheit = celsius * 18 / 10 + 32)
ConvertKelvinToCelsius care primeste ca parametru o temperatura
exprimata in grade kelvin si o returneaza exprimata in grade celsius
11
Mostenire
clasa parinte = o generalizare a claselor copil
Animal
Pisica Caine
13
Mostenire - exercitiu
adaugati in clasa Persoana o proprietate protected auto-
implementata de tip string: CNP
creati o clasa publica Student care sa mosteneasca din clasa
Persoana
in noua clasa adaugati propietatile publice auto-implementate:
Facultate de tip string
Medie de tip float
adaugati o metoda publica PrinteazaInformatiiComplete – nu
returneaza nimic; nu are parametri; afiseaza pe ecran
informatiile complete ale unui student dupa cum urmeaza:
Studentul <NUME> <PRENUME>, cnp <CNP>, cu varsta de <VARSTA> ani
este student al facultatii <FACULTATE>, avand media <MEDIE>
in metoda Main din clasa Program creati un obiect de tip
Student (stud1); setati-i proprietatile si afisati informatiile
complete ale studentului
14
Mostenire - Constructori
cand cream o instanta dintr-o clasa derivata
constructorul clasei de baza este de asemenea apelat
intai constructor clasa baza, apoi constructor clasa
derivata
Caz1: daca clasa de baza are constructor implicit, atunci
default va fi apelat acesta
Caz2: daca clasa de baza are doar constructori expliciti,
atunci trebuie specificat in constructorii clasei derivate
ce constructor din clasa de baza se apeleaza
prin cuvantul cheie base alegem ce constructor din clasa
de baza sa se apeleaze
15
Mostenire – Constructori - Exemple
16
Mostenire – Constructori - Exercitiu
creati o clasa ElevLiceu derivata din clasa Persoana
17
Mostenire - observatii
18
Polimorfism
al treilea pilon al POO
19
Polimorfism - exercitiu
20
Casting
conversii dintr-un tip de date in alt tip
2 tipuri:
implicite: nicio sintaxa de scris;
• ex: din short in int
• ex: dintr-o clasa derivata intr-o clasa de baza
explicite (cast); sintaxa de scris
• ex: din int in short (se poate pierde din precizie)
• ex: dintr-o clasa de baza intr-o clasa derivata
https://msdn.microsoft.com/en-us/library/67ef8sbd(v=vs.110).aspx
https://en.wikipedia.org
https://stackoverflow.com/
22