Prima noastră clasă
Revenim la clasa mașinilor de spălat din prima pagină a acestei lecții...
Pentru a defini o clasă, folosim cuvântul cheie
class, urmat de numele dorit pentru ea (în cazul nostru,
masina_de_spalat). Apoi,
atenție la indentare din nou,
în interiorul ei vom scrie datele și metodele membre, precum mai jos:
Funcția __init()__
Fără funcția
__init()__ nu am putea face nimic deoarece se referă la
constructorul clasei, așadar o definim
la început pentru a putea reține argumentele trimise la apelul inițial pentru
instanțierea clasei, precum și poate
alte operații necesare la crearea respectivului obiect.
Avem în exemplul anterior
4 parametri ce pot fi impuși la crearea unui nou obiect și
3 care nu pot fi setați decât ulterior din program, după
instanțierea obiectului respectiv. Un altul ("
inaltime") se găsește în interiorul funcției, însă nu poate fi impus la instanțiere. Ultimii doi,
"
latime" și "
lungime" sunt în afara acestei funcții.
self
Cuvântul cheie
self indică faptul că ne referim la obiectul curent instanțiat în funcția
__init()__. Astfel, pentru fiecare dintre
cei patru parametri ai funcției
__init()__, am creat unul care reține datele trimise din programul principal la
apelul contructorului (numele clasei).
Notă. Puteți să nu îi spuneți "
self", ci oricum altfel ("
obiectul", "
masina_curenta"),
însă atenție la modul de folosire a acestui cuvânt cheie și sensul său.
Alte detalii
Un aspect important este acela că
am impus valori implicite pentru parametri, astfel încât
să nu obținem eroare de interpretare dacă nu sunt trecute în program, precum în cazul variabilei
m1.
Vezi tipurile de argumente pentru funcții în [
Lecția 18].
În esență ce am obținut până acum? Am creat o clasă numită
masina_de_spalat, care are
7 date membru.
Apoi, am creat două obiecte:
m1, care are toate valorile
default, iar
m2, cu date introduse pentru fiecare argument dintre cele patru
în parte la instanțiere.
Datele membru se pot modifica, precum vedeți în program. Cele trei date "
inaltime", "
lungime" și "
latime" nu am vrut să le trec direct
în antentul funcției de inițializare, ci să le las pentru o modificare ulterioară.
Cu toate acestea, pentru a le defini a trebuit să le inițializez cu anumită valoare, în acest caz
0.
Mai mult, ultimele două sunt în afara funcției, deci cuvântul cheie "
self" nu a mai fost necesar.
După cum observați, avem libertate totală. Putem cere sau nu argumente inițiale la crearea obiectului, putem impune necesitatea unuia dintre ele, ș.a.m.d.
Important este ca ceea ce definim ca și clase să ne ofere un suport real în cadrul programelor noastre.
Avansează la pagina următoare.
Cărțile editurii noastre
O parte dintre manualele și culegerile de probleme se găsește și [
în format electronic]
securizat sub formă
de fișier *.pdf.
"
O cameră fără cărţi este ca un corp fără suflet."
(G. K. Chesterton)
Cursanții au mai cumpărat ...
[
vezi lista completă a cărților]