Limbajul de programare Java
Un limbaj de programare este un limbaj artificial care permite comunicarea intre programatori si masini. In functie de apropierea de limbajele naturale, limbajele de programare pot fi clasificate in limbaje de nivel scazut (limbaj de asamblare), respectiv limbaje de nivel inalt (C, C++, Java, C#, Smalltalk).
In functie de modul de traducere a programelor in cod masina, limbajele de programare pof fi clasificate in limbaje compilate (C, C++, C#, Java, Objective-C) si limbaje interpretate (PHP, JavaScript).
Compilarea reprezinta translatarea unui program dintr-un limbaj de nivel inalt in cod masina.
Avantajele limbajelor de programare compilate includ viteza de executie superioara si codul sursa protejat. Dintre dezavantaje poate fi mentionata necesitatea compilarii codului sursa dupa fiecare modificare.
Interpretarea reprezinta translatarea unui program dintr-un limbaj de nivel inalt in cod masina, instructiune cu instructiune, pe masura executiei.
Limbajele de programare interpretate au in lista de avantaje intretinere usoara a programelor si faptul ca orice modificare se reflecta imediat in program. Dezavantajele limbajelor interpretate includ si viteza de executie scazuta.
Java este un limbaj de programare orientat pe obiecte care a fost dezvoltat de catre James Gosling si colegii sai de la Sun Microsystems la inceputul anilor 90. Limbajul Java poate fi utilizat cu succes pentru a dezvolta aplicatii care ruleaza pe un singur calculator sau aplicatii care sunt distribuite prin intermediul serverelor si clientilor, intr-o retea. De asemenea, limbajul Java poate fi utilizat pentru a dezvolta module sau applet-uri pentru aplicatii web.
Java este un limbaj facil de utilizat, chiar si de programatorii neprofesionisti, datorita eliminarii mostenirii multiple, a supraincarcarii operatorilor sau a pointerilor.
O alta caracteristica importanta a limbajului Java o reprezinta portabilitatea, Java fiind independent de masina pe care ruleaza. Abilitatea de a compila o singura data si de a rula pe diverse platforme se realizeaza prin intermediul compilatorului Java si a masinii virtuale Java – Write Once, Run Anywhere. Natura limbajului Java il face ideal pentru cei care dezvolta aplicatii pentru platforme diferite. Codul binar Java este independent de platforma; din acest motiv, aplicatiile Java sunt ideale pentru diverse medii (echipamente mobile, Internet).
Pozitie 09.2019 | Limbaj programare | Calificativ 09.2019 | Variatie 09.2018 |
---|---|---|---|
1 | Java | 16.66% | -0.78% |
2 | C | 15.21% | -0.24% |
3 | Python | 9.87% | +2.22% |
4 | C++ | 5.64% | -1.76% |
5 | C# | 3.40% | +0.10% |
6 | Visual Basic | 3.30% | -2.02% |
7 | JavaScript | 2.13% | 0.00% |
8 | SQL | 1.94% | -0.12% |
Limbajul Java este unul din cele mai utilizate limbaje de programare. Acest lucru este dovedit si de diversi indecsi care masoara popularitatea limbajelor de programare. De exemplu, in septembrie 2019 limbajul Java ocupa prima pozitie a indexului Comunitatii Programatorilor TIOBE (http://www.tiobe.com).
Programarea orientata pe obiecte
Limbajul Java a fost construit folosind conceptele modelului orientat pe obiecte.
Modelul orientat pe obiecte este bazat pe clase, obiecte si interactiunea dintre obiecte (prin intermediul mesajelor). Obiectele reprezinta componente software care modeleaza entitati sau concepte din lumea reala si care detin: o identitate, definita printr-un nume, o stare, definita prin atribute, si un comportament, definit prin metode. Obiectele care descriu acelasi tip de entitate sau concept pot fi grupate in multimi de obiecte, denumite clase.
Pentru reprezentarea claselor poate fi utilizat un limbaj vizual de modelare a sistemelor informatice, precum UML (Unified Modeling Language). Cu ajutorul acestui limbaj clasele pot fi descrise prin intermediul unor diagrame care specifica numele, atributele si metodele clasei.
Modelul orientat pe obiecte este caracterizat de o serie de principii: abstractizarea, incapsularea, mostenirea si polimorfismul.
Abstractizarea reprezinta procesul de simplificare a realitatii, prin retinerea caracteristicilor, comportamentului si relatiilor esentiale ale obiectelor, pentru constituirea unui model. De exemplu, un student poate fi caracterizat prin atribute precum: nume, varsta, an. De asemenea, pentru un student poate fi stabilit un comportament: getNume(), setVarsta(), getAn(), setAn(). Prin intermediul procesului de abstractizare retinem elementele comune ale studentilor si ignoram elementele particulare ale acestora. În felul acesta definim o clasa, adica o multime de obiecte care detin o structura comuna si un comportament comun.
Incapsularea exprima proprietatea de opacitate a obiectelor cu privire la structura lor interna si modul de implementare a metodelor. Fiecare element al sistemului poate executa actiuni, isi poate modifica starea si poate comunica cu alte elemente fara a dezvalui facilitatile detinute. Respectand principiul incapsularii, datele membre sunt declarate private sau protected si nu pot fi accesate direct. Pentru citirea sau modificarea datelor membre protejate in clase pot fi definite functii membre de tip public, care pot fi apelate din orice punct al domeniului de definitie al clasei.
Mostenirea se refera la relatiile existente intre clase. O astfel de relatie permite construirea unei noi clase, denumita derivata, pornind de la o clasa existenta, denumita clasa de baza. Clasele de baza se mai numesc si superclase, in timp ce clasele derivate se mai numesc si subclase.
Daca dorim sa utilizam si alte concepte, precum cel de tutor, atunci trebuie sa introducem o noua clasa.
Plecand de la clasele Student si Tutor putem muta elementele comune celor doua concepte intr-o noua clasa, Persoana. Aceasta forma de abstractizare poarta numele de mostenire. Clasele de pe nivelul inferior mostenesc elemente, care definesc starea si comportamentul, de la clasa de pe nivelul superior.
Polimorfismul reprezinta abilitatea de a procesa obiectele diferit, in functie de tipul lor. Polimorfismul descrie situatia in care un nume se refera la doua metode diferite. In limbajul Java exista doua tipuri de polimorfism: tipul de supraincarcare, respectiv tipul de supradefinire.
Tehnologii Java
Limbajul Java pune la dispozitie mai multe platforme de lucru pentru rezolvarea unor probleme din cele mai diverse domenii.
Java SE (Standard Edition)
• reprezinta platforma standard de lucru pentru dezvoltarea de aplicatii si applet-uri;
• cuprinde doua componente de baza: JRE (Java Runtime Environment) si JDK (Java Development Kit).
Java EE (Enterprise Edition)
• este standardul folosit în industrie pentru a dezvolta aplicatii Java server-side portabile, robuste, scalabile si sigure;
• avand la baza Java SE, Java EE furnizeaza servicii web, componente si APIuri care permit implementarea de arhitecturi orientate pe servicii (SOA) si de aplicatii Web 2.0.
Java ME (Micro Edition)
• este o colectie de tehnologii si specificatii utilizate pentru a crea o platforma care corespunde cerintelor echipamentelor mobile;
• elementele acestei colectii pot fi combinate pentru a crea un mediu de executie specific unui anumit echipament.
Instalarea Java SDK
Pentru dezvoltarea de programe Java veti avea nevoie pentru inceput de mediul de dezvoltare Java SE SDK, care cuprinde o serie de unelte printre care compilator, masina virtuala, depanator. Kitul de instalare poate fi descarcat gratuit de la adresa http://www.oracle.com/technetwork/java/javase/downloads, iar documentatia se gaseste la adresa https://www.oracle.com/technetwork/java/javase/documentation/.
La finalizarea procesului de instalare in directorul director_instalare\bin pot fi identificate o serie de unelte care sunt oferite de mediul de dezvoltare:
• compilatorul Java (javac – converteste codul sursa in cod binar Java);
• interpretorul Java sau masina virtuala Java (java – executa codul binar rezultat in urma compilarii).
De asemenea, pentru sistemele Windows trebuie realizate o serie de configurari in ceea ce priveste variabilele sistem CLASSPATH si PATH, dupa cum urmeaza:
CLASSPATH = director_instalare; .\
PATH = %PATH%; director_instalare/bin
Programele Java pot fi scrise folosind de la cel mai simplu editor de text (notepad) pana la medii integrate de dezvoltare a aplicatiilor (JDeveloper, Eclipse, IntelliJ IDEA Community Edition). Se recomanda folosirea mediului de dezvoltare Eclipse, care poate fi descarcat de la adresa https://www.eclipse.org/downloads/.