Board index » GFZONE NEWS » I love IT » Programare

 


Post new topic This topic is locked, you cannot edit posts or make further replies.
Author Message
 Post subject: [JAVA] Clase
PostPosted: Fri Feb 26, 2021 12:04 pm
  

GFZONE Editor
GFZONE Editor

Joined: Sat Jun 29, 2019 4:07 pm
Posts: 36
- 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:
<ModificatoriClasa> pot fi: public, abstract, final (cel mult o aparitie si, de preferat, in aceasta ordine);
<Identificator> reprezinta numele clasei;
<ListaTipuriReferinta> este o lista de tipuri de referinta, numita si tipuri generice, de forma: <TipReferinta1>, <TipReferinta2>, ..., <TipReferintaN> si este cuprinsa intre simbolurile "<" si ">";
<NumeClasa> reprezinta numele altei clase (denumita CLASA DE BAZA sau SUPERCLASA);
<ListaInterfete> este o lista de nume de interfete de forma: <NumeInterfata1> , <NumeInterfata2>, ... , <NumeInterfataN>;
<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();


          Top  
 
 
Post new topic This topic is locked, you cannot edit posts or make further replies.



Who is online

Users browsing this forum: No registered users and 3 guests


Display posts from previous:  Sort by  
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum


cron
Powered by GFZONE © 2019 GFZONE Design Team