QReferate - referate pentru educatia ta.
Referatele noastre - sursa ta de inspiratie! Referate oferite gratuit, lucrari si proiecte cu imagini si grafice. Fiecare referat, proiect sau comentariu il poti downloada rapid si il poti folosi pentru temele tale de acasa.



AdministratieAlimentatieArta culturaAsistenta socialaAstronomie
BiologieChimieComunicareConstructiiCosmetica
DesenDiverseDreptEconomieEngleza
FilozofieFizicaFrancezaGeografieGermana
InformaticaIstorieLatinaManagementMarketing
MatematicaMecanicaMedicinaPedagogiePsihologie
RomanaStiinte politiceTransporturiTurism
Esti aici: Qreferat » Referate informatica

Tehnici de Programare



Tehnici de Programare



Ce este Java?


Java este un limbaj de programare orientat-obiect dezvoltat de JavaSoft, o companie din cadrul concernului Sun Microsistems. Proiectul inceput sub numele de "Green" in primavara anului 1991 avind ca scop dezvoltarea unui suport pentru comertul electronic avea sa duca la aparitia Java, care promite se fie cel mai robust, usor de utilizat si versatil limbaj de programare disponibil astazi. Aparut ca versiune Alpha in 1995, Java include cele mai importante caracteristici ale limbajelor de programare anterioare, cum ar fi C si C++, permitind creearea de aplicatii puternice, precum si particularitati cum ar fi suportul multimedia inclus, lasind totusi deoparte caracteristicile suparatoare din C/C++ cum ar fi mostenirea multipla, supraincarcarea operatorilor si pointerii.



Probabil cel mai important beneficiu adus de Java este totusi portabilitatea. Nu mai este necesara dezvoltarea de aplicatii separate pentru platforme diferite, o aplicatie creeata fiind folosibila pentru platforme multiple, cum ar fi Windows, Unix si Machintosh, prin intermediul conceptului de "masina virtuala".


2. Tranzitia de la C/C++ la Java


Desi Java este modelat dupa C/C++, exista totusi citeva diferente majore fata de acesta:


Prin compilarea programelor Java nu se obtine cod obiect


Cind sursele C/C++ sint compilate se obtine cod obiect, adica un format obiect specific platformei pentru care au fost compilate. Pe de alta parte, sursele Java, prin compilare, duc la un format numit bytecode care nu este nici cod obiect si nici sursa. Un beneficiu al acestui format este acela ca nu este dependent de nici o platforma, ceea ce duce la portabilitatea sa. El este executat prin intermediul uni interpretor care transleaza bytecode-ul in cod masina. Un alt beneficiu este acela ca este eliminat pasul de link-editare. Interpretorul este cel care apeleaza bibliotecile la cerere.


  • In Java nu exista apeluri externe

In C++ se pot folosi proceduri si apeluri ale functiilor de sistem prin intermediul apelurilor externe in sintaxa C, declarind o functie C in afara spatiului de nume C++. In Java nu exista o astfel de sintaxa, ca rezultat imediat fiind faptul ca nu este posibila folosirea directa a codului-sursa C/C++.

Totusi, Java incorporeaza o gama larga de functionalitati in interfata Java API, pentru grafica, multimedia, lucru in retea, interogarea sistemului, I/O cu fisiere, si multe altele.

Este de asemenea posibila folosirea surselor din C/C++, insa intr-o maniera complicata, si nu face obiectul laboratorul de fata. Totusi ar trebui reamintit ca aceasta folosire duca la limitarea drastica a portabilitatii.


  • In Java nu exista mostenire multipla

Deseori in programarea orientata-obiect de nivel avansat este necesara creearii unui obiect care sa mosteneasca caracteristicile a mai mult de un alt obiect, caz in care apare mostenirea multipla. Cu cit aplicatia este mai complexa, cu atit creste necesitatea folosirii acestui tip de mostenire.

Java inlocuieste mostenirea multipla cu un nou concept, numit interfata despre care se va vorbi mai pe larg in laboratoarele urmatoare.


  • Java nu are probleme legate de spatiile de nume

In C++ clasele, chiar daca fac parte din module separate ale proiectului, trebuie totusi sa respecte principiul unicitatii numelor. Asta inseamna ca nici o clasa din cadrul unui proiect nu trebuie sa aiba un nume care coincide cu o alta din cadrul acelui proiect. Java evita acest lucru prin creearea unui spatii de nume ierarhizat pe mai multe nivele de precedenta, incepind cu nivelul cel mai inalt corespunzator spatiului de nume al pachetului si terminind cu cel mai scazut, adica cel al spatiului de nume al blocului local. Astfel, fiecare nivel in spatiile de nume este folosit pentru a construi un nume identic pentru fiecare obiect, permitind ca doua clase cu acelasi nume sa existe in pachete diferite.


  • In Java nu exista pointeri

Sint probabil cunoscute deja problemele puse de manipularea memoriei prin intermediul pointerilor. In Java exista totusi pointeri, insa nu in sensul cunoscut pina acum. Fiecare instanta a unui obiect este referit prin intermediul unui pointer, insa la atit se reduce functionalitatea lor.


  • In Java nu exista fisiere header separate

Fisierele header sint o parte importanta a programarii C++. O mare majoritate din programatori folosesc fisierele header ca fiind documentatie (chiar daca impropie) deoarece fisierele header pot specifica, dintr-o privire, ce face si cum trebuie folosita o anume clasa.

In java nu exista delimitarea intre declarare si definire, corpul functiiei fiind corp component al "declaratiei" clasei, nemaifiind o zona a sursei care sa asigure o "documentare implicita". Pentru a compensa aceasta deficienta, Java Developer's Kit contine doua instrumente pentru a usura munca: javap si javadoc.

Desasamblorul javap poate fi folosit pentru tiparirea semnaturilor claselor, in timp ce javadoc este un generator de documentatie in format .html, generata din comentariile continute in cadrul codului-sursa.


  • In Java nu exista functii independente

Java este in primul rind un limbaj de programare orientat pe obiecte, si de aceea s-a considerat necesar sa se renunte la functiile "stand-alone". Astfel, toate aplicatiile sunt obiecte si toate clasele Java sunt derivate dintr-un clasa primara, numita Object.


  • Unele programe Java nu au functie main()

Unele programe Java, numite applet-uri nu au nevoie de o functie main (probabil v-ati intilnit deja cu aceasta notiune legata de World-Wide-Web). Totusi, fiecare clasa Java poate avea o metoda main() si toate aplicatiile Java au un echivalent al functiei main(), prin intermediul careia parametrii se transmit aplicatiei.


  • In Java nu exista sabloane

In C++ exista posibilitatea scrierii unor metode generice numite sabloane (templates), care permit scrierea unui bloc de cod pentru implementarea mai multor tipuri asemanatoare de argumente. De asemenea, acestea mai pot fi folosite si pentru generarea automata a claselor, ceea ce este un alt avantaj important.


  • Java detine mecanisme de tratare a exceptiilor

Conditiile de eroare a caror aparitie este improbabila in conditii de utilizare normala, se numesc exceptii. De exemplu, o functie care calculeaza radacina patrata a unui numar ar trebui sa primeasca ca argumente doar numere pozitive, totusi este posibila transmiterea si a unui numar negativ. Acest gen de erori pot duce de la o functionare deficitara, pina la blocarea programului sau chiar la accesul in zone de memorii protejate ale sistemului, ceea ce duce fie la blocarea sa, fie la creearea unor brese de securitate.

Desi majoritatea versiunilor de C++ actuale include un mecanism de tratare a axceptiilor, acestea nu au reusit sa se impuna in masura suficient de mare. Pe de alta parte, Java obliga folosirea mecanismelor de tratare a eceptiilor atunci cind se incearca apelarea unei metode ce este o generatoare virtuala de exceptii.


  • Java are un mecanism de "colectare a gunoiului" automat

Desi destructorii ofera o posibilitate buna de management a memoriei, acest mecanism nu este lipsit de posibilitatea aparitiei erorilor. Stergerea unei zone de memorie care se doreste inca a se folosi duce la blocarea programului. De asemenea, lasarea zonelor de memorie nefolosite inca active, duce la epuizarea spatiului de memorie disponibil.

Java are un mecanism propriu de recuperare a zonelor de memorie ce nu mai sint folosite (garbage). Cu ajutorul acestui mecanism se pastreaza evidenta zonelor de memorie care sint folosite si a celor care nu mai sint folosite, realizindu-se alocarea/dealocarea memoriei in mod automat.

3. Prezentarea mediului integrat (IDE) folosit in cadrul laboratorului



In cadrul laboratorului se va folosi mediul de dezlovtare J Builder 2.0 al firmei Borland.


  • Prima aplicatie Java

Ca de obicei, prima aplicatie va fi una care va afisa mesajul "Hello, world". Pentru aceasta, vom crea un nou fisier, numit MyApp.java.


Programul va fi:


public class MyApp


}


Atentie! In Java este obligatoriu ca numele clasei sa coincida cu cel al fisierului si extensia trebuie sa fie .java !!!


Functia main() este, la fel ca in C++ punctul de intrare in program. Numai ca aici, functia main() trebuie sa fie membrul clasei care are acelasi nume ca al fisierului, in caz contrar ea nu va fi executata.


Obiectul System refera sistemul in care este executat programul, .out este iesirea standard, iar printnl afiseaza sirul dat ca parametru. In C, echivalentul acestui apel este printf, iar in C++ apelul cout <<.


Probabil ati observat ca mediul de dezvoltare inchide fereastra imadiat dupa executie. Sa incercam sa introducem o functie care sa astepte un caracter. Acesta este urmatorul:


System.in.read( care returneaza un int (de fapt urmatorul byte din stream).


Aceasta metoda insa poate genera execeptii, si ele trebuiesc preluate. O exceptie este un obiect (o clasa) in care sint stocate informatii cu privire la ceea ce a generat acea exceptie. Mecanismul este format din doua parti, una care "arunca" exceptia ( throw ) si una care o "prinde" ( catch ).



metoda



try


catch (ExceptionType1 e)


catch (ExceptionType2 e)


finally


In blocul try se apeleaza metoda respective, si se initializeaza mecanismul de prindere a exceptiei. Daca in metoda() apare o eroare, se "arunca" exceptia, urmind ca aceasta sa fie "prinsa" de catch­-urile de la sfirsitul blocului try. ExceptionType1 si ExceptionType2 sunt clase derivate din Exception, restringind tipul de exceptie aparuta, si in consecinta, tratarea ei.


In concluzie, noul program va arata astfel:


public class MyApp


catch( Exception e)

}

}



Tema:


  1. Sa se scrie un program Java care sa insumeze primele 100 numere intregi si sa afiseze rezultatul.

  1. Sa se scrie un program care calculeaza 50 factorial si afiseaza rezultatul.

  1. Sa se scrie un program Java care sa calculeze madia aritmetica a 5 intregi, dati intr-un tablou.

Nu se poate descarca referatul
Acest referat nu se poate descarca

E posibil sa te intereseze alte referate despre:


Copyright © 2024 - Toate drepturile rezervate QReferat.com Folositi referatele, proiectele sau lucrarile afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul referat pe baza referatelor de pe site.
{ Home } { Contact } { Termeni si conditii }