Programare in Java
Programare in Java
Dup executarea programului, va fi afiat valoarea: a) b) c) d) 3; 2; 1; nicio valoare, deoarece programul este incorect sintactic i nu va putea fi executat.
Dup executarea programului, va fi afiat valoarea: a) b) c) d) 0; 2; 1; nicio valoare, deoarece programul este incorect sintactic i nu va putea fi executat.
4. Un program Test scris n limbajul Java poate fi compilat folosind comanda: a) b) c) d) javac Test java Test.java javac Test.class javac Test.java
5. Un program Test scris n limbajul Java i compilat, poate fi rulat folosind comanda: a) b) c) d) javac Test.java java Test java Test.class java Test.java
6. n Java o clas poate extinde: a) b) c) d) cel mult o interfa oricte clase cel mult o clas oricte interfee
7. n Java o interfa poate extinde: a) b) c) d) cel mult o interfat oricte interfee cel mult o clas oricte clase
8. n Java o clas poate implementa: a) b) c) d) o clas oricte clase o interfa oricte interfee
} class C extends B { public C() { System.out.println("C"); } } public class test { public static void main(String[] args) { C ob=new C(); } }
curs=c; nota=n; } public void afisare() { .................................. System.out.println(curs+" "+nota); } } public class test { public static void main(String[] args) { Student_2 s=new Student_2("Popescu",314,"Java",10); s.afisare(); } }
Dup executarea programului, pentru a se afisa Popescu 314 Java 10, spaiile punctate din metoda afisare a clasei Student_2 trebuie nlocuite cu: a) b) c) d)
afisare(); Student_1.afisare(); super.afisare();
System.out.println(curs+" "+nota); } } public class test { public static void main(String[] args) { Student_2 s=new Student_2("Popescu",314,"Java",10); s.afisare(); } }
Dup executarea programului, pentru a se afia Popescu 314 Java 10, spaiile punctate din constructorul Student_2 al clasei Student_2 trebuie: a) s fie nlocuite cu instruciunea super(ns,g); b) s fie nlocuite cu instruciunile nume=ns; grupa=g; c) nu trebuie nlocuite cu nimic, deoarece se apeleaz automat constructorul Student_1 al clasei Student_1; d) nu pot fi nlocuite cu nimic, deoarece programul fiimd incorect pentru ca metoda afisare a interfeei Student este implementat n dou clase diferite, Student_1 i
Student_2.
Stabilii care dintre urmtoarele propoziii sunt adevrate: a) definiia clasei Patrat_1 este incorect deoarece nu implementez metoda perimetru a interfeei Patrat; b) constructorul clasei Ptrat_2 este incorect deoarece nu are acces la pointerul this; c) constructorul clasei Ptrat_2 este incorect deoarece nu are apeleaz constructorul superclasei Patrat_1; d) definiia clasei Patrat_2 este incorect deoarece nu implementez metoda aria a interfeei Patrat.
Stabilii care dintre urmtoarele propoziii sunt adevrate: a) programul este incorect deoarece n funcia main se instaniaz o interfa, ci nu o clas; b) programul este corect i dup rulare va afia 140.0; c) programul este incorect deoarece n clasa Patrat_1 se redefinete ca i data membru constanta L din interfaa Patrat; d) programul este corect i dup rulare va afia 100.0 40.0. 16. Fie urmtorul program Java:
interface Patrat { public float A(); public float P(); } interface Dreptunghi { public float A(); public float P(); } class Patrulater_1 implements Patrat,Dreptunghi { float L; public Patrulater_1(float x) { L=x; } public float A() { return L*L; } public float P() { return 4*L; }
} class Patrulater_2 implements Patrat, Dreptunghi { float L,l; public Patrulater_2(float x, float y) { L=x; l=y; } public float A() { return L*l; } public float P() { return 2*(L+l); } } public class teste_grila { public static void main(String[] args) { Dreptunghi d = new Patrulater_1(10); Patrat p = new Patrulater_2(10,20); System.out.println(d.A()+" "+d.P()+" "+p.A()+" "+p.P()); } }
Stabilii care dintre urmtoarele propoziii sunt adevrate: a) programul este incorect deoarece apare un conflict de nume pentru ca n interfeele Patrat i Dreptunghi sunt definite metode cu aceiasi signatura, iar clasele Patrulater_1 i Patrulater_2 implementeaz fiecare ambele interfee; b) programul este incorect deoarece n interfeele Patrat i Dreptunghi sunt definite metodele A i P cu aceiasi signatura, iar clasele Patrulater_1 i Patrulater_2 implementeaz fiecare n mod diferit cele dou metode; c) programul este corect i dup rulare va afia 100.0 40.0 200.0 60.0; d) programul este incorect deoarece n funcia main i se atribuie instanei d a interfeei Dreptunghi un obiect din clasa Patrulater_1 , iar instanei p a interfeei Patrat un obiect de tip Patrulater_2 (care, de fapt, abstractizeaz noiunea de dreptunghi). 17. Considerm urmtorul program Java:
class C { int a,b; public C(int x, int y) { a=x; b=y; f(); g(); } void f() { while(a<b) { b=b-2*a; a=a+b/10; System.out.println(a+" "+b); } } void g() { System.out.println(a+" "+b); }
} public class test { public static void main(String[] args) { C ob = new C(5,100); } }
21. Un fir de execuie poate intra n starea "blocat" (blocked) astfel: a) b) c) d) prin apelul metodei sleep(); automat de ctre sistemul de operare; prin apelul metodei block(); prin apelul metodei wait().
22. Prin modalitatea sa de tratare a excepiilor, Java are urmtoarele avantaje fa de mecanismul tradiional de tratare a erorilor: a) b) c) d) exist o metod care se ocup de acest lucru; separarea codului pentru tratarea unei erori de codul n care ea poate sa apar; propagarea unei erori pna la un analizor de excepii corespunztor; gruparea erorilor dupa tipul lor.
23. O subclas a unei clase abstracte poate fi instaniat numai dac: a) se folosete cuvantul cheie abstract; b) suprascrie fiecare metod declarat abstract n superclasa sa i furnizeaza implementri pentru toate acestea; c) se folosete motenirea multipl; d) subclas abstract nu poate fi instaniat. 24. Care este rolul declaraiilor import? a) b) c) d) Permite referirea claselor fr utilizarea de prefixe; Permite importul imaginilor folosite; Elimin necesitatea declarrii variabilelor; Elimin apelurile directe ale funciilor fr clase.
25. Indicai pe care dintre sistemele de operare urmtoare pot fi rulate aplicaiile Java: a) b) c) d) Windows UNIX Mac OS X Linux
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
Java este o tehnologie inovatoare lansata de compania Sun Microsystems in 1995. Caracteristici principale: limbaj compilat si interpretat Programele Java sunt mai intai compilate in fisiere intermediare (byte code) dupa care sunt interpretate in mediul de executie Java. limbaj independent de platforma Masina virtuala Java (JVM) este mediul de executie al limbajului Java. JVM este inglobata in platforma JDK (Java Develoment Kit) Simplitate Elimina suprancarcarea operatorilor, mostenirea multipla, renunta la utilizarea variabilelor pointer; Complet orientat obiect Este modelat dupa C si C++.
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java.
19 February 2011
Introducere in Java
1. Masina virtuala, denumita JVM (Java Virtual Machine) care interpreteaza fisierele cu extensia .class ce contine bytecode.
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
2. Limbajul Java propriu-zis. Limbajul Java este orientat pe obiecte si se aseamana din punct de vedere al sintaxei cu C++. 3. Un compilator care genereaza fisiere cu extensia .class. Compilatorul Java traduce instructiunile scrise in limbajul Java (stocate in fisiere cu extensia .java) in instructiuni generice bytecode(stocate in fisiere cu extensia .class) care sunt intelese de masina virtuala. 4. Biblioteca de clase Java. Contine un set de componente utile care pot fi reutilizate in diverse aplicatii informatice.
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
2. Salvarea fisierelor sursa - se va face in fisiere care au obligatoriu extensia java. Este recomandat ca fisierul care contine codul sursa al clasei primare sa aiba acelasi nume cu cel al clasei.
19 February 2011
Introducere in Java
3. Compilarea aplicatiei - pentru compilare se utilizeaza compilatorul javac din distributia JDK. Apelul compilatorului se face pentru fisierul ce contine clasa principala a aplicatiei sau pentru orice fisier cu extensia java prin comanda: javac nume.java In cazul in care compilarea a reusit va fi generat fisierul nume.class. 4. Rularea aplicatiei - se realizeaza cu interpretorul java, apelat pentru unitatea de compilare corespunzatoare clasei principale cu comanda java nume Rularea unei aplicatii care nu foloseste interfata grafica, se va face intr-o fereastra sistem.
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
- un fisier sursa trebuie sa contina cel putin o definitie a unei clase de baza publice . - un fisier sursa poate contine un numar nelimitat de definitii de clase; Exista trei elemente care pot sa apara in fisierul sursa: - declaratii de pachete; - instructiuni de includere clase; - definitii de clase.
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
Atomi lexicali : set de caractere, literali, separatori, operatori, cuvinte rezervate. Setul de caractere - limajul Java utilizeaza setul de caractere Unicode care foloseste pentru reperezentarea caracterelor 2 octeti (65536 de semne); - setul de caractere Unicode este divizat in subintervale numite blocuri : Basi Latin, Greek, Ghotic etc. ) Literali - sunt reprezentarea codului sursa a unui tip primitiv, String sau nul.
19 February 2011
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
Literari Intregi Sunt acceptate 3 baze de numeratie : baza 10, 16, 8 si pot fi de doua tipuri: normali - se reprezinta pe 4 octeti (32 biti) lungi - se reprezinta pe 8 octeti (64 biti) Literari Flotanti : reprezentare pe 32 de biti sau pe 64 de biti (pentru tipul double) Literari Logici : sunt reprezentati prin valorile true , false. Literari Caracter : reprezentarea se face fie folosind o litera, fie o secventa escape scrisa ntre apostrofuri ( \n, \t, \b etc.)
19 February 2011
19 February 2011
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
Initializarea variabilelor: Tip numeVariabila = valoare; Declararea constantelor: final Tip numeVariabila;
19 February 2011
Programare orientata pe obiecte ORGANIZARE In functie de locul in care sunt declarate, variabilele se impart in urmatoatele categorii: a.Variabile membre, declarate in interiorul unei clase, b.Parametri metodelor, vizibili doar in metoda respectiva. c.Variabile locale, declarate intr-o metoda, vizibile doar in metoda respectiva. d.Variabile locale, declarate intr-un bloc de cod, vizibile doar in blocul respectiv.
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Controlul executiei
Instructiuni de decizie; Instructiuni de salt; Instructiuni pentru tratarea exceptiilor: try-catch-finally, throw Alte instructiuni: break, continue, return, label. 1. Instructiuni de decizie a). if-else
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Programare orientata pe obiecte ORGANIZARE b). switch-case switch (variabila) { case valoare1:break; case valoare2:...break; default:... } Variabilele care pot fi testate folosind instructiunea switch nu pot fi decat de tipuri primitive. 2. Instructiuni de salt - for , while, do- while
Introducere in Java
Tipuri de aplicatii Java Structura unui fisier sursa Structura lexicala a limbajului Java. Tipuri de date Controlul executiei
19 February 2011
Definirea claselor
4 March 2011
Definirea claselor
in Java este obligatorie definirea a cel putin unei clase (clasa de baza); nu este obligatorie crearea unei instante a clasei de baza, caz in care se vor utiliza date si metode statice.
4 March 2011
Definirea claselor
4 March 2011
Definirea claselor
Declararea si, eventual, initializarea variabilelor de instanta si de clasa (variabile membre). Declararea si implementarea constructorilor;
Declararea si implementarea metodelor de instanta si de clasa (metode membre). Declararea unor clase imbricate (interne). Observatie : implementarea metodei unei clase trebuie sa se faca obligatoriu in corpul clasei.
4 March 2011
Definirea claselor
Variabilele membre ale unei clase se declara de obicei inaintea metodelor. O variabila se declara astfel: [modificatori] Tip numeVariabila [ = valoareInitiala ]; unde un modificator poate fi : un modificator de acces : public, protected, private unul din cuvintele rezervate: static, final; Static : variabila este de clasa si nu de instanta; static tip variabilaClasa; Final : indica faptul ca valoarea variabilei nu mai poate fi schimbata (declararea constantelor ). final double PI = 3.14 ;
4 March 2011
Definirea claselor
- sunt metode speciale care au aceelasi nume cu cel clasei, nu returneza nici o valoare si sunt folosite pentru initializarea obiectelor clasei; - o clasa poate avea mai multi constructori care trebuie sa difere prin lista argumentelor; - daca in clasa nu se declara nici un constructor, sistemul ii creaza automat un constructor implicit.
4 March 2011
Declararea metodelor
Definirea claselor
- Metodele sunt responsabile cu descrierea comportamentului unui obiect. - Metodele se pot gasi doar in cadrul claselor. O metoda se declara astfel: [modificatori] TipReturnat numeMetoda ( [argumente] ) {// Corpul metodei} unde un modificator poate fi : un specificator de acces : public, protected, private . unul din cuvintele rezervate: static, abstract, final.
4 March 2011
4 March 2011
Definirea claselor
4 March 2011
Definirea claselor
4 March 2011
Definirea claselor
4 March 2011
Domeniul de vizibilitate al variabilelor si metodelor membre Exista patru niveluri de acces : public, pretected, implicit si private. O variabila/metoda membra de clasa se poate accesa doar daca tipul de clasa este accesibil. a). daca membrul este declarat public se permite accesul de oriunde; b). daca membrul este declrat protected atunci accesul este permis doar daca: - accesul este cerut din pachetul clasei in care este declarat; - accesul apare dintr-o subclasa a clasei. c). daca membrul este declarat private atunci accesul este permis doar in cadrul clasei; d). daca membrul este implicit accesul este permis doar din pachetul in care este declarat tipul.
Definirea claselor
4 March 2011
Definirea claselor
4 March 2011
Modificatori de acees
4 March 2011
Extinderea claselor
- Java permite doar mostenirea simpla, ceea ce ineamna ca o clasa poate avea un singur parinte (superclasa).
Extinderea claselor - o clasa poate avea un numar nelimitat de subclase; Polimorfism - mumtimea claselor definite in Java poate fi vazuta ca un arbore; - radacina arborelui este clasa Object din pachetul java.lang Sintaxa extinderii: class clasa1 extends clasa2, unde clasa1 este subclasa si clasa2 este superclasa.
Modificatori de acees
4 March 2011
- relatia de derivare a claselor este tranzitiva. Extinderea claselor Polimorfism class C1{int x;} class C2 extends C1{int y;} C1 este clasa derivata din clasa Object si este supercalasa pentru clasa C2. Clasa C2 este subclasa directa a clasei C1 si subclasa indirecta a clasei Object.
Modificatori de acees
4 March 2011
Clasa Object
- in limbajul Java, clasa Object este superclasa pentru toate clasele. Clasa Object defineste si implementeaza comportamentul comun al tuturor celorlalte clase Java prin metode specifice: returnarea clasei din care face parte un obiectul curent getclass( ) reprezentarea obiectiului curent intr-un String. toString( )
Modificatori de acees
4 March 2011
Constructorii subclaselor
Instantierea unui obiect din clasa extinsa implica instantierea unui obiect din clasa parinte. Fiecare constructor al subuclasei trebuie sa aiba un constructor cu aceeasi signatura in parinte sau sa apeleze explicit un constructor al clasei extinse . Apelul explicit al unui constructor din superclasa se realizeaza cu expresia: super([argumente])
Modificatori de acees
4 March 2011
Polimorfism
supraincarcarea (overloading) : in cadrul unei clase pot exista metode cu acelasi nume cu conditia ca signaturile lor sa fie diferite. supradefinirea (overriding): o subclasa poate rescrie o metoda a clasei parinte prin implementarea unei metode cu acelasi nume si aceeasi signatura ca ale superclasei. Observatii: - o metoda supradefinita poate sa ignore codul din superclasa sau poate sa il extinda prin expresia super. - o metoda nu poate supradefini o metoda declarata final in clasa parinte. - in Java nu este posibila supraincarcarea operatorilor.
Modificatori de acees
4 March 2011
Mofificatorii de acees
- o subclasa mosteneste de la parintele sau toate variabilele si metodele care nu sunt private.
Modificatori de acees
4 March 2011
O clasa Java poate contine doua tipuri de variabile si metode : de instanta: specifice fiecare instante create dintr-o clasa . de clasa: declarate cu modificatorul static, specifice clasei. class Exemplu { int x ; //variabila de instanta};
Modificatori de acees
- la fiecare creare a unui obiect al clasei Exemplu sistemul aloca o zona de memorie separata pentru memorarea valorii lui x. Exemplu o1 = new Exemplu(); o1.x=100; Exemplu o2 = new Exemplu(); o2.x = 200; System.out.println(o1.x); // Afiseaza 100 System.out.println(o2.x); // Afiseaza 200 = 100;
4 March 2011 8
Modificatori de acees
- pentru variabilele de clasa (statice) sistemul aloca o singura zona de memorie la care au acces toate instantele clasei respective; - daca un obiect modifica valoarea unei variabile statice ea se va modifica si pentru toate celelalte obiecte; - variabilele statice pot fi referite si sub forma: NumeClasa.numeVariabilaStatica class Exemplu { static long n =2; // Variabila de clasa} Exemplu o1 = new Exemplu(); Exemplu o2 = new Exemplu(); o1.n = 100; System.out.println(o2.n); // Afiseaza 100
4 March 2011
Extinderea claselor Polimorfism Diferenta intre cele doua tipuri de metode este urmatoarea: metodele de instanta opereaza atat pe variabilele de instanta cat si pe cele statice ale clasei; metodele de clasa opereaza doar pe variabilele statice ale clasei.
Modificatori de acees
4 March 2011
Clase abstracte
Metode abstracte
Interfete Java
11 March 2011
Clase abstracte
- este utilizata pentru a definii un concept abstract folosit la dezvoltarea ulterioara a altor clase ce pot fi instantiate; - o clasa abstracta nu poate fi instantiata;
Metode abstracte
- o clasa abstracta pune la dispozitia subclaselor sale un model complet pe care trebuie sa il implementeze. Declararea unui clase abstracte: [public] abstract class ClasaAbstracta {// Declaratii uzuale // Declaratii de metode abstracte }
Interfete Java
11 March 2011
Clase abstracte
- poate avea specificatorul public caz in care poate fi extinsa de orice clasa din afara pachetului; - poate contine date membre la care se adauga declaratii de metode neimplementate. - clasa care extinde o clasa abstracta trebuie sa implementeze metodele neimplementate din clasa abstracta.
Metode abstracte
Interfete Java - daca o clasa nu implementeaza metodele neimplementate este deasemenea abstracta si nu poate fi instantiata.
11 March 2011
Metode abstracte
Metodele fara nici o implementare se numesc metode abstracte si pot fi incluse doar in clase abstracte.
Clase abstracte In fata unei metode abstracte trebuie sa apara obligatoriu cuvantul cheie abstract, altfel va fi furnizata o eroare de compilare. Metode abstracte abstract class ClasaAbstracta { abstract void metodaAbstracta(); // Corect void metoda(); // Eroare}
Interfete Java
11 March 2011
Clase abstracte
O clasa abstracta poate sa nu aiba nici o metoda abstracta. Orice clasa care are o metoda abstracta trebuie declarata ca fiind abstracta. Platforma de lucru Java cuprinde numeroase exemple de ierarhii care folosesc la nivelele superioare clase abstracte: Number: superclasa abstracta a tipurilor referinta numerice; Reader, Writer: superclasele abstracte ale fluxurilor de intrare/iesire pe caractere; InputStream, OutputStream: superclasele abstracte ale fluxurilor deintrare/iesire pe octeti; AbstractList, AbstractSet, AbstractMap: superclase abstracte pentru structuri de date de tip colectie.
Metode abstracte
Interfete Java
11 March 2011
Interfete
Clase abstracte
Interfetele permit, alaturi de clase, definirea unor noi tipuri de date. O interfata Java este o colectie de metode fara implementare si declaratii de constante.
Metode abstracte
Interfete Java
O clasa care implementeaza o interfata trebuie obligatoriu sa specifice implementari pentru toate metodele interfetei.
11 March 2011
Clase abstracte
Metode abstracte
Definirea unei interfete se face prin intermediul cuvantului cheie interface: [public] interface NumeInterfata [extends SuperInterfata1, SuperInterfata2...] { Corpul interfetei:} O interfata poate avea doar modificatorul public.
Interfete Java
O interfata poate extinde oricate interfete. Acestea se numesc superinterfete si sunt separate prin virgula.
11 March 2011
Clase abstracte
Metode abstracte
Interfete Java
11 March 2011
Clase abstracte
Metode abstracte
Interfete Java
11 March 2011
Clase abstracte class NumeClasa implements NumeInterfata sau class NumeClasa implements Interfata1, Interfata2, ... O clasa poate implementa mai multe interfete. Interfete Java Modificarea unei interfete implica modificarea tuturor claselor care implementeaza acea interfata.
Metode abstracte
11 March 2011
Clase abstracte
- o clasa poate avea oricate subclase dar numai o superclasa; - o clasa poate extinte mai multe interfete. class NumeClasa implements Interfata1, Interfata2, ... Interface NumeInterfata extends Interfata1, Interfata2, ... O interfata mosteneste atat constantele cat si declaratiile de metode de la superinterfetele sale. O clasa mosteneste doar constantele unei interfete si responsabilitatea implementarii metodelor sale.
Metode abstracte
Interfete Java
11 March 2011
Utilitatea interfetelor
Interfetele sunt utile pentru:
Clase abstracte
definirea unor similaritati intre clase independente fara a forta artificial o legatura intre ele; posibilitatea implementarii unor clase prin mai multe modalitati si folosirea lor intr-o maniera unitara; definirea unor grupuri de constante;
Metode abstracte
Interfete Java
11 March 2011
Tablouri
- tabloul este un obiect creat dinamic care poate fi assignat variabilelor de tip Object; - toate elementele unui tablou au aceelasi tip;
Clase abstracte
Metode abstracte
Declararea vectorului: Tip[] numeVector; Tip numeVector[]; Exemple int[] intregi; String adrese[];
Interfete Java
11 March 2011
Clase abstracte
Metode abstracte
Interfete Java
Instantierea unui tablou - Operatia de alocare a memoriei (instantierea vectorului) se realizeaza intotdeauna prin intermediul operatorului new numeVector = new Tip[nrElemente]; - in urma instantierii vor fi alocati: nrElemente * dimensiune(Tip) octeti necesari memorarii elementelor din vector; v = new int[10]; //aloca spatiu pentru 10 intregi: 40 octeti c = new char[10]; //aloca spatiu pentru 10 caractere: 20 octeti
11 March 2011
Tablouri
Siruri de caractere
15 June 2011
Tablouri
Tablouri
- tabloul este un obiect creat dinamic care poate fi assignat variabilelor de tip Object; - toate elementele unui tablou au aceelasi tip; Declararea vectorului Se realizeaza prin expresii de forma: Tip[] numeVector; Tip numeVector[]; Exemplu: int[] intregi; String adrese[];
Siruri de caractere
15 June 2011
Tablouri
Siruri de caractere
- delararea unui tablou nu creaza obiectul tablou si nici nu aloca spatiu de memorie pentru componente; Instantierea unui tablou - Operatia de alocare a memoriei (instantierea vectorului) se realizeaza intotdeauna prin intermediul operatorului new numeVector = new Tip[nrElemente]; - in urma instantierii vor fi alocati: nrElemente * dimensiune(Tip) octeti necesari pentru memorarea elementelor din vector; v = new int[10]; //aloca spatiu pentru 10 intregi: 40 octeti c = new char[10]; //aloca spatiu pentru 10 caractere: 20 octeti
15 June 2011
Tablouri
Siruri de caractere
15 June 2011
Tablouri
Siruri de caractere
- dimeniunea unui tablou se poate calcula cu ajutorul variabilei length. int []a = new int[5]; // a.length are valoarea 5 int m[][] = new int[5][10]; // m[0].length are valoarea 10 - copierea unui vector se poate realiza fie element cu element, fie cu ajutorul metodei System.arraycopy int a[] = {1, 2, 3, 4}; int b[] = new int[4]; for(int i=0; i<a.length; i++) b[i] = a[i]; Echivalent cu : System.arraycopy(a, 0, b, 0, a.length);
15 June 2011
Tablouri
Siruri de caractere
15 June 2011
Siruri de caractere
Tablouri
In Java, un sir de caractere poate fi reprezentat astfel: - printr-un vector format din elemente de tip char; -un obiect de tip String; -un obiect de tip StringBuffer Exemple echivalente de declarare a unui sir: String s = "abc"; String s = new String("abc"); char data[] = {a, b, c};
Siruri de caractere
15 June 2011
Tablouri
Siruri de caractere
String sir=Primul sir; sir= Al doilea sir - daca se atribuie unei variabile de tip String o alta valoare, vechea referinta se pierde; - daca un sir se intializeaza cu un literal String, atunci i se va atribui adresa acestuia din memorie (tabela de literali literal pool); - operatorul == aplicat pentru doua String uri testeaza daca acestea ponteaza catre aceeasi adresa de memorie; - utilizarea operatorului new pentru un String conduce la crearea unui spatiu de memorie ; - se poate crea un tablou de String-uri : String [ ] nume = new String [5]; nume[0] = Pop
15 June 2011
Tablouri
Siruri de caractere
- Concatenarea sirurilor de caractere se face prin intermediul operatorului + String s1 = "abc" + "xyz"; String s2 = "123"; String s3 = s1 + s2; Metode publice din clasa String : - boolean equals(object obiect); - string replace(char caractervechi, char caracternou) ; - String toLowerCase(); - int length; - String substring(int indexstart, int indexsfarsit) - char charAt(int index)
15 June 2011
Clasa StringBuffer
- prelucreaza siruri de caractere de lungime variabila; - o instanta a clasei StringBuffer reprezinta un String care poate fi modificat dinamic; - un obiect de tip StringBuffer contine un bloc de memorie numit buffer care poate sa contina un sir, dar nu este obligatoriu sa fie ocupat in totalitate; - crearea unui obiect de tip StringBuffer se realizeaza apleland unul din costructorii: StringBuffer( ); //un sir cu capacitatea de 16 caractere StringBuffer(int capacitate); StringBuffer(String sir) Exemplu : StringBuffer a = new StringBuffer(Un sir de tip buffer);
Tablouri
Siruri de caractere
15 June 2011
Tablouri
StringBuffer delete(int start, int end); StringBuffer replace(int start, int end, String sir); int length();
15 June 2011
Conversie de date
- conversia unui tip de date byte, short, int, float, double, char, boolean la un sir de caractere se realizeaza cu metoda statica toString() . - conversia unui sir de caractere String la un tip de data primitiva se realizeaza cu metoda: tip.parseTip(String sir); Exemplu: int.parseInt(sir); double.parseDouble(sir).
Tablouri
Siruri de caractere
15 June 2011
Exceptii si erori
Tratarea exceptiilor
15 June 2011
Exceptii si erori
Erorile si exceptiile reprezinta situatii particulare si anormale care pot sa apara in timpul executiei unei aplicatii Java de intrare/iesire, imposibilitate de conversie de la un tip la altul). Erorile sunt situatii grave care , daca apar, duc la intreruperea executiei programului (VirtualMachineError). Exceptiile sunt situatii care pot aparea mai frecvent si, de regula, problemele aparute se pot remedia. De regula, aplicatiile trateaza aceste situatii particulare. Cand se produce o eroare in timpul executiei se creaza un obiect de tip exceptie ce va contine:
Tratarea exceptiilor
- informatii despre exceptia respectiva; - starea programului in momentul producerii acelei exceptii.
15 June 2011
Crearea unui obiect de tip exceptie se numeste aruncarea unei exceptii (throwing an exception). Exceptii si erori Secventa de cod dintr-o metoda care trateaza o anumita exceptie se numeste analizor de exceptie (exception handler). Interceptarea si tratarea ei se numeste prinderea exceptiei (catch the exception). In Java tratarea erorilor nu mai este o optiune ci o constrangere.
Tratarea exceptiilor
15 June 2011
Exceptii si erori
Tratarea exceptiilor
15 June 2011
Aruncarea exceptiilor
Exceptii si erori
Tratarea exceptiilor
- o metoda poate sa arunce exceptii catre alte metode; - metodele apelante fie implementeaza tratarea lor , fie la randul lor arunca mai departe exceptiile respective. Aruncarea exceptiilor se realizeaza prin specificarea in declaratia metodei a clauzei throws [modificatori] TipReturnat metoda([argumente]) throws TipExceptie1, TipExceptie2, ... {...} O metoda care nu trateaza o anumita exceptie trebuie obligatoriu sa o arunce.
15 June 2011
Exceptii si erori
Tratarea exceptiilor