Se afișează postările cu eticheta obiect. Afișați toate postările
Se afișează postările cu eticheta obiect. Afișați toate postările

luni, 27 ianuarie 2025

Membri de instanță și membri de clasă

În Java, o clasă poate conține variabile și metode care aparțin fie obiectelor, fie clasei în sine. Acestea se împart în două categorii importante:

Membri de instanță
  • Aparțin fiecărui obiect creat din clasă
  • Fiecare obiect are propria copie
  • Se folosesc pentru a descrie caracteristici specifice fiecărui obiect
Exemplu: culoarea unei mașini, numele unui elev

Membri statici

  • Aparțin clasei, nu obiectelor
  • Există o singură copie, comună pentru toate obiectele
  • Se folosesc pentru informații sau acțiuni generale
Exemplu: numărul total de elevi, o constantă, o metodă de calcul

De ce este important să facem diferența?

Pentru că ne ajută să folosim eficient memoria, să organizăm corect codul, să înțelegem când o informație este comună tuturor obiectelor sau specifică fiecăruia.

Membrii de instanță sunt specifici fiecărei instanțe (obiect) a unei clase, în timp ce membrii de clasă sunt partajați între toate instanțele și pot fi accesați prin intermediul numelui clasei.

Utilizarea potrivită a acestor membri depinde de scopul și necesitățile specifice ale clasei.

Un programator trebuie să cunoască aspectele legate de membrii de instanță și membrii statici ai unei clase în Java din mai multe motive:
  • Membrii de instanță permit programatorilor să definească și să gestioneze datele unui obiect individual, iar membrii statici reprezintă comportamentul comun pentru toate instanțele unei clase.
  • Înțelegerea diferențelor dintre membrii de instanță și membrii statici ajută programatorii să optimizeze utilizarea memoriei.
  • Folosirea adecvată a membrilor de instanță și membrilor statici facilitează reutilizarea codului.
  • Java este un limbaj de programare orientat pe obiect, iar înțelegerea conceptelor legate de membrii de instanță și membrii statici este esențială pentru a crea și gestiona obiecte în cadrul programelor Java.

joi, 11 ianuarie 2024

Clase și obiecte. Concepte generale

După cum am menționat în postările anterioare programarea orientată pe obiecte (POO) este o modalitate de a scrie programe în care totul este organizat în jurul unor obiecte. Fiecare obiect descrie caracteristici (cum este) și operații (ce poate face), iar aceste obiecte pot comunica și colabora între ele pentru a rezolva o problemă concretă.

Aceste caracteristici și proprietăți sunt definite într-o clasă, adică clasa este un șablon sau un prototip după care se creează obiectele. Ea definește ce proprietăți (atribute, caracteristici, variabile, date, câmpuri) și ce acțiuni (metode, funcționalitate) vor avea obiectele realizate în baza ei.

De exemplu:

Să presupunem că dorim să dezvoltăm un soft pentru gestionarea închirierii de mașini. În cadrul acestui sistem, mașinile BMW de diferite culori – roșu, verde și galben – reprezintă doar câteva dintre vehiculele concrete, reale, disponibile pentru închiriere. De asemenea, persoane precum Ecaterina, Ion și Mihai sunt exemple de clienți care pot închiria aceste mașini.

În soft, atât mașinile, cât și clienții sunt reprezentate ca obiecte. Structura generală a unei mașini este definită într-o clasă, de exemplu Mașină, iar structura unui client este definită într-o clasă separată, de exemplu Client. Fiecare mașină concretă (BMW roșu, verde sau galben) este un obiect creat pe baza clasei Mașină, iar fiecare persoană este un obiect creat pe baza clasei Client.

Important! Atunci când creăm de fapt un obiect în baza unei clase, corect spunem, instanțiem clasa. 

Obiectele de tip Client interacționează cu obiectele de tip Mașină, deoarece un client poate închiria o mașină. Această interacțiune dintre obiecte ilustrează principiul de bază al programării orientate pe obiecte, unde sistemul este construit din obiecte care colaborează între ele.

Într-o programare mai avansată, atunci când dorim să creăm interfețe grafice, cum este de exemplu fereastra ilustrată.

....surpriză....și aici vom avea la fel de a face cu obiecte și clase. De exemplu ori de câte ori apare necesitatea creării unui obiect de tip buton, cum este cel din fereastră Adauga in lista sau Calculeaza bursa va fi necesar să instanțiem clasa JButton care este prototipul unui buton. După creare, fiecărui obiect de tip JButton i se atribuie caracteristici concrete, cum ar fi textul afișat, dimensiunea, culoarea și acțiunea executată la apăsare.

În mod similar, pentru câmpurile de introducere a datelor (Nume, Prenume, Media), este necesară instanțierea clasei JTextField. Aceste obiecte permit introducerea și preluarea datelor de la utilizator.

Aceste obiecte cooperează între ele, butonul are nevoie de datele introduse în câmpurile de editare pentru a putea calcula bursa sau pentru a adăuga informațiile într-o listă.  

Datele din cutiile de editare ca să poată fi adăugate în listă este nevoie de un obiect, de exemplu de tip Elev.

Clase ca JButton sau JTextField sunt clase predefinite din pachetul Swing al limbajului Java, iar clasa Elev este una definită de programator.

Este necesar să menționăm că în limbajul Java, toate clasele fac parte dintr-o ierarhie de clase, iar părintele tuturor claselor Java este clasa Object.

Mai jos este un exemplu de ierarhie de clase predefinite în limbajul Java:

Excepţiile reprezintă mecanismul java folosit pentru tratarea erorilor ce  apar în timpul execuţiei programelor

Nu ne oprim momentan la ele, dar vom reveni la termenul de ierarhie când vom studia principiul moștenirii. 😉

În cele ce urmează vom studia cum să definim propriile clase în limbajul Java și cum să le instanțiem.

Mai țineți minte care este sinonimul cuvântului a instanția? A crea o instanță (obiect) pentru o clasă.

Succes!
❤️