Serializarea. Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire. Deserializare - procesul invers

Size: px
Start display at page:

Download "Serializarea. Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire. Deserializare - procesul invers"

Transcription

1 Serializarea Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire Deserializare - procesul invers

2 Scopul serializării transmiterea datelor la distanţă. RMI conservarea datelor în afara timpului de execuţie. Persistenţa obiectelor asigurarea portabilităţii datelor sub diverse SO implementarea tehnologiei bazate pe componente reutilizabile - Beans

3 Mecanisme de serializare Mecanismul implicit de serializare este realizat prin implementarea formala a interfetei Serializable Serializarea voluntara se realizeaza in doua moduri: prin redefinirea metodelor readobject si writeobject. Semnătura exactă a metodelor este: private void readobject(java.io.objectinputstream stream) throws IOException, ClassNotFoundException; private void writeobject(java.io.objectoutputstream stream) throws IOException prin implementarea interfetei Externalizable

4 Clase si interfete utilizate la serializarea implicita Interfata Serializable. Este o interfata de marcaj, fara metode abstracte, care marcheaza clasele serializabile prin mecanismul implicit Interfata ObjectOutput extinde cadrul creat de DataOutput la scrierea de obiecte public interface ObjectOutput extends DataOutput; Metoda declarata pentru scriere: void writeobject(object obj) throws IOException; //Metoda este implementata de clasa ObjectOutputStream

5 Clasa ObjectOutputStream. Este clasa care realizeaza implementarea efectiva a mecanismului de serializare Declaratia de clasa: public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants; // in interfata ObjectStreamConstants sunt declarate constante utilizate in mecanismul de serializare Constructor: public ObjectOutputStream(OutputStream out) throws IOException; // out este un flux de scriere la nivel de octet Metode public final void writeobject(object obj) throws IOException; // Implementeaza mecanismul de serializare. Sunt exceptate de la serializare campurile transient. In mecanismul de serializare implicita sunt scrise clasa obiectului, semnatura de clasa si valorile tuturor campurilor netransiente si nestatice. Referintele la alte obiecte declanseaza si serializarea acestora.

6 Clase si interfete utilizate la deserializarea implicita Interfata ObjectInput, extinde functionalitatile din DataInput la citirea de obiecte. public interface ObjectInput extends DataInput; Metoda de citire declarata: Object readobject() throws ClassNotFoundException, IOException; Clasa ObjectInputStream citeste obiecte serializate prin ObjectOutputStream public class ObjectInputStream extends InputStream implements ObjectInput, ObjectStreamConstants; Constructor public ObjectInputStream(InputStream in) throws IOException ; // in este flux de citire la nivel de octet Metoda pentru deserializare: public final Object readobject() throws IOException, ClassNotFoundException; //sunt deserializate obiectele serializate prin writeobject

7 Serializarea voluntara prin implementarea interfetei Externalizable Este o metoda utilizata pentru a personaliza procesul de serializare. Folosirea interfeței impune existența unui constructor fără parametrii pentru clasele obiectelor serializate. Declarația de clasă: public interface Externalizable extends Serializable; Metode de implementat pentru citire si scriere: public void writeexternal(objectoutput out) throws IOException; public void readexternal(objectinput in) throws IOException, ClassNotFoundException; // in si out sunt fluxuri de citire si scriere la nivel de obiect

8 Controlul versionării Un obiect serializat intr-o anumită versiune de clasă trebuie deserializat în aceeași versiune Controlul versiunii se face printr-un câmp static: public static final long serialversionuid = valoare; Dacă nu este declarat explicit, acest câmp este adăugat automat de JVM La momentul deserializării se compară valorile acestui camp și este aruncată o excepție de tipul InvalidClassException dacă acestea sunt diferite

9 Generics

10 Clase generice - Generics Java Generics este o tehnologie Java prin care a fost introdus in Java (odata cu distributia 1.5) conceptul de clase generice Conceptul este asemănător celui de "template" din C++ Diferenta fundamentala: C++ : expandare la compilare pentru fiecare tip Java: eradicarea tipului la compilare castul catre tipul de baza, fara expandarea codului Declaratia de clasa: [public] class NumeClasa<T1, T2,..., Tn> {... } Metode generice: [public/protected/private] [static] <T1, T2,..., Tn> tip numemetoda(listaparametrii) [throws E1,...,Em] {...}

11 Crearea colectiilor proprii Cea mai largă utilizare a claselor generice este în crearea colecțiilor O colecție simplă conține o clasă de bază în care se află elementele colecției și un iterator care să permită accesarea iterativă a elementelor Crearea iteratorilor Un iterator este o clasă care implementează interfața Iterator<E> Interfata Iterator<E> Declaratia de interfata: public interface Iterator<E>; Metode abstracte: boolean hasnext(); E next(); void remove();

12 Crearea colecției Colecția este o clasă care implementează interfața Iterable<T> Interfata Iterable<T> Declaratia de interfata: public interface Iterable<T> ; Metode abstracte Iterator<T> iterator(); default void foreach(consumer<? super T> action)

13 Operatorul wildcard Este utilizat pentru a flexibiliza utilizarea claselor generice, astfel: <?> semnifica tip necunoscut este utilizat cand nu se cunoaste sau nu are importanță tipul de bază <? extends Tip> ține locul unui tip de bază (upper-bounded wildcard) <? super Tip> ține locul unui tip derivat (Lower-bounded wildcard)

14 Metode default Metodele default permit adăugarea de noi funcționalități interfețelor fără să facem modificări la nivelul claselor implementatoare Este o facilitate introdusă cu versiunea Java 8 Au apărut din necesitatea de a adăuga noi funcționalități interfețelor vechi în versiunea Java 8 (Exemplu: traversarea funcțională a colecțiilor) Tehnic, metodele default sunt metode care au o implementare la nivel de interfață. Deci modificatorul default permite implementarea metodei la nivel de interfață. La nivelul clasei implementatoare o metodă default din interfață poate fi invocată astfel: NumeInterfata.super.numeMetoda() Dacă o clasă implementează două interfețe care conțin câte o metodă default cu aceeași semnătură, clasa va trebui să facă o implementare proprie metodei, pentru a elimina ambiguitatea

15 Interfețele Consumer și Predicate Declarație: public interface Consumer<T>; Metodă: void accept(t t); // Execută operațiunea implementată asupra obiectului t Metode default: default Consumer<T> andthen(consumer<? super T> after); // Întoarce consumerul care efectueaza operatia curenta si apoi operatia specificată în after Declarație: public interface Predicate<T>; Metodă: boolean test(t t); // Execută testul asupra obiectului t Metode default: default Predicate<T> and(predicate<? super T> other); // Execută și logic cu un alt predicat default Predicate<T> negate(); // Intoarce predicatul negație default Predicate<T> or(predicate<? super T> other); // Sau logic

16 Prelucrarea functionala a colectiilor Facilitate oferita de Java 1.8. Consta in prelucrarea prin intermediul unor obiecte Stream care permit diverse operatii pe elementele colectiei Interfata la baza: public interface BaseStream<T,S extends BaseStream<T,S>> extends AutoCloseable; T tipul elementului din Stream S tipul de stream Interfete derivate: public interface DoubleStream extends BaseStream<Double,DoubleStream>; public interface IntStream extends BaseStream<Integer,IntStream> public interface Stream<T> extends BaseStream<T,Stream<T>>; Obtinerea stream-urilor se face prin metode ale colectiilor: Stream<E> stream(); Stream<E> parallelstream();

17 Crearea obiectelor Stream prin StreamSupport Clasa StreamSupport permite crearea de obiecte Stream în colecțiile proprii Obiectele Stream sunt create prin metode statice stream ale clasei StreamSupport care crează obiecte de tip DoubleStream, IntStream, LongStream sau Stream<T> Exemplu Stream<T> public static <T> Stream<T> stream(spliterator<t> spliterator, boolean parallel); // un obiect Spliterator<T> este folosit pentru pentru partiționarea și traversarea elementelor dintr-o structură-sursă (vector, colecție, flux de intrare etc.) O implementare simplificată și incompletă a interfeței Spliterator este clasa Spliterators.AbstractSpliterator<T>: public abstract static class Spliterators.AbstractSpliterator<T> extends Object implements Spliterator<T>;

18 Constructor: protected AbstractSpliterator(long est, int additionalcharacteristics); Crează un spliterator cu o mărime estimată și cu specificarea unor caracteristici precum ORDERED, DISTINCT, SORTED, SIZED, NONNULL, IMMUTABLE, CONCURRENT, sau SUBSIZED Metodă abstractă: boolean tryadvance(consumer<? super T> action); // Funcționalitate asemănătoare metodelor hasnext și next din Iterator. Întoarce true dacă există elemente în spliterator, iar elementul este furnizat prin Consumer

19 Exemplu. Metoda stream de mai jos crează un obiect Stream într-o colecție proprie de tip listă simplu înlănțuită. Referința first este referința la primul element din listă iar referința t este o referință de lucru folosită pentru accesarea elementelor din listă public class MyList<T> implements Iterable<T> { private MyElement<T> first, t;... public Stream<T> stream() { t = first; return StreamSupport.stream(new Spliterators.AbstractSpliterator<T>(0, 0) public boolean tryadvance(consumer<? super T> action) { if (t == null) { return false; } else { action.accept(t.getinfo()); t = t.getnext(); return true; } } }, true); }...

20 Metode Stream Traversare void foreach(consumer<? super T> action); // executa o actiune pe fiecare element din stream Interfata Consumer este o interfata functionala prin care se executa o actiune asupra unui obiect. Actiunea este implementata prin metoda accept(object obj). Filtrare Stream<T> filter(predicate<? super T> predicate); // filtreaza datele din stream dupa filtrul creat in predicate Sortare Stream<T> sorted(); // T trebuie sa fie un tip care implementeaza Comparable<T> Stream<T> sorted(comparator<? super T> comparator); // se implementeaza comparatorul

21 Determinarea elementelor distincte Stream<T> distinct(); Elementele sunt diferențiate în funcție de implemetarea din equals Prelucrare personalizată a elementelor din stream <R> Stream<R> map(function<? super T,? extends R> mapper) unde mapper este o funcție care se aplică fiecărui element din stream. Prelucrari particulare: DoubleStream maptodouble(todoublefunction<? super T> mapper); IntStream maptoint(tointfunction<? super T> mapper) LongStream maptolong(tolongfunction<? super T> mapper) Exemplu double mediamaxima = listastudenti.stream().maptodouble(student-> student.getmedia()).max().getasdouble();

22 Caracteristici ale programării funcționale Se bazează pe apeluri structurate de funcții <function1>(<function2>(<function3> ) ) Fiecare funcție primește valori de la alte funcții și transmite valori altor funcții Numele sunt utilizate doar ca parametrii formali Un nume este asociat întotdeauna cu o singură valoare Ordinea executării operațiunilor nu influenteaza rezultatele Modificările repetate se realizează prin apeluri de funcții imbricate Noile valori pot fi asociate cu același nume prin apeluri recursive

23 Interfețe funcționale O interfață funcțională este o interfață care conține doar o singură metodă abstractă O interfață funcțională poate conține una sau mai multe metode default sau metode statice Utilizare extinsă în implementarea obiectelor Stream sau în interfața grafică

24 Interfața public interface Function<T,R>; Reprezintă o funcție care acceptă un argument de tip T și întoarce un rezultat de tip R Metodă abstractă: R apply(t t); // Conține codul asociat funcției Metode default: default <V> Function<V,R> compose(function<? super V,? extends T> before); //Întoarce o funcție compusă din funcția before și funcția curentă - mai întâi execută before si apoi rezultatul este prelucrat prin funcția curentă default <V> Function<T,V> andthen(function<? super R,? extends V> after); //Întoarce funcția a cărei execuție este urmată de execuția unei funcții after

25 Exemplu 1. Să se definească o funcție care adună elementele dintr-un vector de numere reale și să se calculeze suma Double[] a = {10.0, 20.0, 30.0}; Function<Double[], Double> f1 = (new Function<Double[], Double>() public Double apply(double[] t) { double s = 0; for (double v : t) { s += v; } return s; } }); System.out.println(f1.apply(a)); 2. Să se calculeze pătratul sumei prin metoda andthen care va implementa calculul pătratului

26 System.out.println(f1.andThen( new Function<Double, Double>() public Double apply(double t) { return t*t; } } ).apply(a)); 2. Să se genereze vectorul aleator mai întâi folosind metoda compose și apoi să se calculeze suma System.out.println(f1.compose(new Function<Integer, Double[]>() public Double[] apply(integer t) { Double[] v = new Double[t]; for (int i = 0; i < t; i++) { v[i] = Math.random() * t; } return v; } }).apply(10));

27 Interfața public interface BiFunction<T,U,R>; T - tipul primului argument U - tipul ultimului argument R - tipul rezultatului Metoda abstractă R apply(t t, U u) Metodă default: default <V> BiFunction<T,U,V> andthen(function<? super R,? extends V> after)

28 Interfețele UnaryOperator și BinaryOperator Sunt extensii ale interfețelor Function și BiFunction pentru situațiile în care rezultatele sunt de același tip cu public interface UnaryOperator<T> extends public interface BinaryOperator<T> extends BiFunction<T,T,T>

29 Exemple String nume1 = "Popa Marius", nume2 = "Pop Adrian"; UnaryOperator<String> uo = new UnaryOperator<String>() public String apply(string t) { return t.touppercase(); } }; BinaryOperator<String> bo = new BinaryOperator<String>() public String apply(string t, String u) { if (t.length() > u.length()) { return t; } else { return u; } } }; System.out.println(uo.apply(nume1)); System.out.println(bo.apply(nume1, nume2));

30 Referințele la metode Referințele la metode permit reutilizarea unei metode ca funcție Sintaxa: target_reference::method_name Pot fi referite atât metode statice cât și metode de instanță Exemplul 1 Double[] a = {10.0, 20.0, 30.0}; Function<Double[],Double> f2 = Operatiuni::produs; System.out.println(f2.apply(a)); unde clasa Operatiuni are o metodă statică produs astfel definită: public static Double produs(double[] s) {... } Exemplul 2 Operatiuni o = new Operatiuni(); Function<Integer,Double> f3 = o::produs; System.out.println(f3.apply(3)); Clasa Operatiuni are o metodă de instanță produs astfel definită: public Double produs(integer m) {... ) // Calculează produsul primelor m valori reale dintr-un vector câmp al clasei

31 Expresiile lambda Expresiile Lambda simplifică modul de transmitere a comportamentului ca parametru Comportamentul transmis este cel implementat printr-o metodă a unei interfețe funcționale Sintaxa unei expresii lambda este: (args1, args2, ) -> { body } - dacă body constă dintr-o singură instrucțiune nu sunt necesare acoladele și nici instrucțiunea return; - dacă există un singur parametru nu sunt necesare parantezele rotunde - dacă nu există parametrii sunt obligatorii parantezele rotunde - specificarea tipului pentru argumente este opțională

32 Accesarea variabilelor locale din domeniul de vizibilitate Accesarea variabilelor locale se face în aceleași condiții ca la clasele locale sau anonime - variabilele locale trebuie să fie finale sau efectiv finale (nu se modifică după inițializare) Variabilele locale nu pot fi mascate in expresiile lambda - expresiile lambda nu creeaza un nou nivel de domeniu de vizibilitate referinta this se refera la clasa care conține expresia și nu la expresie in sine

33 Referințele la metode și expresiile lambda Referințele la metode permit reutilizarea unei metode și ca funcție lambda Exemplul 1 - Pentru o metodă statică Function<Double[], Double> f4 = (Double[] ta) -> Operatiuni.produs(ta); System.out.println(f4.apply(a)); echivalent cu Function<Double[],Double> f2 = Operatiuni::produs; System.out.println(f2.apply(a)); Exemplul 2 Operatiuni o = new Operatiuni(); Function<Integer, Double> f5 = (Integer t) -> o.produs(t); System.out.println(f5.apply(3)); echivalent cu Operatiuni o = new Operatiuni(); Function<Integer,Double> f3 = o::produs; System.out.println(f3.apply(3));

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Probleme rezolvate: Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Programul urmator (LotoConstante.java)

More information

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Avantajul lucrului cu fisiere este evident, datele rezultate în urma

More information

Laborator 5 Instrucțiunile repetitive

Laborator 5 Instrucțiunile repetitive Laborator 5 Instrucțiunile repetitive Instrucțiunea for Instrucțiunea for permite repetarea unei secvențe de instrucțiuni atâta timp cât o condiție este îndeplinita. În plus, oferă posibilitatea execuției

More information

Tehnici avansate de programare

Tehnici avansate de programare Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Adnotarea elementelor Tehnici avansate de programare p.1/1 Cuprins Ce sunt

More information

Utilizarea formularelor in HTML

Utilizarea formularelor in HTML Utilizarea formularelor in HTML Formulare Un formular este constituit din elemente speciale, denumite elemente de control (controls), cum ar fi butoane radio, butoane de validare, câmpuri text, butoane

More information

Alocarea memoriei în C sub Linux

Alocarea memoriei în C sub Linux Costel Aldea Alocarea memoriei în C sub Linux Sunt trei funcţii C standard care se pot folosi pentru a aloca memorie: malloc(), calloc(), si realloc(). Prototipurile lor, după cum sunt definite în stdlib.h:

More information

Aplicații JAVA. Lect.dr. Adrian Runceanu

Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 6 Colecții în Java 01.04.2015 Curs - Aplicatii

More information

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n. Observatii: Codul de mai jos a fost realizat si testat pe pagina online: https://www.tutorialspoint.com/compile_pascal_online.php 1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului

More information

Bibliografie. * * *, Java Development Kit ndex.html

Bibliografie. * * *, Java Development Kit  ndex.html Bibliografie * * *, Java Development Kit http://www.oracle.com/technetwork/java/javase/downloads/i ndex.html Java programming: from problem analysis la program design, D.S. Malik, 2010 Java de la 0 la

More information

Ingineria Sistemelor de Programare

Ingineria Sistemelor de Programare Ingineria Sistemelor de Programare Interfete grafice (Swing) mihai.hulea@aut.utcluj.ro 2017 Scurt istoric AWT: Abstract Windowing Toolkit import java.awt.* Swing Java FX Swing Demo Libraria Swing Swing

More information

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP De ce ebgp? De ce ibgp?

More information

Rezolvare fişă de laborator Java Iniţiere în limbajul Java

Rezolvare fişă de laborator Java Iniţiere în limbajul Java Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul

More information

Dynamic binding vs static binding. Programare Orientată pe Obiecte

Dynamic binding vs static binding. Programare Orientată pe Obiecte Dynamic binding vs static binding Programare Orientată pe Obiecte Ce va afişa următorul program? class TestEgal{ public boolean equals ( TestEgal other ) { System.out.println( "In equals din TestEgal"

More information

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016 Ingineria Sistemelor de Programare UML Diagrama Cazurilor de Utilizare mihai.hulea@aut.utcluj.ro 2016 Introducere UML UML UML = Unified Modeling Language Dezvoltat in cadrul Object Management Group In

More information

Capitolul 8 Funcţii în limbajul C

Capitolul 8 Funcţii în limbajul C Obiectiv: stabilirea avantajelor pe care le aduce în programarea structurată folosirea funcţiilor. Activităţi: - Prezentarea funcţiilor definite de utilizator - Descrierea parametrilor formali şi a parametrilor

More information

Lenuta Alboaie Reţele de calculatoare

Lenuta Alboaie Reţele de calculatoare Programarea in retea - OOB- Lenuta Alboaie adria@info.uaic.ro 1 Cuprins Trimiterea si receptarea datelor in regim 2 Ideea: in timpul unei conexiuni cind sunt transmise date ( inband data ), si daca la

More information

Curs practic de Java

Curs practic de Java Curs practic de Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Internaţionalizarea Curs practic de Java p.1/1 Cuprins Introducere Clasa Locale Formatarea

More information

Programare Orientată pe Obiecte în limbajul Java

Programare Orientată pe Obiecte în limbajul Java Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Tipul enumerare Clase imbricate Clase şi metode abstracte Excepţii Tipuri de date enumerare enum public class

More information

Curs 14 Colectii. Ce sunt colectiile? Interfete ce descriu colectii. Curs 14. Ce sunt colectiile? Interfetele de baza care descriu colectii

Curs 14 Colectii. Ce sunt colectiile? Interfete ce descriu colectii. Curs 14. Ce sunt colectiile? Interfetele de baza care descriu colectii Curs 14 Colectii Ce sunt colectiile? Interfetele de baza care descriu colectii o Collection o Set o List o Map o SortedSet o SortedMap Implementari ale colectiilor Folosirea eficienta a colectiilor Algoritmi

More information

JavaScript - Intorducere. Și nu numai...

JavaScript - Intorducere. Și nu numai... JavaScript - Intorducere Și nu numai... Ce facem azi Nu o sa va vină să credeți. Pe foaia albă vă scrieți numele și prenumele ȘI Povestim despre JavaScript Exemple de aplicare discutii și surprize mici

More information

8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate

8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate 8. Tablouri Tablourile (arrays) reprezintă un tip important de structură de date şi sunt colecţii de obiecte de acelaşi tip reunite sub un singur nume. Uneori este necesar să referim anumite variabile

More information

Programare avansată Tipuri generice Colecții de date

Programare avansată Tipuri generice Colecții de date Programare avansată Tipuri generice Colecții de date Problema Construiți o structură de date: o stivă de date, o listă înlănțuită, un vector, un graf, un arbore, etc. Care este tipul de date pe care îl

More information

Laborator 3 Java. Introducere in programarea vizuala

Laborator 3 Java. Introducere in programarea vizuala Laborator 3 Java Introducere in programarea vizuala 1. Pachetele AWT si Swing. 2. Ferestre 3.1. Introduceti urmatorul program JAVA: public class Pv public static void main(string args[ ]) JFrame fer=new

More information

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1 Curs 5 Programare Paralela si Distribuita Forme de sincronizare - Java Curs 5 - PPD 1 Monitor in Java Fiecare obiect din Java are un mutex care poate fi blocat sau deblocat in blocurile sincronizate: Bloc

More information

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Lucrarea 3 Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Cuprins Simbolul this...1 Colectorul de reziduuri (Garbage Collector)...4 Transmiterea

More information

SECTION 5 L1 - Group By and Having Clauses

SECTION 5 L1 - Group By and Having Clauses SECTION 5 L1 - Group By and Having Clauses Clauza Group By 1. SELECT department_id, AVG(salary),MAX(salary) 2. SELECT job_id, last_name, AVG(salary) GROUP BY job_id; ORA-00979: not a GROUP BY expression

More information

The Reuse of the Components on the Java 2 Enterprise Edition Platform

The Reuse of the Components on the Java 2 Enterprise Edition Platform 140 The Reuse of the Components on the Java 2 Enterprise Edition Platform Lect.dr. Marian CRISTESCU Catedra de Informatică Economică, Universitatea "Lucian Blaga" Sibiu Reusable components are simply pre-built

More information

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Supraîncărcarea numelui de funcţii (overloading) In C nu este permisa

More information

Expresii lambda (Lambda expressions). Arbori de expresii (Expression trees).

Expresii lambda (Lambda expressions). Arbori de expresii (Expression trees). Cuprins Expresii lambda (Lambda expressions). Arbori de expresii (Expression trees). Cuvantul cheie var obiecte si initializarea colectiilor. tipuri anonime, new forma noua. Metode extinse (Extension methods).

More information

Nivelul inferior de prelucrare a fişierelor

Nivelul inferior de prelucrare a fişierelor INTRĂRI ŞI IEŞIRI Operaţiile de I/E în limbajul C se realizează prin intermediul unor funcţii din biblioteca standard a limbajului. Majoritatea operaţiilor de I/E se realizează în ipoteza că datele sunt

More information

Colecţii. Programare Orientată pe Obiecte

Colecţii. Programare Orientată pe Obiecte Colecţii Programare Orientată pe Obiecte Colecţii Ce sunt colecţiile? Interfeţe ce descriu colecţii Implementări ale colecţiilor Folosirea eficientă a colecţiilor Algoritmi polimorfici Tipuri generice

More information

Proiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu

Proiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu Proiectarea bazelor de date # 9 PL/SQL Proceduri în PL/SQL(partea II-a) 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 9 Proceduri în PL/SQL Proiectarea bazelor de date 2 Cuprins Proceduri în PL/SQL

More information

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele.

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele. Lucrarea 1 SDA 03.04.2017 Sa se realizeze urmatoarele programe, in limbaj C: 1. Se primesc de la intrarea standard: un numar k si un sir infinit de numere naturale a i. Se afiseaza la iesirea standard,

More information

Rezolvarea exceptiilor

Rezolvarea exceptiilor PL/SQL SECTIUNE 6 Rezolvarea exceptiilor Entering an incorrect username and/or password Forgetting to include the @ in an email address Entering a credit card number incorrectly Entering an expiration

More information

Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete

Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. 1. Pachete 2. Interfete 3. Tratarea exceptiilor Pachete Crearea unui pachet Folosirea membrilor unui pachet Importul unei

More information

Probleme consultații 20 ianuarie 2018

Probleme consultații 20 ianuarie 2018 Algoritmi elementari Probleme consultații 20 ianuarie 2018 Problema 1: zerouri factorial Enunt Fiind dat un numar natural n, sa se determine numarul de cifre 0 cu care se termină factorialul numărului

More information

Error! Bookmark not defined.

Error! Bookmark not defined. SEMINAR 06 CONTENTS Enuntul Problemei... 1 Repository... 2 Memory... 2 XML... 3 GUI... 4 Forma Selectie... 4 Forma Programator... 5 Forma Tester... 6 Java... 7 Mecanismul de Transmitere al Evenimentelor

More information

Universitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu

Universitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 4 Applet-uri în Java 10.03.2016 Curs - Aplicatii Java 2 Applet-uri în Java 1. Ce este un applet? 2. Crearea

More information

Fisiere text in Java.

Fisiere text in Java. Fisiere text in Java. Doru Anastasiu Popescu Prelucrarea fisierelor text in Java Aspecte teoretice: http://cursuri.cs.pub.ro/~poo/wiki/index.php/input/output http://upm.ro/intranet/ecalin/cd_educational/cd/javac/cap3.htm

More information

Laborator 1 Tehnologia Java

Laborator 1 Tehnologia Java Laborator 1 Tehnologia Java Tehnologia Java este alcatuita dintr-un conglomerat de concepte dintre care amintim: limbajul de programare Java dezvoltat pe baza paradigmei obiect orientate; platforma de

More information

Metode avansate de programare

Metode avansate de programare Metode avansate de programare Informatică Română, 2017-2018, Curs 1 Noțiuni introductive If builders built houses the way programmers built programs, first woodpecker to come along would destroy civilization.

More information

1. Clase. Abstractizarea datelor

1. Clase. Abstractizarea datelor 1. Clase. Abstractizarea datelor Vom face în cursul de Programarea calculatoarelor şi limbaje de programare II o introducere în programarea orientată pe obiecte, cu aplicaţii în limbajul de programare

More information

Lucrarea nr. 2. Funcţii şi structuri în C++

Lucrarea nr. 2. Funcţii şi structuri în C++ Lucrarea nr. 2 Funcţii şi structuri în C++ Pe măsură ce programele cresc in complexitate şi dimensiune, ele trebuiesc împărţite în fragmente mai mici şi mai uşor de gestionat numite funcţii. Funcţiile

More information

Aplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu

Aplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu Aplicatii JAVA # 7 JAVA Excepții în Java 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 7 Excepții în Java 24.03.2017 Curs - Aplicatii Java 2 Excepții în Java 1. Ce sunt excepțiile? 2. Avantajele excepțiilor

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro http://acs.ase.ro/software-quality-testing Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor

More information

1. Funcţii referitoare la o singură înregistrare (single-row functions)

1. Funcţii referitoare la o singură înregistrare (single-row functions) Laborator 4 Limbajul SQL 1. Funcţii referitoare la o singură înregistrare (single-row functions) 2. Funcţii referitoare la mai multe înregistrări (multiple-row functions) 1. Funcţii referitoare la o singură

More information

Quartz. ArcGIS Runtime SDK for Android

Quartz. ArcGIS Runtime SDK for Android Quartz ArcGIS Runtime SDK for Android Quartz (beta) Ce ofera? Utilizarea OpenGL controale si functionalitati de performanta inalta; utilizarea de Vector Tile Package utilizarea Map Package; biblioteci

More information

informatii despre exceptia respectiva starea programului în momentul producerii acelei exceptii

informatii despre exceptia respectiva starea programului în momentul producerii acelei exceptii Curs 3 Exceptii Ce sunt exceptiile? Avantajele exceptiilor "Prinderea" si tratarea exceptiilor (Instructiunile try-catch-finally) "Aruncarea" exceptiilor (Clauza throws, Instructiunea throw) Ierarhia claselor

More information

Birotică Profesională. Cursul 12

Birotică Profesională. Cursul 12 Birotică Profesională Cursul 12 Sumar Visual Basic for Applications (VBA) Tipuri de date Structuri de control Funcţii si proceduri Obiecte si colecţii VBA Mediu de programare destinat in special realizării

More information

2) Fiecare apel relativ la un obiect este transformat într-un apel obişnuit. Exemplu: myscreen.home(); devine home Screen( &myscreen );

2) Fiecare apel relativ la un obiect este transformat într-un apel obişnuit. Exemplu: myscreen.home(); devine home Screen( &myscreen ); 6 Clase C++ (II) 6.1 Pointerul implicit this Fiecare obiect al unei clase conţine câte o copie a datelor membre. Screen myscreen, bufscreen; // fiecare are propriul numar de linii (row), de coloane(col),

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor de modificat structurat Ușor de reutilizat

More information

Instructiuni de control

Instructiuni de control Instructiuni de control Introducerea caracterelor de la tastatura Instructiuni de selectie (if, switch) Instructiuni repetitive (for, while, dowhile, foreach) Instructiuni de salt (break, continue, goto,

More information

Curs 4 Programare Orientată pe Obiecte în limbajul Java. Programare Orientată pe Obiecte

Curs 4 Programare Orientată pe Obiecte în limbajul Java. Programare Orientată pe Obiecte Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Exemplu clasa Complex Variabie şi metode de instanţă/clasă Blocuri statice Clasa Object Polimorfism Tipul

More information

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Integrated IS-IS 25 Noiembrie 2010 Proiectarea

More information

Tipuri de date structurate

Tipuri de date structurate Tipuri de date structurate Problema 1 Să se citească un șir A de la tastatură, citirea șirului se termina la introducerea valorii 0. Să se construiască și să se tipărească șirul B de perechi (element,

More information

Şiruri de caractere System.String string Verbatim verbatim verbatim Exemplu

Şiruri de caractere System.String string Verbatim verbatim verbatim Exemplu Şiruri de caractere Pentru reprezentarea şirurilor de caractere, în limbajul C#, tipul de date utilizat este clasa System.String (sau aliasul string). Se definesc două tipuri de şiruri: regulate de tip

More information

Operatori. Comentarii. Curs 1

Operatori. Comentarii. Curs 1 Operatori atribuirea: = operatori matematici: +, -, *, /, % Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2) Exista operatorii pentru autoincrementare si autodecrementare (post si pre)

More information

-modificatorul unei interfeţe este public sau abstract (implicit)

-modificatorul unei interfeţe este public sau abstract (implicit) 6.1. Interfeţe Java - interfeţele Java abstractizează complet metodele unei clase (interfaţa clasei) faţă de orice implementare; - folosind cuvântul rezervat interface (în loc de class) specificăm ce poate

More information

Design patterns. Assoc. prof. Catalin Boja, PhD

Design patterns. Assoc. prof. Catalin Boja, PhD Design patterns Assoc. prof. Catalin Boja, PhD catalin.boja@ie.ase.ro http://acs.ase.ro/software-quality-testing Source code quality Principles for writing the code: Easy to read / understand - clear Easy

More information

Operații de intrare/ieșire în C++

Operații de intrare/ieșire în C++ Operații I/O în limbajul C++ Operații de intrare/ieșire în C++ Mihai Gabroveanu Limbajul C++ moștenește de la C funcțiile de I/O Dezavantaj: permit manipularea doar a tipurilor de bază Limbajul C++ introduce

More information

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM...

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM... CUPRINS 1. Java ca limbaj de programare cu obiecte Diferente între limbajele Java si C................................... Tipuri clasã si tipuri referintã....................................... Structura

More information

Laborator 10. SGBD-ul MySQL (partea I)

Laborator 10. SGBD-ul MySQL (partea I) Laborator 10 SGBD-ul MySQL (partea I) 1. Introduceţi următoarea secvenţă PHP: $dbh = mysql_connect("localhost", "Costica", "mypass") or die("unable to connect to MySQL"); $selectdb = mysql_select_db('lucrudb');

More information

6. Apelarea metodelor la distanță (RMI Remote Method Invocation)

6. Apelarea metodelor la distanță (RMI Remote Method Invocation) 6. Apelarea metodelor la distanță (RMI Remote Method Invocation) Cuprins O implementare naivă a RMI Caracteristicile generale ale RMI Scurtă prezentare a arhitecturii sistemului RMI Aplicație: programul

More information

Laborator 4 Java Colectii

Laborator 4 Java Colectii Laborator 4 Java Colectii Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Urmatorul exemplu foloseste diferite clase de colectii si adauga cate un element in aceste colectii import

More information

[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL

[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL Algoritmi STL 1. Prezentare generală 2. Clasificare: Algoritmi nechirurgicali ; Algoritmi chirurgicali ; Algoritmi de sortare; Algoritmi generali; 3. Algoritmi nechirurgicali (Non-mutating algorithms)

More information

Programarea Aplicațiilor Windows curs 1

Programarea Aplicațiilor Windows curs 1 Programarea Aplicațiilor Windows curs 1 Lect. dr. Cristian CIUREA Departamentul de Informatică și Cibernetică Economică Academia de Studii Economice București cristian.ciurea@ie.ase.ro 1 Agenda 1. Structură

More information

Tema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees

Tema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees Tema 2 PL/SQL 1. Ce va afişa acest bloc? fname varchar2(20); lname varchar2(15) default fernandez ; DBMS_OUTPUT.PUT_LINE(fname lname); a. Va printa fernandez. b. Va returna o eroare deoarece variabila

More information

AppOBP > PrOBPT > class Timp import java.text.decimalformat;

AppOBP > PrOBPT > class Timp import java.text.decimalformat; AppOBP > PrOBPT > class Timp import java.text.decimalformat; public class Timp { private int hour; // 0-23 private int minute; // 0-59 private int second; // 0-59 // constructorul Timp initializeaza fiecare

More information

Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență

Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență 1. Precizați dacă afirmația care urmează este corectă ori incorectă și motivați răspunsul în 4-5 fraze. (Notă:

More information

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare.

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. În această lucrare vor fi prezentate mecanismele Java pentru programarea concurentă. Fire de Execuţie Există două moduri în care pot fi create

More information

Introducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania

Introducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania Introducere in Maven Build management tools Java build tools: Maven Gradle Ant + Ivy Build tools are programs that automate the creation of executable applications from source code. Building incorporates

More information

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran Laborator 1 Java Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin intermediul

More information

Unit Testing cu JUnit

Unit Testing cu JUnit Unit Testing cu JUnit Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro http://acs.ase.ro Dep. de Informatică și Cibernetică Economică ASE București Resurse Lasse Koskela - Effective Unit Testing, Manning,

More information

Tablouri si Colectii. Definire tablou. Tablouri unidimensionale, multidimensionale, de lungimi variabile (jagged arrays).

Tablouri si Colectii. Definire tablou. Tablouri unidimensionale, multidimensionale, de lungimi variabile (jagged arrays). Tablouri si Colectii Definire tablou. Tablouri unidimensionale, multidimensionale, de lungimi variabile (jagged arrays). Colectii nongenerice Colectii generice Colectii specializate Clasificare colectii

More information

Programare orientată pe obiecte. 1. Pachete (packages) 2. Moştenire

Programare orientată pe obiecte. 1. Pachete (packages) 2. Moştenire Programare orientată pe obiecte 1. Pachete (packages) 2. Moştenire Organizarea claselor înrudite în pachete Pachet (package): set de clase înrudite Pentru a pune o clasă într-un pachet, trebuie scrisă

More information

Tehnici avansate de programare

Tehnici avansate de programare Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Lucrul dinamic cu clase Tehnici avansate de programare p.1/3 Cuprins Incarcarea

More information

Aplicatii JAVA. JAVA Interfata grafica AWT (partea II) # 5. Adrian Runceanu

Aplicatii JAVA. JAVA Interfata grafica AWT (partea II) # 5. Adrian Runceanu Aplicatii JAVA # 5 JAVA Interfata grafica AWT (partea II) 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 5 Interfata grafica AWT (Abstract Window Toolkit ) (partea a II-a) 24.03.2017 Curs - Aplicatii

More information

LAMBDA EXPRESSIONS AND STREAMS API

LAMBDA EXPRESSIONS AND STREAMS API Java 8 LAMBDA EXPRESSIONS AND STREAMS API An Introduction Methods As Data 2 @FunctionalInterface public interface Runnable { public abstract void run(); public interface ActionListener extends EventListener

More information

Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR

Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR Ca şi în C, limbajul C++ are posibilitatea supraîncărcării funcţiilor şi operatorilor. Mai exact, unei funcţii (metode) i se conferă posibilitatea de a înţelege

More information

Lucrarea nr.8 CLASE IMBRICATE

Lucrarea nr.8 CLASE IMBRICATE Lucrarea nr.8 CLASE IMBRICATE În C++ se poate include declaraţia unei clase în interiorul altei clase. Clasa declarată în interiorul alteia se numeşte clasă imbricată (nested class) şi permite evitarea

More information

Clasa Collections Sortarea Căutarea... 31

Clasa Collections Sortarea Căutarea... 31 Curs7 TreeSet... 3 Crearea unui TreeSet... 4 Adăugarea elementelor... 5 Comparatorul... 5 Returnarea elementelor... 6 Folosirea submulţimilor... 7 Sortarea colecţiilor... 8 Interfaţa Comparable... 8 Comparator...

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor de modificat structurat Ușor de reutilizat

More information

Capitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.

Capitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5. Capitolul 4 Fisiere de date si Tablespace 1 Continut capitol Ca structura fizica, baza de date contine fisiere de control, de date si de Redo log. Ca structura logica o baza de date se compune din: Tablespace

More information

Laborator 5 Sisteme Lindenmayer. Temă

Laborator 5 Sisteme Lindenmayer. Temă Laborator 5 Sisteme Lindenmayer. Temă 1. Parcurgerea unui pătrat. Următorul L-sistem Alfabet=F,+,-; Producţii= F -> F-F+F+F+F-F-F-F+F, + -> +, - -> - Axioma= F generează, cu interpretările standard (F

More information

Atribute si interfete Facultatea de Informatica Iasi Universitatea Al I. Cuza Iasi Introspectie metadata Reflection. Atribute. Interfete.

Atribute si interfete Facultatea de Informatica Iasi Universitatea Al I. Cuza Iasi Introspectie metadata Reflection. Atribute. Interfete. Curs 3 1 Cuprins Introspectie metadata Reflection. Atribute. Interfete. Introspectie metadata - Reflection o Clasa Type o Exemple de utilizare Atribute preconstruite; definite de dezvoltator (custom);

More information

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan * CONFIGURAREA UNUI SERVER IRC IN LINUX Bica Bogdan * In this exemple i show how to configure an irc server based on ircd dameon named ircu.this is the main file name ircd.conf and the most important.configure

More information

LUCRAREA NR. 6 POINTERI

LUCRAREA NR. 6 POINTERI LUCRAREA NR. 6 POINTERI Un pointer este o variabilă care păstrează adresa unui obiect de tip corespunzător. Forma generală pentru declararea unei variabile pointer este: tip * nume_variabila; unde tip

More information

Curs 10 Applet-uri. Ce este un applet? Crearea unui applet. Curs 10

Curs 10 Applet-uri. Ce este un applet? Crearea unui applet. Curs 10 Curs 10 Applet-uri Ce este un applet? Crearea unui applet simplu Ciclul de viata al unui applet Interfata grafica cu utilizatorul Definirea si folosirea parametrilor Tag-ul Folosirea firelor de

More information

Curs 8. Programare orientată obiect în Delphi (II)

Curs 8. Programare orientată obiect în Delphi (II) Programare Delphi Curs 8 Programare orientată obiect în Delphi (II) http://docwiki.embarcadero.com/radstudio/en/classes_and_objects_index 1. Deriea claselor. După cum am văzut, în Delphi este definită

More information

Curs 1 PPOO. Conf. univ. dr. Cristian CIUREA Departamentul de Informatică și Cibernetică Economică

Curs 1 PPOO. Conf. univ. dr. Cristian CIUREA Departamentul de Informatică și Cibernetică Economică Curs 1 PPOO Conf. univ. dr. Cristian CIUREA Departamentul de Informatică și Cibernetică Economică cristian.ciurea@ie.ase.ro 1 Structură evaluare Curs = 60% (examen la calculator) Seminar = 20% (proiect)

More information

Overview of the OOA Process...

Overview of the OOA Process... Object-oriented analysis (OOA)! What are the relevant objects? How do they relate to one another? Object-Oriented Analysis and Modeling! How do we specify/model a problem so that we can create an effective

More information

POO. Observer Pattern (prezentare bazata pe GoF)

POO. Observer Pattern (prezentare bazata pe GoF) POO Observer Pattern (prezentare bazata pe GoF) 1 Observator: :intentie Defineste o relatie de dependenta 1..* intre obiecte astfel incat cand un obiect isi schimba starea, toti dependentii lui sunt notificati

More information

Proiectarea bazelor de date

Proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Proiectarea bazelor de date Lect.dr. Adrian

More information

Ce este o clasă? Programare orientată pe obiecte. Ce este o clasă? Clase

Ce este o clasă? Programare orientată pe obiecte. Ce este o clasă? Clase Ce este o clasă? Programare orientată pe obiecte 1. Recapitulare 2. InformaŃii despre examen O clasă este în primul rând o descriere a obiectelor (instanńelor), clasei respective Clasa conńine unul sau

More information

Programare Orientata spre Obiecte (Object-Oriented Programming)

Programare Orientata spre Obiecte (Object-Oriented Programming) UPB - Facultatea ETTI - Curs POO - an II - seria E 2011-2012 Programare Orientata spre Obiecte (Object-Oriented Programming) a.k.a. Programare Obiect-Orientata Titular curs: Eduard-Cristian Popovici Suport

More information

PROGRAMARE ORIENTATĂ PE OBIECTE

PROGRAMARE ORIENTATĂ PE OBIECTE Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu PROGRAMARE ORIENTATĂ PE OBIECTE Lector dr. Adrian Runceanu 03.01.2014 1 Curs 15 Limbajul

More information

Unit Testing cu JUnit

Unit Testing cu JUnit Unit Testing cu JUnit Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro http://acs.ase.ro Dep. de Informatică și Cibernetică Economică ASE București Resurse Lasse Koskela - Effective Unit Testing, Manning,

More information

Proprietati CSS pentru margini - BORDER

Proprietati CSS pentru margini - BORDER Proprietati CSS pentru margini - BORDER Property Values Description border border-bottom border-width border-bottom-width O proprietate pentru setarea celor 3 proprietati intr-o singura linie O proprietate

More information

Programare orientată pe obiecte. 1. Clase şi obiecte (continuare) 2. Tablouri

Programare orientată pe obiecte. 1. Clase şi obiecte (continuare) 2. Tablouri Programare orientată pe obiecte 1. Clase şi obiecte (continuare) 2. Tablouri // Autor : Fred Swartz import javax.swing.*; public class KmToMiles { Metode: cum funcţionează un apel private static double

More information

1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite

1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite 1.1 Obiective În lucrare sunt prezentate principalele operaţii asupra listelor circulare simplu înlănţuite: crearea, inserarea unui nod, ştergerea unui nod şi ştergerea listei. În a ua parte vor fi prezentate

More information