Recapitulare POO

Ce este o clasă?

Clasa este descrierea unui element printr-un set de atribute si metode. Atributele reprezintă caracteristicile unui obiect iar metodele sunt acțiunile pe care el le poate face.

Exemplu - Clasa Masina:

Variabile:

  1. nume
  2. motorrului
  3. modelul mașinii
  4. număr de locuri

Metode:

  1. accelerează
  2. franează
  3. parchează
  4. oprește

Clasa este doar o matriță cu ajutorul căreia putem construi obiecte.

Ce este un obiect?

Clasa caracterizează în mod general un anume lucru din lumea exterioară. În exemplul de mai sus, clasa Mașină ne spune doar ce atribute și ce acțiuni caracterizează în mod general o mașină. Pentru a putea vorbi însă de o anume mașină, trebuie să creăm ceea ce se numește un obiect.

Exemplu:

Creăm un obiect:

Masina bmw = new Masina();
bmw.nume = „BMW“;
bmw.capacitateMotor = 2.0;
bmw.model = „Seria 1“;
bmw.locuri = 4;

Observați cum ne folosim de clasa Masina pentru a crea obiectul ”bmw”.

Daca vrem să ne facem a doua mașina folosim aceași clasă deoarece toate mașinile au aceste caracteristici generale definite în clasa noastră.

Masina masina2 = new Masina();
masina2.nume = „Dacia“;
masina2.capacitateMotor = 0.1;
masina2.model = „1310“;
masina2.locuri = 4;

Ce este o variabila de instanta?

Variabilele de instanțe sunt atributele care caracterizează obiectul. Fiecare obiect creat are propriile valori pentru atribute.

În exemplul nostru de mai sus, variabilele de instanță sunt nume, capacitatea motorului, model și numar locuri.

Ce este o metoda de instanță?

Metoda conține o serie de instrucțiuni înglobate într-o funcție prin efectuarea cărora se obține un rezultat.
În exemplu anterior, metodele sunt acțiunile pe care mașina poate să le facă: accelerează, franează, parchează, oprește.

Metoda de instanță este pentru obiecte. Pentru a putea spune mașinii să accelereze trebuie să avem mașina! Cu alte cuvinte, nu putem folosi o metoda de instanță pe o clasă (nu îi putem spune matricii cu care creăm mașini să parcheze).

Ce este o metoda de clasa?

Pentru a apela metoda unei clase nu avem nevoie de creare unui obiect deoarece este caracteristică pentru toate obiectele posibile.

De exemplu, în clasa noastra „Masina“ avem nevoie de obiectul „masină“ pentru a îi putea spune „să accelereze“, „să franeze“ pentru că accelerarea la fiecare tip de mașină este diferită și depinde de atributul „capacitateMotor“. Dar dacă un client ar vrea să știe ce înseamnă „capacitateMotor“ am crea o metodă de clasă care returnează explicația. Nu avem nevoie de un obiect de tip „Masina“ pentru a afla definiția.

Concluzie:

metoda de instanță = avem nevoie de obiect
metoda de clasă = nu avem nevoie de obiect, ci doar de clasă.

Ce sunt setterii și getteri? Care este rolul lor?

De obicei, în POO variabilele dintr-o clasă sunt protejate. Se marchează variabila ca privată și se declară metoda pentru a seta valoarea variabilei și pentru a lua valoare variabilei.

Metoda prin care se setează valoarea = setter.
Metoda prin care se ia valoarea = getter.

De ce am face așa ceva?

De exemplu, pentru a evita situația în care valoarea unei variabile este setată greșit.

Un obiect de tip Masina nu poate avea capacitateaMotorului egală cu 10000.

Asadar marcam variabila capacitateaMotorului ca privată. Aceasta nu va mai putea fi accesata astfel: bmw.capacitateaMotorului=100;. Declaram doua metodeseteazaCapacitateaMotorului si iaCapacitateaMotorului.

public void seteazaCapacitateaMotorului:(float)capacitate
{
      if( capacitate > 1.0 && capacitate < 100.0 ) capacitateaMotorului = capacitate;
}
 
public float iaCapacitateaMotorului()
{
      return capacitateaMotorului
}
programare_ios/curs/curs1.txt · Ultima modificare: 2013/07/21 12:59 de către bogdan.vlad
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0