Objektua

logo OPP min

Atal honetan, xehetasunez sartuko gara obektu-kontzeptuan, eta kontzeptu berriak ikusiko ditugu, hala nola instantzia eta mezua.

Instantzia

Esan bezala, objektuak klase bateko aleak dira. Beraz, objektu bat sortzeko, urrats hauek egin behar ditugu:

  1. Objektua sortu
Pertsona pertsona1;
  1. Objektua instantziatzea (klase batetik objektu bat sortzea).
Pertsona1 = new Pertsona("Unai");

Lengoai gehienetan, objektu berri bat instatziatzeko/sortzeko, new hitza idatzi behar dugu, eta, ondoren, klaseko eraikitzaileetako bat. Kasu honetan, bi eraikitzaileetako bat erabili dugu parametroekin, baina eraikitzaile lehenetsia ere erabil genezake.

  1. Aurreko pausoak bete ondoren atributuetara eta metodoetara sar gaitezke.

Lehenengo eta bigarren urratsak urrats bakarrean bil daitezke:

Pertsona Pertsona1 = new Pertsona("Unai");

Klase batetik objektu bat sortzeko ekintzari instantziatu esaten zaio, eta, askotan, objektuei instantzia deitzen zaie. Beraz, pertsona1 Pertsona baten instantzia edo objektua da.

Egoera eta portaera

Ulertu behar dugu objektu baten egoera definitzen duten atributuek une jakin batean hartzen dituzten balioek definitzen dutela.

Objektuaren portaera, berriz, objektu horrek egin ditzakeen funtzionaltasunak da. Objektu baten portaera definitzen duten funtzionaltasun horiek objektuaren klaseak definitzen ditu, klaseko metodoen bidez.

Ikus ditzagun adibide pare bat, bi kontzeptu horiek hobeto ulertzeko eta bizitza errealeko edozein entitatek (edo objektuk) egoera eta portaera dituela ikusteko:

  • Txakur batek egoera bat du (izena, arraza, kolorea, etab.) eta portaera bat (zaunka egitea, hezurrak lurperatzea, isatsa mugitzea, etab.). ).
  • Auto batek ere egoera bat du (uneko abiadura, uneko martxa, kolorea, luzera, zabalera, etab.) eta portaera bat (martxa igo, martxa jaitsi, keinuka piztu, etab.). ).
  • telefonoko kontaktu batek egoera bat du (izena, abizena, telefonoa, posta elektronikoa, etab.) eta portaera bat (atributua sartu —hau da, izena, abizena, telefonoa, posta elektronikoa, etab.—, atributu baten balioa aldatu eta atributu baten balioa kontsultatu).

Aurreko adibideei erreparatuz gero, bi metodo mota daudela ohartuko gara:

  1. Entitate errealak egiten dituen ekintzak, adibidez, zaunka egitea txakurraren kasuan.
  1. Objektuaren atributuen balioa aldatzen edo kontsultatzen dutenak, adibidez, kontaktu baten telefono-zenbakia aldatzen dutenak eta, ondorioz, objektuaren egoera aldatzen dutenak. Aldatzeko eta kontsultatzeko metodo horiei setter eta getter deritze, hurrenez hurren.

Mezua

Objektuek elkarrekin eragin nahi dutenean mezuak erabiltzen dituzte. Mezu bat objektu baten atributuetara eta metodoetara iristeko dagoen modua da. Mezu baten formak, lengoai gehienetan, sintaxi honi jarraitzen dio:

objektuaren_aldagaia.atala

non atala atributua edo klasearen metodoa baita. Beraz, Pertsona klasearen adibiderako, hau egin behar dugu:

//"Pertsona" motako bi objektu instantziatzen 
//ditugu argudio desberdinak dituzten 
//bi eraikitzailerekin
Pertsona pertsona1 = new Pertsona("Jon",32);
Pertsona pertsona2 = new Pertsona("Miren");

//"Izena" atributura sartuko gara balio berri 
//bat esleitzeko, eta "Jon" aldatuko dugu."
//"Ane"gatik.
per1sona1.izena = "Ane";

//"Pertsona1" objektuaren "izena" atributura 
//joko dugu haren balioa kontsultatzeko.
//"Ane" balioa "izenaAux" aldagaian ere 
//gordeko da.
String izenaAux = pertsona1.izena;

//Irakurketa metodo bat erabiliko dugu, eta  
//Ane itzuliko digu.
//hori delako "pertsona1" objektuaren "izena" 
//atributuaren balioa.
izenaAux = pertsona1.getIzena();

//1 balioa atributuari esleituko dion 
//idazketa-metodora joko dugu
//"pertsona2" objektuaren "adina".
pertsona2.setAdina(1);

//"Pertsona2" objektuaren adina bi modutan 
//jakin dezakegu:
//"adina" atributuari zuzenean edo dagokion 
//getter funtzioaren bidez.
int adinadAux = pertsona2.adina;
adinaAux = pertsona2.getAdina();

Aurreko adibidea zuzena da, baina ez da ohiko praktika. Zergatik? Arrazoia, datuak (hau da, atributuak) ezkutatzea eta funtzioak erabiltzera behartzea da , balioak kontsultatzeko eta aldatzeko (hau da, getter eta setter metodoak erabiltzea). Beste era batera esanda, datuetarako sarbidea kontrolatu behar da. Hau da, ez genuke atributuetara sartu behar —ez kontsultatzeko, ez aldatzeko—, honela:

pertsona1.izena = "Ane";
int adinaAux = pertsona2.adina;

Honela sartu beharko genuke:

pertsona1.setIzena("Ane");
int adinaAux = pertsona.getAdina();

Beraz, objektuetara bideratutako programazioak erantzuna eman zion kapsulazio izenekoaren bidez, informazioa ezkutatzeko premia horri.

Utzi erantzun bat

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Aldatu )

Google photo

You are commenting using your Google account. Log Out /  Aldatu )

Twitter picture

You are commenting using your Twitter account. Log Out /  Aldatu )

Facebook photo

You are commenting using your Facebook account. Log Out /  Aldatu )

Connecting to %s