4.4.7 Clase, obiecte
În JAVA întreg programul este o clasă
Metoda main este executată automat cînd programul începe să ruleze
Clasele reprezintă inima limbajului Java. Orice concept vom implemanta în Java îl vom încapsula într-o clasă.
Accesarea unei clase
Puteti accesa o clasa cu folosind numele ei complet
import:
Cu import nu importam cod ci importam o cale spre pt a evita folosirea intregului nume
import:
Putem importa tot ce tine de o clasa folosind *
un singur nivel de *
nu putem folosi import java.*.*
Putem importa metodele si campurile statice
De exemplu:
import static java.lang.System.*;
out.println(„FTC competition”);
static asociat cu clasa
non static asociat cu instanţa clasei
Obiectele se caracterizează prin:
- COMPORTAMENT
- STARE
- IDENTITATE
FOLOSIM
- SUBSTANTIVE PENTRU NUMELE CLASELOR
- VERBE PENTRU NUMELE METODELOR
O clasă reprezintă un plan după care vor fi create obiectele. Evident că nu toate obiectele vor fi la fel. La fel ca şi în cazul unui anumit tip de maşină unde poate să difere culoarea, anumite dotări etc.
Dacă suntem în curtea şcolii şi îl strigăm pe Mircea mai mulţi elevi vor răspunde deoarece vor crede că ei sunt celor care vrem să ne adresăm. Ca să nu creeăm confuzie îl vom apela folosind numele lui întreg, Mircea Măierean. Totuşi dacă vom merge în hub-ul de robotică şi îl vom chema pe Mircea să vadă noua manual de joc FTC doar Mircea Măierean va răspunde. Va răspunde doar el deoarece membrii echipei de robotică au nume diferite.
În mod similar putem importa un pachet ce conţine clasă de care avem nevoie iar apoi vom putea accesa respectiva clasă scriindu-i doar numele
Exemplu
import com.qualcomm.robotcore.hardware.DcMotor;
DcMotor motor1=null;
Obiectele sunt instanțe ale claselor!
Obiecte din clasa Masina:

Obiecte din clasa Animal:

În Java, conceptele de clase și obiecte sunt esențiale pentru programarea orientată pe obiecte (OOP). Perspectiva FTC (Fields, Types, and Constructors) se referă la o metodă structurată de înțelegere și implementare a claselor și obiectelor. Să detaliem fiecare componentă din această perspectivă:
1. Fields (Câmpuri)
Câmpurile sunt variabilele de instanță ale unei clase. Ele definesc starea sau proprietățile pe care obiectele clasei le pot avea.
- Exemplu:
public class Person
{ private String name; private int age; }
În acest exemplu,name
șiage
sunt câmpuri ale claseiPerson
.
2. Types (Tipuri)
Tipurile se referă la tipurile de date ale câmpurilor, metodelor, și return types ale metodelor dintr-o clasă. Tipurile pot fi primitive (e.g., int
, boolean
, char
) sau de referință (e.g., String
, Person
).
- Exemplu:
public class Person {
private String name; // Tip de referință private
int age; // Tip primitiv
public String getName()
{ return name; }
public void setName(String name)
{ this.name = name; } }
3. Constructors (Constructori)
Constructorii sunt metode speciale folosite pentru inițializarea obiectelor. Ei au același nume ca și clasa și nu au un tip de returnare.
- Exemplu:
public class Person
{ private String name;
private int age; // Constructor fără argumente
public Person()
{ this.name = "Unknown"; this.age = 0; }
// Constructor cu argumente
public Person(String name, int age)
{ this.name = name; this.age = age; } }
Crearea și utilizarea unui obiect
Pentru a crea un obiect dintr-o clasă, folosim cuvântul cheie new
urmat de apelul constructorului.
- Exemplu:
public class Main
{ public static void main(String[] args)
{ // Crearea unui obiect folosind constructorul fără argumente Person person1 = new Person();
// Crearea unui obiect folosind constructorul cu argumente Person
person2 = new Person("Alice", 30); // Accesarea și modificarea câmpurilor prin metodele getter și setter
System.out.println(person2.getName()); // Output: Alice person2.setAge(31);
System.out.println(person2.getAge()); // Output: 31 } }
Rezumat
- Fields (Câmpuri): Definirea stării obiectului.
- Types (Tipuri): Tipurile de date pentru câmpuri și metode.
- Constructors (Constructori): Inițializarea obiectelor clasei.
Aceste concepte fundamentale sunt esențiale pentru dezvoltarea aplicațiilor orientate pe obiecte în Java și ajută la structurarea clară și eficientă a codului.