Jump to content

Timp rămas până la zilele B-Zone

V-am pregătit o mulțime de evenimente. Click aici

La mulți ani B-ZONE!

V-am pregătit o mulțime de evenimente. Click aici

[JAVA] Clase


TLG Andrei26
 Share

Recommended Posts

Clasa este entitatea de baza a unui limbaj orientat pe obiecte. In Java este obligatorie definirea a cel putin unei clase. Nu este insa obligatorie crearea unei instante (unui obiect) a aceleasi clase, caz in care se vor utiliza date si metode statice.

- O declaratie de clasa in limbajul Java are urmatoarea sintaxa generala:

[<ModificatoriClasa>] class <Identificator> [<ListaTipuriReferinta] [extends <NumeClasa>] [implements <ListaInterfete>]{
	[<DeclaratiiCorpClasa>]
}

Unde:

  1. <ModificatoriClasa> pot fi: public, abstract, final (cel mult o aparitie si, de preferat, in aceasta ordine);
  2. <Identificator> reprezinta numele clasei;
  3. <ListaTipuriReferinta> este o lista de tipuri de referinta, numita si tipuri generice, de forma: <TipReferinta1>, <TipReferinta2>, ...,  <TipReferintaN> si este cuprinsa intre simbolurile "<" si ">";
  4. <NumeClasa> reprezinta numele altei clase (denumita CLASA DE BAZA sau SUPERCLASA);
  5. <ListaInterfete> este o lista de nume de interfete de forma: <NumeInterfata1> , <NumeInterfata2>, ... , <NumeInterfataN>;
  6. <DeclaratiiCorpClasa> este o lista de declaratii de forma:
  • <DeclaratiiMembruClasa>, care, la randul ei poate fi <DeclaratieAtribut> sau <DeclaratieMembru>;
  • <InitializatorStatic>;
  • <DeclaratiiConstructor>;

 

- Daca o clasa este declarata intr-un pachet numit Pachet, atunci numele complet al clasei este Pachet.<Identificator>

Exemplu pentru crearea si importarea pachetelor, consideram doua fisiere-sursa:

 

1.

package pachet.exemplu;

public class ClasaUnu{
	public ClasaUnu(){
    	System.out.println("Suntem in ClasaUnu");
    }
}

2.

package pachet.exemplu;

public class ClasaDoi{
	public ClasaDoi(){
    	System.out.println("Suntem in ClasaDoi");
    }
}

Dupa compilarea acestor fisiere-sursa, vom crea un alt fisier-sursa care va importa clasele definite in pachetul pachet.exemplu. Acesta poate fi plasat oriunde in sistemul de fisiere. Continutul fisierului este:

 

import pachet.exemplu.*;

public class TestPachet{
	public static void main(String[] args){
    	ClasaUnu cu = new ClasaUnu();
      	ClasaDoi cad = new ClasaDoi();
    }
}

La executie se vor putea accesa clasele definite in pachetul pachet.exemplu si rezultatul va fi:

 

Suntem in ClasaUnu

Suntem in ClasaDoi

 

- Un constructor al unei clase este o metoda care are numele respectivei clase. Constructorii nu returneaza nimic si nu au tip (nici maca void). Constructorii sunt apelati automat in momentul crearii unui obiect din clasa respectiva si sunt utilizati pentru initializarea datelor membre.

- Daca pentru o clasa nu declaram nici un constructor , atunci la compilare se creeaza automat un constructor implicit care este public, nu are nici un  parametru si executia sa nu are nici un efect. A nu se confunda constructorul implicit (cel generat automat) cu cel fara nici un parametru (scris de programator). Daca declaram un constructor, atunci nu se mai genereaza constructorul implicit.

- Destructorul este metoda care se apeleaza automat la distrugerea unui obiect. Destructorii sunt extrem de utilizati in limbajul C++, mai ales pentru eliberarea resurselor ocupate de respectivul obiect. In java, lucrurile stau astfel datorita colectorului de gunoaie, care are drept sarcina eliberarea automata a memoriei la care aplicatia nu mai are nici o referinta. Prin suprascrierea metodei finalize() din clasa Object, programatorul poate specifica o multime de actiuni, care vor fi executate odata cu distrugerea obiectului.

- Exemplu:

 

Fie clasa Cerc:

 

class Cerc{
	//Date membre
  	int raza, x, y;
  	//Constructor fara parametri
  	Cerc(){
    	raza = 1;
    	x = 20;
      	y = 20;
    }
  	//Constructor cu parametri
  	Cerc(int r, int a, int b){
    	raza = r;
      	x = a;
      	y = b;
    }
  	//Metoda publica
  	public void setRaza(int r) { raza = r; }
} //Terminarea clasei Cerc

Aceasta contine trei date membre de tip int - raza,x si y -, doi contructori, unul cu parametri si unul fara, si o metoda publica setRaza();

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.