Klase bat entitate abstraktu bat da, eta objektu edo instantzia multzo baten abstrakzioa errepresentatzen du. Halaber, objektu baten forma definitzen duen eredua da. Hau da, klase bat ez da objektu bat, baina objektuak eraikitzeko erabiltzen da.

**Objektuetara bideratutako programazioan**, klasea funtsezko mekanismoa da, adibidez Java lengoaian. Klasearen barnean definitzen dira objektu horrek izango dituen atributuak eta metodoak. Horrek esan nahi du klase honetako sortzen diren objektu guztiak elkarbanatuko dituztela atributu eta metodo berdinak. Gainera, estatu eta portaera berdineko objektu taldeak izango dira klaseak. Informazioa-ezkutatzeko egokiak dira klaseak.

Gainera, hainbat objektu sortu daitezke klase berdinetik eta instantzia hauek balore desberdinak izan ditzakete.

Adibidea
--------

Adibidez, katua deitzen den klase bat existitzen da, eta hainbat ezaugarri(atributuak) honen barruan definitzen ditugula , adibidez: kolorea, pisua... eta hainbat jokaera(metodoak), hala nola, salto egin, jan... 

Klase honako instantzia bat egiten dugunean katu guztiek atributu eta metodo berdinak izango dituzte, baina atributu bakoitzaren balioa desberdina izan daiteke.

```
public class Katua {
 //atributak
 
 String kolorea;
 double pisua;
 
 //eraikitzailea
 public Katua(String pKolorea, double pPisua) {
 kolorea = pKolorea;
 pisua = pPisua;
 }
 
 //metodoak
 
 public void saltoEgin(){
 
 }
 
 public void jan(){
 
 }
 
}

```

  

Objektu baten erreferentzia nahi bada, objektua sortu beharko da new eragilearen bitartez(instantziazioa):

New objektuak sortzeko eragilea da, eta hainbat programazio lengoaietan erabiltzen da, hala nola, Java, C, JavaScript...

new eragiketak objektu berri bat sortuko du, objektuarentzat existitzen diren eraikitzailearen bati deituz.

  

Hurrengo formatua jarraitzen du:

`<klase-izena> <erakuslea> = new <eraikitzailearen-izena>[<parametroak>]`

<klase-izena>: Katua

<erakuslea>: erakusle batek objektu bati apuntatzen dio. Edozein hitz edo karaktere izan daiteke.

<eraikitzailearen-izena>: Klase izena eta eraikitzailearen izena berdina da. Honen funtzioa da objektua sortzean defektuz balore eta nahi diren metodoak hasieratzea.

[<parametroak>]: Klase barruan atributuak baloreak jasotzeko, objektua sortzean.

Adibidez:

```
Katua a = new Katua("Beltza", 10.5);
a.saltoEgin();

```

Sintaxia
--------

```
(deskribatzaileak)class  KlaseIzena{
 //atributak
 
 private String kolorea;
 (deskribatzailea)double pisua;
 
 //eraikitzailea
 public Katua(String pKolorea, double pPisua) {
 kolorea = pKolorea;
 pisua = pPisua;
 }
 
 //metodoak
 
 (deskribatzailea) void saltoEgin(){
 
 }
 
 public void jan(){
 
 }
 
}

```
Deskribatzaileak edo atzipen-motak:

* **private** : Murriztatzailena da, atzipena bakarrik klase beratik.
* **public** : Metodo bat beste klase batzuetatik deitua izan daitekeela esan nahi du, edo klasea, klase horren hierarkiatik kanpoko beste klase batzuek erabil dezaketela.
* **protected** : Atzipena bakarrik herentziaz sortutako ume klaseetatik.

Atributuak, metodoak eta eraikitzaileak
---------------------------------------

### Atributuak

Atributu bat objektu baten propietate bat definitzen duen espezifikazioa da. Hainbat motako atributuak egon daitezke, hala nola, *String*, *Integer*, *double*...

| Literala | Javazko espresioa | Adibideak |
| --- | --- | --- |
| Integer(int) | Zenbaki osokoa | 1234 |
| String | "Karaktere-katea" | "Kaixo mundua" |
| Double | Doitasun bikoitzeko zenbaki erreala | 12.345 |

Adibidez, Katua bi motatako atributuak ditu, alde batetik kolorea *String* motatakoa dena eta beste aldetik, pisua *double* motatakoa.

### Metodoak

Metodoak beti objektuetara bideratuta daude eta horiek zehazten dituzte klase baten objektuak izango dituzten portaerak. Klase bat hainbat metodo izan dezake bere barnean. Adibidez, beheko aldean dagoen Katua klasea bi metodo ditu, hau da, bi portaera desberdin definitu ditugu katua klasearentzat, salto egin eta jan.

### Eraikitzaileak

Objektu bat sortzen denean, bere atributuak hasieratzen dira eraikitzaile metodoaren bitartez. Klase baten metodo berezia, klase horretako objektuak sortzeko eta hasieratzeko balio dena. 

* Bat baino gehiago egon daiteke: Parametro desberdinekin.
* Ez badugu sortzen, adibidez, Java lengoaian defektuzkoa erabiliko du. Defektuzko eraikitzaileak objektu berriaren atributuak defektuzko balioekin hasieratzen ditu.

Metodo Eraikitzaileek:

* Klasearen **izen berdina** daukate.
* Ez dute ezer itzultzen (ez void eta return ere ez).

Komenigarria da gutxienez eraikitzaile bat izatea. Horren ezean, sistemak berak defektuzko eraikitzailea sortuko du.

Erreferentziak
--------------

1. ↑   **(Ingelesez)** «1maila/1\_-\_Gaia-Sarrera\_v4.pdf at master · anderra57/1maila» *GitHub* (Noiz kontsultatua: 2021-12-16).
2. ↑   **(Gaztelaniaz)**  *Crear objetos y clases en Java. Constructores, class y new.*  (Noiz kontsultatua: 2021-11-09).
3. 1 2   zuazo99.  (2021-12-16). *Wikipedia.*  (Noiz kontsultatua: 2021-12-16).
4. ↑   **(Gaztelaniaz)** «¿Qué es una Clase en Java? Ejemplos» *Java desde Cero* 2020-05-05 (Noiz kontsultatua: 2021-11-09).

Ikus, gainera
-------------

* Objektuak
* Java lengoaia

Kanpo estekak
-------------

|  |  |
| --- | --- |
| Autoritate kontrola | 
* **Wikimedia proiektuak**
* Wd Datuak: Q3275545

 |

* Wd Datuak: Q3275545