Java Curs1

of 44/44
Universitatea “ Constantin Brâncuşi” Târgu-Jiu Facultatea de Inginerie Catedra de Automatică şi Ştiinţe Aplicate 26.04.2011 Aplicatii JAVA 1 Aplicații Java Lector dr. Adrian Runceanu
  • date post

    21-Oct-2015
  • Category

    Documents

  • view

    107
  • download

    11

Embed Size (px)

description

Curs de java

Transcript of Java Curs1

  • Universitatea Constantin Brncui Trgu-Jiu Facultatea de Inginerie

    Catedra de Automatic i tiine Aplicate

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    1

    Aplicaii Java

    Lector dr. Adrian Runceanu

  • Cteva precizri

    Structura cursului

    2 ore curs titular curs:

    Lector dr. Adrian Runceanu

    2 ore laborator titular aplicaii practice:

    Asist. Constantin Cercel

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    2

  • Cteva precizri

    Forme de examinare:

    Examen final 60%

    Lucrrile practice de laborator susinute pe parcursul semestrului 10%

    Verificare final lucrri de laborator 30%

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    3

  • Cteva precizri Bibliografia necesar cursului: [1.] Adrian Runceanu Metode si tehnici de programare limbajul C++, Editura Academica Brancusi, Targu-Jiu, 2003. [2.] Adrian Runceanu Programarea orientata pe obiecte: limbajul C++, Editura Academica Brancusi, Targu-Jiu, 2007. [3] Adrian Runceanu Programarea orientata pe obiecte: limbajul C++ ndrumar de laborator, Editura Academica Brancusi, Targu-Jiu, 2008. [4.] Tudor Sorin, Vlad Hutanu - Bazele programarii in Java, Editura L&S Info-Mat, Bucuresti, 2005. [5.] Doina Logofatu Algoritmi fundamentali in Java. Aplicatii Editura Polirom, Iasi, 2007. [6.] Horia Georgescu Introducere in universul Java; Editura Tehnica, Bucuresti, 2002. [7.] Eugen Petac, Tudor Udrescu Programarea Calculatoarelor. Aplicatii Java; Editura Matrixrom, Bucuresti, 2003.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    4

  • Cteva precizri

    Referinele bibliografice nr. 1,2, i 3 se pot mprumuta de la Biblioteca Facultii de Inginerie, Str. Geneva nr.3, Etaj I lng Decanat.

    1. Suport curs - varianta electronic disponibil pe site-ul Facultii de Inginerie:

    www.utgjiu.ro/ing 2. ndrumar de laborator - varianta electronic

    disponibil pe site pentru fiecare lucrare de laborator.

    Not: Actualizarea site-ului se face saptamnal.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    5

  • 26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    6

    Curs introductiv

    Aplicaii Java

  • Tipuri de programare

    Programare nestructurat - executarea secvenial a tuturor comenzilor dintr-un program dimensiune i complexitate redus dificil de ntreinut i modificat permite realizarea de programe de

    complexitate mic/medie exemple: BASIC, Q-BASIC, COBOL,

    Fortran, .a.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    7

  • Tipuri de programare

    Programare structurat organizare i structurare mai bun a programelor

    mai uor de modificat i extins

    permite reutilizarea codului scris folosirea funciilor i/sau procedurilor

    programe de complexitate medie/mare

    permite lucrul n echip la un program

    exemple: Pascal, C, .a.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    8

  • Tipuri de programare Programare orientat pe obiecte modeleaz obiecte din lumea real introduce conceptul de obiect = contopirea

    datelor cu codul ntreinere i modificare mai uoar a

    programelor permite realizarea de programe mult mai

    complexe simplifica lucrul n echip la un program

    fiecare membru al echipei are cte o parte de program

    exemple: C++, Java, .a.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    9

  • Programarea orientat pe obiecte

    modelarea obiectelor reale, transpuse n limbajul de programare - clase

    contopirea datelor cu codul proprietile i metodele coexist

    uureaz realizarea de programe complexe

    uureaz lucrul n echipe, datorit controlului mai bun asupra seciunilor programului

    modularizare mai bun permite o ntreinere mai uoar a programelor

    reutilizare mai bun a codului folosirea motenirii

    permite ascunderea detaliilor de implementare public, private, protected

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    10

  • Principiile POO

    ncapsularea modelarea obiectelor din lumea real datele (proprietile) i metodele (aciunile)

    coexist n clase ascunderea detaliilor de implementare (date i

    metode private) localizare mai bun a erorilor modularizarea mai eficient a programului simplific depanarea i extinderea ulterioar a

    programului

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    11

  • Principiile POO

    Motenirea extinderea unei clase cu noi proprieti i funcionaliti, dintr-o clas existent

    clasa extins va moteni caracteristicile clasei motenite

    o clas se poate deriva de oricte ori

    clasele derivate trebuie s fie asemntoare, dar s aib totui trsturi distinctive

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    12

  • Principiile POO

    Polimorfismul - o metod poate avea forme diferite, n clase diferite

    metodele respective pot s fie total diferite ca i funcionalitate

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    13

  • Java - proprieti

    limbaj de programare de nivel nalt

    dezvoltat de firma Sun Microsystems

    folosit n special datorit portabilitii sale

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    14

  • Caracteristici orientat exclusiv pe obiecte

    portabilitate mare

    sintax preluat din limbajul C++

    execuia propriu-zis este fcut de o main virtual (Java Virtual Machine JVM)

    pune la dispoziia utilizatorului o bibliotec de clase foarte puternic i complex

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    15

  • Distribuii Java Java Developement Kit (JDK) compilatorul Java (javac) maina virtual Java (Java Virtual Machine JVM) debugger (jdb) viewer de applet-uri (appletviewer) alte utilitare

    Java Runtime Environment (JRE) maina virtual Java (JVM) viewer-ul de applet-uri (appletviewer) - stand-

    alone sau ntr-un browser

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    16

  • Diferene fa de limbajul C++

    structur pur obiectual nu exist funcii i variabile globale nu exist structuri, enumerri i uniuni

    (struct, enum, union n C++)

    tip de date nativ boolean (true i false) tip de date nativ String lucrul cu iruri de

    caractere

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    17

  • Diferene - continuare

    mecanisme pentru tratarea structurat a excepiilor

    simplificarea structurrii programelor

    permit un control mai bun asupra erorilor aprute n timpul rulrii programului

    obiectele sunt instaniate doar dinamic folosind operatorul new

    nu exist pointeri (nici ctre obiecte, nici ctre metode)

    obiectele se acceseaz prin referinele returnate de operatorul new

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    18

  • Diferene - continuare

    nu suport motenire multipl se compenseaz prin existena interfeelor

    obiectele alocate dinamic nu trebuie dezalocate explicit dezalocarea se face explicit, de ctre un mecanism de garbage-

    collection

    determin automat cnd un obiect nu mai este folosit (nu mai exist referine ctre el)

    elimin necesitatea folosirii unui destructor

    mecanisme pentru programare concurent - programe cu mai multe fire de execuie care ruleaza n paralel

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    19

  • Noiunile de clas i obiect

    clasa nou tip de date, creat de programator caracteristicile clasei sunt descrise prin folosirea celelaltor

    tipuri de date

    permite folosirea i de metode, pe lnga date

    membrii pot avea mai multe atribute de accesibilitate

    obiect instaniere a unei clase se pot instania doar dinamic (folosind operatorul new)

    fiecare obiect are o zon de memorie proprie

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    20

  • Tipuri de date folosite n Java char

    byte

    short

    int

    long

    float

    double

    void

    boolean (cu valorile true i false)

    String

    class, interface, array

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    21

  • Compilarea, executarea

    compilarea unui program Java: se realizeaz cu comanda:

    javac nume_fiier.java

    fiierul trebuie s aib acelai nume cu clasa principal (cea care conine funcia main)

    rezult unul sau mai multe fiiere cu extensia .class

    rularea(executia) unui program Java: se realizeaz cu comanda:

    java nume_fiier

    fiierul executat trebuie s fie cel care conine funcia main

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    22

  • Exemplu de program Java

    public class PrimulProgram

    {

    public static void main (String[ ] args)

    {

    System.out.println ("Primul program in Java!");

    }

    }

    Execuia programului ncepe de la funcia main

    trebuie s fie de tip public

    static -> nu exist un obiect instaniat din clasa respectiv

    tipul returnat: void

    se poate lansa n execuie folosind parametri (args)

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    23

  • Exemplu de program instantierea unui obiect class Student { private String nume; private int varsta; public Student (String nume, int v) { this.nume = nume; this.varsta = v; } public void afisare () { System.out.println (Dl. + nume + are + varsta + ani.); } }

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    24

  • Exemplu de program instantierea unui obiect - continuare public class ExempluStudent { public static void main (String[] args) { Student st = new Student ("Andrei", 25); st.afisare (); } } folosirea membrilor private i public folosirea pointer-ului this alocare dinamic de memorie pentru obiectul

    instaniat apelarea implicit a constructorului apelarea funciei afisare apariia garbage-collector-ului

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    25

  • Exemplu de program introducerea de la tastatur public class IntroducereStudent { public static void main (String[ ] args) throws IOException { System.out.print ("Introduceti numele studentului: "); BufferedReader b1 = new BufferedReader (new

    InputStreamReader (System.in)); String nume = b1.readLine (); System.out.print ("Introduceti varsta studentului: "); BufferedReader b2 = new BufferedReader (new

    InputStreamReader (System.in)); String varsta_str = b2.readLine (); int varsta = Integer.parseInt(varsta_str); Student st = new Student (nume, varsta); st.afisare (); } }

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    26

  • Exemplu de motenire

    se realizeaz folosind cuvntul cheie extends

    sunt preluate caracteristicile public i protected din clasa de baz

    exemplu de motenire:

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    27

    Persoana

    - nume

    - varsta

    Student

    - an_studiu

    - bursa

    Angajat

    - salariu

    - vechime

  • Motenire - continuare

    class Student extends persoana { private int an_studiu; private float bursa; public Student (int an_studiu, float bursa) { this.an_studiu = an_studiu; this.bursa = bursa; } public void afisare () { super.afisare(); System.out.println (Studentul "+ nume + " are " + varsta + "

    ani si are bursa in valoare de + bursa); } }

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    28

  • Elemente introductive ale limbajului

    1. Tipuri de programe implementate de Java 2. Etapele dezvoltrii unei aplicaii Java 3. Structura unei aplicaii Java

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    29

  • Tipuri de programe implementate de Java

    Cu ajutorul limbajului Java se pot dezvolta doua tipuri de programe:

    1. Programe Java care se executa individual

    prin intermediul unui interpretor Java. Acestea se incadreaza in programele clasice

    scrise in diverse limbaje de programare, cum ar fi: C/C++, Pascal, etc.

    Acest tip de programe Java sunt denumite aplicatii.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    30

  • Tipuri de programe implementate de Java

    2. Programe Java care se executa in interiorul unui navigator Internet, dintr-un document HTML.

    Acest tip de programe Java sunt denumite applet-uri.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    31

  • Elemente introductive ale limbajului

    1. Tipuri de programe implementate de Java 2. Etapele dezvoltrii unei aplicaii Java 3. Structura unei aplicaii Java

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    32

  • Etapele dezvoltrii unei aplicatii Java

    1. Editarea setului de instructiuni de programare cu ajutorul unui editor de texte.

    In acest fel este creat un fisier sursa, care are extensia .java.

    2. Compilarea programului

    Pentru aceasta operatie se lanseaza in executie un program special, denumit compilator Java.

    Compilatorul analizeaza textul sursa al programului din punct de vedere sintactic, semnaland eventualele erori.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    33

  • Etapele dezvoltrii unei aplicatii Java

    Daca programul nu contine erori sintactice, compilatorul traduce acest program in codul masina pentru masina virtuala Java (un fel de calculator intr-un alt calculator).

    Rezultatul compilarii este unul sau mai multe fisiere de tip bytecode- o secventa de instructiuni de asamblare pentru masina virtuala Java.

    Fisierul bytecode nu depinde de masina gazda si nici de sistemul de operare pe care va fi executat programul.

    Masina virtuala mai este cunoscuta si ca interpretor Java sau executor (runtime) Java.

    Extensia fisierului bytecode rezultat in urma compilarii are extensia .class.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    34

  • Etapele dezvoltrii unei aplicatii Java

    3. Conversia (transformarea), de catre interpretorul Java, a instructiunilor bytecode in instructiuni inteligibile masinii gazda care apoi sunt executate.

    Conversia are loc la lansarea executiei si anume instructiune cu instructiune.

    In acest mod este asigurata portabilitatea si independenta de platforma.

    Un dezavantaj poate fi considerat timpul mai mare de executie.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    35

  • Procesul de compilare si executie a unei aplicatii Java

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    36

    Cu succes

    ?

    Scrierea instructiunilor programului-sursa (.java)

    Compilarea programului-sursa cu ajutorul compilatorului Java

    Cu succes

    ?

    Modificarea instructiunilor programului

    Da

    Nu

    Nu

    Executia fiecarei instructiuni cu ajutorul interpretorului Java (.class)

    Da

    Conversia fiecarei instructiuni bytecode in instructiune executabila pe masina gazda cu ajutorul interpretorului Java (.class)

  • Elemente introductive ale limbajului

    1. Tipuri de programe implementate de Java 2. Etapele dezvoltrii unei aplicaii Java 3. Structura unei aplicaii Java

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    37

  • Structura unei aplicaii Java

    O aplicatie Java este compusa din una sau mai multe clase care interactioneaza intre ele prin intermediul metodelor.

    In grupul de clase, care formeaza o aplicatie Java, trebuie sa existe o clasa care sa contina o metoda statica avand numele main.

    Atunci cand se executa o aplicatie Java, masina virtuala va cauta si invoca automat metoda statica avand numele main.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    38

  • Structura unei aplicaii Java

    Nota: Metoda main poate fi considerata ca fiind echivalentul

    Java a functiei main din C/C++. Cel mai simplu program Java (care nu face nimic) arata

    astfel: class NuExecutaNimic { public static void main (String [ ] args) { } } Nota: Tipul parametrilor metodei (functiei) main cat si tipul

    metodei, static void, sunt obligatorii.

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    39

  • Exemple de programe simple

    1. Sa se rezolve ecuatia: ax+b=0, cu a,b nr. reale. import java.io.*; public class exemplu1 { public static void main (String args[]) throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s1 = br.readLine(); double a = Double.parseDouble(s1); System.out.println("numarul a = "+s1); String s2 = br.readLine(); double b = Double.parseDouble(s2); System.out.println("numarul b = "+s2);

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    40

  • Exemple de programe simple

    if ( a == 0 )

    if(b==0) System.out.println ("Infinitate de solutii !");

    else System.out.println ("Nu are solutie !");

    else

    { System.out.print("Solutia x = "); System.out.println (-b/a); }

    }

    }

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    41

  • Exemple de programe simple

    2. Se citeste un numar natural n. Sa se calculeze 1+2+ . . . + n.

    import java.io.*;

    public class exemplu2

    {

    public static void main (String args[]) throws IOException

    {

    InputStreamReader isr = new InputStreamReader(System.in);

    BufferedReader br = new BufferedReader(isr);

    System.out.println("numarul n = ");

    String s1 = br.readLine();

    int n = Integer.parseInt(s1);

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    42

  • Exemple de programe simple

    int s=0, i;

    for(i=1; i

  • ntrebri?

    26

    .04

    .20

    11

    A

    plic

    atii

    JAV

    A

    44