Programare Orientata Pe Obiecte Alexandru Ene

download Programare Orientata Pe Obiecte Alexandru Ene

of 65

  • date post

    16-Nov-2015
  • Category

    Documents

  • view

    184
  • download

    47

Embed Size (px)

Transcript of Programare Orientata Pe Obiecte Alexandru Ene

  • Alexandru Ene Cosmin $tirbu

    fu9ftffinm{eo

    nrieffitetd ps o6det&teorie fn ep{it*{iitie Save

    Editura llniversititii din Pitegfi2008

  • Alexandru Eneo Cosmin $tirbu

    Programare orient*n pe obiecteteorie pi aplica{ii in Java

    o Introducereo Aplica{ii elementare in Javao Claseo Vectori. Matricio Stringurio Mo$tenireao Clase abstracte. Interfeteo Polimorfismo Grafica in Java

    Editura Universitn{ii din Pitegti

  • fiffir*1., iirau, ':,i

    =i ,o'.. ,,:

    (ffriurrgit&tii itnStr. I6rgu din Vale, nr.l,

    I 10040, Pitetti, jud. Aigeq

    teVfax: 40 248 2l.64-48''

    liiiillttr i-t::il i:=.ll.iiii iL$i. 'li , "=*$ rir

    ilr

    Copyright O 2008 - Editura Universitifii din PitegtiToate drepturile asupra acestei edilii sunt rczewate

    Editurii Universitilii din pitegti.Nici o parte din acest volum nu poate fi reprodusd

    sub nicio form6, ftrd permisiunea scrisd a autorului.

    Editor: Lector univ.dr. Sorin FIANURedactor gef: Conf.univ.dr. Constantin TIBRIANBun de tipar: 08.1 1.2007; tiraj:150

    Referenfi gtiinfifici:- prof. univ. dr. ing. Ioan Li!5- prof. univ. dr. ing. Gheorghe Gawiloaia

    Descrierea CIP a Bibliotecii Na{ionale a RomflnieiENE, ALEXANDRU

    Programare orientati pe obiecte. Teorie giaplicafii in Java / Alexandru Ene, Cosmin $tirbu. - PitegtiEditura Universiti{ii din Pitegti, 2008

    Bibliogr.IndexrsBN 97 8-97 3-690-845-3

    I. $tirbu, Cosmin

    004.43 JAVA004.42.045

    PREFATA

    Datoritd dezvoltdrii hard-ului (procesoare si memorii maiperformante), programele au putut deveni din ce in ce mai mari (canumdr de linii de cod). Programele mari, confin mai multe erori , ceeace implici un cost de fabricalie mare. programarea orientata peobiecte (Poo) este o nour metodologie de programare care conducela dezvoltarea unor aplicafii mari, mai fiabile gilntr-un timp mai scurt,decdt progra matea structuratf, .

    Java este un limbaj de Poo, aparut in anul 1995, foarte utilizatin dezvoltarea de aplicatii dishibuite. Acest limbaj este de asemeneafoarte frecvent folosit, datoriti claritd{ii gi simplitilii lui, in studiereaconceptelor specifice de programare orientatd pe obiecte.

    caftea se adreseaza studenlilor de la facultdfi tehnice, in scopulinv6!6rii notiunilor de baza ale programdrii orientate pe obiecte, inlimbajul Java. Se presupune cunoscut limbajul C.

    Piteqti,2008 prof. dr. ing. Alexandru EneUniversitatea din Pitegti

  • CUPRINS

    PrefafiCap. l IntroducereCap.2 Aplicagii elementare in JavaCap.3 ClaseCap. 4 Vectori. MatriciCap.5 StringuriCap.6 MogtenireaCap.7 Clase abstracte. InterfefeCap.8 PolimorfismCap.9 ExcepfiiCap. 10 FigiereCap. 11 Grafica in JavaBibliografie

    5

    711

    t737556375798995105125

  • Introducere

    Capitolul 1fntroducere

    1. Ce este programarea orientati pe obiecte?2. Ce este un obiect?3. Ce este o clasi?4. De ce a apirut?5. Istoric limbaje POO.6. Limbajul Java. Istoric. Avantaje. Dezavantaje.

    1. Ce este programarea orientati pe obiecte?

    Programarea orientatd pe obiecte (prescurtat: POO) este un stilde programare in care descompunerea aplica{iei se face plecdnd de laobiecte gi nu de la funcfii, a$a cum se fdcea in programarea structurati.Proiectarea unei program ce folosegte metodologia POO incepe cugdsirea obiectelor ce intervin in aplicafie, gdsirea operaliilor ce se facasupra acestor obiecte, gf,sirea claselor gi a relafiilor dintre clase.

    2. Ce este un obiect?

    Un obiect este un lucru (o entitate soft) caractefizatprininsugiri qi comportament. insugirile sunt modelate prin variabile(variabile de instan{i), iar comportamentul prin func1ii. interminologia POO, funcfiile sunt denumite metode.

    Un obiect este mai mult decdt o structur[ de date, este oentitate ce are o stare gi este saracterizat de operalii ce pot fi executateasupra lui.

    Exemplu:Obiectul cerc poate sI aibd ca gi insugiri caracteristice:- coordonatele cercului: (x0,y0)- culoarea cu care se deseneaz[- taza.Ca operafii (metode), ce-i determini comportamentul:- calculArie$- calculPerimetru0- getRaza0 - returneazd"raza- getxOQ- getYo0- setRaza$ * seteaz[ raza

  • lntroducere

    - setXO0- setYO03. Ce este o clasi?

    Orice obiect se instanliazd, (se creazd) dintr-o clasd.O clasd poate fi vdzutd ca un gablon din care se instanliazi

    obiecte sau ca o "fabric5" de obiecte.Clasa poate fi interpretatd qi ca o generalizare a noliunii de tip

    de date.in general, o clasd conline variabile de instanf[ gi metode.Existi clase particulare care nu au decdt variabile de instanli gi

    clase particulare care nu au decdt metode.Clasele particulare ce contin doar variabile de instanf5 sunt

    echivalentul structurilor (din limbajul C) .in limbajul Java, ca qi in limbajul C+t, crearea unui obiect

    (instan{iere) se face cu ajutorul operatorului new.Se recomandi ca numele unei clase sd inceapf, cu literd mare,

    iar numele unui obiect (instanfiat dintr-o clasd) sd inceapd cu literdmici.

    Exemplu:Avem clasa Cerc gi obiectul cl din aceasti clas6.

    Cerc cl; l/ declarafiaunui obiect cl de tipul Cerc.De fapt, cl este numele unei variabile care va line adresa

    (referin{a) unui obiect de tipul Cerc. Obiectul propriu-zis va fi creat inzona de memorie denumitd heap.

    Declara{ia unui obiect nu creazd obiectul. Obiectul esteinstanfiat cu ajutorul operatorului new.

    Exemple:cl:new Cerc( );c2:new Cerc(0,0,20);

    4. De ce a apirut POO ?

    Datoritl dezvoltirii hard-ului (procesoare si memorii maiperformante), programele au putut deveni din ce ?n ce mai mari (canumlr de linii de cod). Programele mari au mai multe erori latente,ceea ce implic[ un cost de fabricafie mare. POO este un nou stil deprogramare care conduce la dezvoltarea unor aplicafii mari, maifiabile (mai pufine erori) 9i intr-un timp mai scurt.

    I 'Xmlr--

    I ntroducere

    De asemenea, cu tehnologia POO se modeleazd mai bineaplicatria ( realitatea ).

    5. Istoric limbaje POO"

    ln anii '60, la nivel de cercetare este dezvoltat limbajul deprogramare Simula, prirnul limbaj ce introduce nofiunea de clasd.

    In anii '80 apar dciu6 tendinle in limbajele de POO:1) crearea unor limbaje pur orientate pe obiect2) adbugarea la limbajele procedurale existente, a suportului

    pentru POO"Ca limbaje pur orientate pe obiecr:

    clasS de la Simula qi adaugd noi concepte debazd,pentruPOO, cum ar fi:

    - rnogtenire-legare dinarnicd ( polimorfism)Este un limbaj mai ales pentru cercetbtori.

    Limbajul C**, apbrut la inceputul anilor '80, urmeazd, cea de-a doua tendinld i,"r limbajele de POO. Este veohiul limbaj C, lacare s-a addugat suportul pentru POO.

    6. Limba.futr Java" fstoric" Avantaje. Dezavantaje.

    Limbajul .Iar.'a este urr limbaj pur orientat pe obiecte gi a apdrutin anii'90.

    Istoric: O echipa de la firma Sun Microsystems, a dezvoltat unlimbaj de programare nou, portabil, pentru microcontrolere (pentruprogramal ea unor dispozitive inteligente : telecomenzi inteligente,cl i spozitive electrocasnice inteligente, etc. ).

    Fortabilitatea este caracteristica programului de a fi executatpe mai rr'rulte platforme diferite (sisteme de operare diferite qi/sauprocesoare diferite). Avern portabilitate la nivel sursd sau la nivelbinar. Fortabilitatea la nivel sursa este realizatl,in mdsura in careprogramul sursd conline instrucliunile qi frmcliile standardizate alelimbajului respectiv. Frogramul sursd trebuie sa fie recompilat pe nouaplatbrm6 cle lurcru,

    Portabilitatea la nivr:i binar a prrrgramului Java se obline princonrpilarea programului in chrrrii otflpe, tr)clripa de programatori de la

  • t0 Introducere

    firma Sun a realizatportabilitatea la nivel binar realizAnd compilareade la limbajul sursd (.java) pentru un procesor virtual denumif maginavirtuali Java (wM * Java virtuar Machine). Figierul compilatpentru acest procesor virtual are extensia.class, iar codul rezultat secheamd cod de octe{i.

    Fste o compilare la nivel maqini pentru o maqinr virtuald .In dispozitivul in care se doregte execulia aplicafiei trebuie s6

    fie implementat[ magina virtuald Java gi aceastd maqin6, existentd indispozitivul unde se execut5 aplicalia, interpreteazd codul de octefi(executd cate o instrucfiune, pe rand) sau codul de octeli (fiqierul.class) poate fi compilat mai departe pentru procesorul real din sistem(compilare just-in-time). Execulia interpretatd este mai lentd, acestafiind principalul dezavartaj al limbajului Java, comparativ cu c++.

    Proiectul a reugit, dar echipa a fost desfiinlata pe motiv cdcererea de dispozitive inteligente a scdzut. Directorul echipei soft nu arenunlat, vdzdnd ca o utllizare deosebitd pentru Java dezvoltarea deaplicalii pentru Intemet. Astfel ch, in 1995 afdcut o demonstrafiepublicd qi a dezvoltat un browser scris in Java (Hot Java) care aveacapacitatea sd descarce dintr-o pagind web gi sd execule pe maqinaclient, mici aplicalii scrise in Java denumite applet-uri. Aceste applet-uri erau inglobate ca qi fiqiere .class (figiere de octefi) in pagina web.Astfel, pentru prima datd in istoria Internet-ului, paginileweb audevenit dinamice (cu animafie).

    $i astdzi, limbajul Java este foarte utilizatpenrru dezvoltareade aplicalii distribuire.

    Avantaje:- portabilitate la nivel binar- are sintaxa Nirnbajului C (SA% - 9A%I- este pur orientat pe obiecte- are aspecte de securitate mai bine puse la punct dec6t

    limbaiul C- a eliminat din limbajul c nofiunile controversate (lucrul cu

    . pointeri)- a eliminat moqtenirea multipld- suportd lucrul cu fire de executie.- verificd indexarea tablourilor.- este distribuit gratuit de firma Sun.

    Aplicafii elementare in Java

    Capitolul2Apticafii elementare in Java

    1. Prima aplicafie Java.2. Ce sunt parametrii din linia de comandi?3. Cum se face citirea de l