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

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!
❤️