Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Elementele de baza ale limbajului de programare Java

java



+ Font mai mare | - Font mai mic



Elementele de baza ale limbajului de programare Java

1.1.   Structura lexicala a limbajului

1.1.1.  Setul de caractere

Limbajului Java foloseste setul de caractere Unicode. Este un standard international care inglobeaza setul de caractere ASCII (permite reprezentarea a 256 de caractere). Foloseste pentru reprezentarea caracterelor 2 octeti, ceea ce inseamna ca se pot reprezenta 65536 de semne. Primele 256 caractere Unicode corespund celor din ASCII. Referirea la un caracter se face prin uxxxx, unde xxxx reprezinta codul caracterului.



Exemple:

u0030 - u0039 : cifre ISO-Latin 0 - 9

u0660 - u0669 : cifre arabic-indic 0 - 9

u4e00 - u9fff : litere din alfabetul Han (Chinez, Japonez, Coreean)

1.1.2.  Cuvinte cheie

Cuvintele rezervate in Java sunt cele din C++, cu cateva exceptii.

1.1.3.  Identificatori

Sunt secvente nelimitate de litere si cifre Unicode, incepand cu o litera. Identificatorii nu au voie sa fie identici cu cuvintele rezervate.

1.1.4.  Constante

Constantele pot fi de urmatoarele tipuri

  1. constante intregi

Sunt acceptate 3 baze de numeratie : baza 10, baza 16 (incep cu caracterele 0x) si baza 8 (incep cu cifra 0) si pot fi de doua tipuri:

         normale, (se reprezinta pe 4 octeti - 32 biti)

         lungi (8 octeti - 64 biti): se termina cu caracterul L (sau l).

  1. constante reale

Pentru ca o constanta sa fie considerata reala ea trebuie sa aiba cel putin o zecimala dupa virgula, sa fie in notatie exponentiala sau sa aiba sufixul F sau f pentru valorile normale (reprezentate pe 32 biti), respectiv D sau d pentru valorile lungi (reprezentate pe 64 biti).

  1. constante logice

true : valoarea booleana de adevar

false : valoarea booleana de fals

Observatie: spre deosebire de C++, constantele intregi 1 si 0 nu mai au rolul de adevarat si fals.

  1. constante caracter

O constanta de tip caracter este utilizata pentru a exprima caracterele codului Unicode. Reprezentarea se face fie folosind o litera, fie o secventa escape scrisa intre apostrofuri. Secventele escape permit reprezentarea caracterelor care nu au reprezentare grafica si reprezentarea unor caractere speciale precum backslash, apostrof, etc. Secvente escape predefinite in Java:

Cod

Secventa Escape

Caracter

u0008

'b'

Backspace(BS)

u0009

't'

Tab orizontal (HT)

u000a

'n'

Linie noua - linefeed (LF)

u000c

'f'

Pagina noua - formfeed (FF)

u000d

'r'

Inceput de rand (CR)

u0022

'''

Ghilimele

u0027

'''

Apostrof

u005c

''

Backslash

u0008

'b'

Backspace(BS)

  1. constante siruri de caractere

Un sir de caractere este format din zero sau mai multe caractere cuprinse intre ghilimele. Caracterele care formeaza sirul de caractere pot fi caractere grafice sau secvente escape. Daca sirul este prea lung el poate fi scris ca o concatenare de subsiruri de dimensiune mai mica. Concatenarea sirurilor se face cu operatorul + ('Ana ' + ' are ' + ' mere '). Sirul vid este ''. Dupa cum vom vedea, orice sir este de fapt, o instanta a clasei String, definita in pachetul java.lang.

1.1.5.  Separatori

Un separator este un caracter care indica sfarsitul unei unitati lexicale si inceputul alteia. In Java separatorii sunt urmatorii: ( ) [ ] ; , . Instructiunile unui program se separa cu ";".

1.1.6.  Operatori

1.      operator de atribuire: = (semnul egal)

Exemplu: a=9 (lui a i se atribuie valoarea 9)

Operatorii de atribuire pot fi inlantuiti. De exemplu: a=b=c=10

2.      operatori aritmetici binari: +, -, *, /, %

Exemplu: s=a+b

In Java exista forme prescurtate care cuprind operatorul de atribuire si un operator aritmetic binar. Operatorii prescurtati sunt:+=, -=, *=, /=, %=

Exemplu: n += 2 este echivalenta cu n=n+2

3.      operatori aritmetici unari: +, -, ++ (operator de incrementare), -- (operator de decrementare). Operatorii de incrementare si decrementare pot fi prefixati (++x sau --x) sau postfixati (x++ sau x--). Diferenta dintre operatorii prefixati si cei postfixati este semnificativa doar atunci cand expresia de incrementare / decrementare apare in cadrul unei expresii. Exemplele urmatoare vor evidentia aceste lucruri.

Exemple:

a)      -x reprezinta opusul lui x

b)      int x=5,y=7;

x++; // x primeste valoarea 6

y--; // y primeste valoarea 6

c)      int x=5,y=7;

++x; // x primeste valoarea 6

--y; // y primeste valoarea 6

d)      int x=5,y;

y=x++; // y primeste valoarea 5, x primeste valoarea 6

e)      int x=5,y;

y=x--; // y primeste valoarea 5, x primeste valoarea 4

f)       int x=5,y;

y=++x; // x primeste valoarea 6, y primeste valoarea 6

g)      int x=5,y;

y=--x; // x primeste valoarea 4, y primeste valoarea 4

Observatii: In exemplele b si c nu se observa nici o diferenta intre operatorii postfixati si cei prefixati deoarece ei nu sunt folositi in cadrul altor expresii. In exemplele d si f, respectiv, e si g se observa ca x primeste aceeasi valoare dar y are valori diferite. In exemplele d si e sunt folositi operatorii postfixati de incrementare si decrementare care se comporta astfel: valoarea variabilei asupra careia actioneaza operatorul postfixat (in cazul nostru x) participa la evaluarea expresiei din care face parte (y primeste valoarea lui x) dupa care se aplica operatorul (valoarea lui x creste / scade cu o unitate). In exemplele f si g sunt folositi operatorii prefixati de incrementare si decrementare care se comporta astfel: valoarea variabilei asupra careia actioneaza operatorul postfixat (in cazul nostru x) isi schimba valoarea (valoarea lui x creste / scade cu o unitate), noua valoare participand la evaluarea expresiei din care face parte (y primeste noua valoare a lui x).

4.      operatori logici: &&(and), ||(or), !(not)

Observatie: evaluarea expresiilor logice se face prin scurtcircuitare (evaluarea se opreste in momentul in care valoarea de adevar a expresiei este sigur determinata)

5.      operatori relationali: <, <=, >, <=, ==, !=

6.      operatori pe biti: & (and), |(or), ^(xor), ~(not)

7.      operatori de translatie: <<, >>, >>> (shift-are la dreapta fara semn)

8.      operatorul conditional: "? : " . Are forma:

expresie_logica ? expresie 1 : expresie 2

Valoarea expresiei este data de expresie1 daca expresie_logica este true sau de expresie2 daca expresie_logica este false.

Exemplu: Metoda de calculul minimului a doua numere este:

public int min (int a, int b)

9.      operatorul , (virgula) este folosit pentru evaluarea secventiala a operatiilor

Exemplu: int x=0, y=1, z=2;

10.  operatorul + pentru concatenarea sirurilor:

 String s='abcd'
 int x=100;
 System.out.println(s + ' - ' + x);

11.  operatorul de conversie de tip (cast) este: (tip_de_data)

int i = 200;
long l = (long)i; //conversie prin extensie
long l2 = (long)200;
int i2 = (int)l2; // conversie prin contractie

Exemplu 1: Fie programul

public class Operator
}

Rezultatul afisat este:

2 3 5
3 2 5
4 3 6
2 6 6
1 5 7
2 2 2 

Exemplu 2: Fie programul

public class OpLogic

}

Rezultatul afisat este:

Primul if

O conditie este falsa

Al doilea if

Exception in thread "main" java.lang.ArithmeticException: / by zero at OpLogic.main(OpLogic.java:11)

Explicatia se gaseste in modul in care sunt evaluate expresiile logice (prin scurtcircuitare). In primul if se evalueaza expresia a!=0 care are valoarea false. Indiferent de rezultatul celei de-a doua expresii, rezultatul final va fi false. Prin urmare, evaluarea intregii expresii se opreste dupa evaluarea lui a!=0, ceea ce urmeaza dupa nu mai conteaza. In al doilea if, evaluarea incepe tot cu prima expresie, si anume 1/a<1. Dar, ea nu poate fi evaluata deoarece 1/a nu are sens (a fiind 0) si, este generata o exceptie. Din nou, nu se ajunge la evaluarea celei de a doua expresii.

1.1.7.  Comentarii

In Java exista trei feluri de comentarii:

         Comentarii pe o singura linie: incep cu //.

         Comentarii pe mai multe linii, inchise intre /* si */.

         Comentarii pe mai multe linii care formeaza documentatia, inchise intre /** si **/. Textul dintre cele doua secvente este automat mutat in documentatia aplicatiei de catre generatorul automat de documentatie javadoc.

Observatii:

1.      nu pot fi scrise comentarii in interiorul altor comentarii.

2.      nu pot fi introduse comentarii in interiorul constantelor caracter sau sir de caractere.

3.      secventele /* si */ pot sa apara pe aceeasi linie cu secventa // dar isi pierd semnificatia; la fel se intampla cu secventa // in comentarii care incep cu /* sau /**.

1.2.   Tipuri de date

In Java tipurile de date se impart in doua categorii:

         tipuri primitive de date

         tipuri referinta.

Java porneste de la premiza ca 'orice este un obiect'. Prin urmare, tipurile de date ar trebui sa fie de fapt definite de clase si toate variabilele ar trebui sa memoreze de fapt instante (obiecte) ale acestor clase. In principiu acest lucru este adevarat, insa, pentru usurinta programarii, mai exista si asa numitele tipuri primitive de date, care sunt cele uzuale:

1.      tipuri intregi

Tip de date

Dimensiune in octeti

Domeniu

byte

1

-128 .. 127

short

2

-32768 .. 32767

int

4

-2147483648 .. 2147483647

long

8

-263 .. 263-1

2.      tipuri reale

Tip de date

Dimensiune in octeti

Domeniu

float

4

-1046 .. 1038

double

8

-10324 .. 10308

3.      tipul caracter: char memorat pe 2 octeti

4.      tipul boolean: are doua valori - true si false

In alte limbaje formatul si dimensiunea tipurilor primitive de date folosite intr-un program pot depinde de platforma pe care ruleaza programul. In Java acest lucru nu mai este valabil, Java fiind independent de platforma.

Vectorii, clasele si interfetele sunt tipuri referinta. Valoarea unei variabile de acest tip este, spre diferenta de tipurile primitive, o referinta (adresa de memorie) catre valoarea sau multimea de valori reprezentata de variabila respectiva.

Exista trei tipuri de date C care nu sunt suportate de limbajul Java: pointer, struct si union. Pointerii au fost eliminati din cauza ca erau o sursa constanta de erori, locul lor fiind luat de tipul referinta, iar struct si union nu isi mai au rostul atat timp cat tipurile compuse de date sunt formate in Java prin intermediul claselor.

1.3.   Variabile

Variabilele pot avea ca tip fie un tip primitiv de data, fie o referinta la un obiect.

Declararea variabilelor se face prin:

tip_de_date nume_variabila

Initializarea variabilelor se face prin:

nume_variabila = valoare

Declararea si initializarea variabilelor pot fi facute in acelasi moment:

tip_de_date nume_variabila = valoare

Declararea constantelor se face prin:

final tip_de_date nume_variabila

Exemple:

int a; a=5;

final double PI = 3.14;

int valoare = 100;

long numarElemente = 12345678L;

String floare = 'frezie';

In functie de locul in care sunt declarate, variabilele se impart in urmatoarele categorii:

  1. Variabile membru, declarate in interiorul unei clase, vizibile pentru toate metodele clasei respective si pentru alte clase in functie de modificatorul lor de acces
  2. Variabile locale, declarate intr-o metoda sau intr-un bloc de cod, vizibile doar in metoda / blocul respectiv
  3. Parametrii metodelor, vizibili doar in metoda respectiva

4.      Parametrii de la tratarea exceptiilor

Imaginea urmatoare ilustreaza tipurile de variabile si parametrii impreuna cu domeniul lor de vizibilitate.


Observatie: Variabilele declarate intr-un for, raman locale corpului ciclului. De exemplu:

for(int i=0; i<100; i++)

int i; //posibil in Java, eroare in C++

1.4.   Instructiuni

1.4.1.  Instructiunea vida

Este formata din ";".

1.4.2.  Instructiuni de decizie

1.      Instructiunea if-else are forma:

if (expresie_logica)

instructiuni1

else

instructiuni2

instructiuni

Daca expresie_logica are valoarea true atunci se executa instructiuni1, altfel se executa instructiuni2. Expresie_logica este obligatoriu sa fie cuprinsa intre paranteze. Daca pe una din ramuri sunt mai multe instructiuni ele trebuie sa fie cuprinse intre acolade . Ramura

else

instructiuni2

poate sa lipseasca.

Exemplu 3: Sa se calculeze maximul a doua numere.

1.      public class Maxim

11.        }

Exemplu 4: Sa se rezolve ecuatia de gradul I ax+b=0 cunoscand coeficientii a si b.

12.  public class ecGrI

25.              }

26.  }

In exemplu 4 au fost folosite if-uri imbricate. Pe linia 11 a fost folosit operatorul de conversie pentru ca rezultatul impartirii sa se fie numar real. Daca acest operator nu ar fi fost folosit, impartirea ar fi fost efectuata intre doi operanzi intregi si, prin urmare, rezultatul ar fi fost numar intreg.

2.      Instructiunea switch are forma:

switch (expresie_selectare)

Instructiunea switch selecteaza dintre mai multe secvente de cod una care va fi executata. Se evalueaza expresie_selectare; rezultatul obtinut se compara pe rand cu val_1, val_2, , val_n. Daca se intalneste o valoare val_i pentru care se obtine egalitate (expresie_selectare = val_i ) se executa instructiunile instructiune_i. Altfel, (daca nu are loc nici o egalitate) se executa instructiunile de pe ramura default.

Instructiune break intalnita pe fiecare ramura are rolul de a intrerupe executia instructiunii switch dupa ce au fost executate instructiunile aferente ramurii alese. Daca instructiunea break lipseste atunci se executa si instructiunile de pe urmatoarele ramuri pana la intalnirea primului break.

Exemplu 5: Se citeste de la tastatura un caracter reprezentand un operator: '+', '-', '*' sau '/'. In functie de operatorul citit sa se faca suma, diferenta, inmultirea sau impartirea celor doua numere a si b.

1.      public class Operatii

9.      catch(Exception e)

10.                    switch (oper)

23.                    System.out.println(a+' '+oper+' '+b+' = '+r);

24.              }

25.        }

In linia 7 se citeste un caracter de la tastatura memorat in oper si, in functie de el se executa instructiunile de pe liniile 12, 14, 16, 18 sau 20-21. Instructiunile de pe liniile 20-21 se executa doar in cazul in care nu a fost introdus un operator corect.

Exemplu 6: Sa se spuna daca un numar dat mai mic decat 10 este par sau impar.

1.      public class ParImpar

14.  }

15.  }

In exemplul precedent ne intereseaza ca aceeasi instructiune, cea din linia 9 sa fie executata pentru mai multe potriviri. In acest caz, sunt folosite mai multe linii de case fara nici un rezultat, instructiunea switch executand prima instructiune intalnita dupa gasirea potrivirii. Prin urmare, instructiunea break nu apare pe nici una din liniile 5, 6, 7.

1.4.3.  Instructiuni repetitive

1.      Instructiunea for repeta un bloc de instructiuni cat timp o conditie este adevarata. In general, se cunoaste de la inceput de cate ori urmeaza sa se execute blocul de instructiuni. Are forma generala:

for (initializare; test; incrementare)

instructiuni

unde:

         initializare este o expresie care initializeaza variabila de control a instructiunii for

         test este o expresie booleana evaluata inaintea fiecarei reluari a buclei; cat timp valoarea ei este true blocul de instructiuni se executa. Cand valoarea ei este false, se paraseste instructiunea for.

         incrementare este o expresie care modifica variabila de control a instructiunii for.

Oricare dintre cele trei parti constituente ale instructiunii for poate sa lipseasca.

for ( ; ; )

In acest caz se obtine o bucla infinita. Pentru a evita acest lucru este necesar ca in cadrul blocului de instructiuni sa existe o conditie de oprire.

De asemenea, blocul de instructiuni poate sa lipseasca, el fiind inlocuit de instructiunea vida. Exemplul 8 de mai jos ilustreaza aceasta situatie.

Exemplu 7: Sa se calculeze n! unde n este initializat in program.

2.      public class Factorial

10.  }

Exemplu 8: Sa se calculeze n! unde n este initializat in program.

1.      public class Factorial

9.      }

Dupa cum se poate remarca, pe linia 6 este folosita instructiunea vida deoarece codul f*=i a fost mutat in cadrul partii de incrementare.

O alta observatie ar fi ca, oricare dintre partile constituente ale instructiunii for poate fi formata din mai multe instructiuni. Acest lucru este ilustrat in programul urmator.

Exemplu 9:

1.      public class Factorial

13.              }

In linia 5 este calculat numarul maxim reprezentabil, de tip long. In for, initializam doua variabile i=2,f=1. Test-ul este format din doua conditii unite prin &&. Incrementarea este, de asemenea, formata din doua instructiuni f*=i,i++.

11.  Instructiunea while are forma:

while (conditie)

instructiuni

Instructiunea while este folosita pentru a repeta executia unui grup de instructiuni atata timp cat conditie are valoare true.

Exemplu 10: Sa se calculeze suma cifrelor unui numar.

1.      public class SumCifNr

9.      System.out.println('Suma cifrelor numarului '+xInit+' este: '+s);

10.  }

11.  }

Instructiunea while se mai numeste si instructiune cu test initial. Daca la prima evaluarea a conditiei aceasta are valoarea false instructiunile din corpul while-ului nu se executa niciodata. In exemplul precedent, daca initializam x cu 0, conditia x>0 este falsa si se continua cu instructiunea din linia 9.

12.  Instructiunea do-while are forma:

dowhile (conditie);

Ca si while, instructiunea do-while este folosita pentru a repeta executia unui grup de instructiuni atata timp cat conditie are valoare true. Diferenta dintre cele doua instructiuni este ca, daca la while se executau instructiunile doar daca conditie era adevarata, in cazul lui do-while blocul de instructiuni se executa cel putin o data dupa care se verifica valoarea conditiei.

Instructiunea do-while se mai numeste si instructiune cu test final.

Exemplu 11: Sa se calculeze cel mai mare divizor comun a doua numere a si b.

1.             public class Cmmdcwhile(r>0);

10.         System.out.println(a);

11.         }

12.         }

13.  Instructiunea break

break

Este folosita pentru parasirea fortata a corpurilor instructiunilor repetitive (for, while, do-while).

Exemplu 12: Sa se caute un numar cuprins in intervalul [a,b].

1.             public class ExBreak

9.             System.out.println(x);

10.         }

11.         }

In linia 5 se genereaza aleator un numar intreg mai mic decat b. Daca numarul este cuprins in intervalul [a,b] se paraseste instructiunea while.

Daca instructiunea break este plasata in cadrul mai multor instructiuni repetitive imbricate, ea are ca efect parasirea doar a instructiuni care o contine.

Exemplu:

1.             for()

8.            

9.             }

Efectul instructiunii break este parasirea for-ului din linia 3, executia continuandu-se cu instructiunile de pe linia 8.

14.  Instructiunea continue

Are ca efect intreruperea executiei iteratiei curente si trecerea la iteratia urmatoare.

Exemplu 13: Urmatorul cod afiseaza toate caracterele citite cu exceptia cifrelor de la 0 la 9.

1.             public class ExContinue

8.             catch(Exception e)

9.             if ( ('0'<=c) && (c<='9') )

10.         continue;

11.         System.out.print(c+' ');

12.         }

13.         }

14.         }

In cazul in care se citeste o cifra, se executa instructiunea continue de pe linia 10, nu se mai executa linia 11 si se sare direct la linia 3.

Observatie: Instructiunile break si continue pot sa apara doar in cadrul unor instructiuni repetitive. Exceptie face instructiunea break care poate sa apara si in cadrul instructiunii switch.

1.5.   Tablouri (vectori)

1.5.1.  Tablouri (vectori) unidimensionale

Declararea unui vector se face prin

TipElement[] numeVector; sau TipElement numeVector[];

unde TipElement reprezinta tipul elementelor vectorului, iar parantezele [] asezate fie inaintea fie dupa numele vectorului arata ca este vorba despre un vector.

Exemple:

int[] intregi;

String adrese[];

Instantierea unui vector se realizeaza cu operatorul new si are ca efect alocarea memoriei necesare pentru memorarea elementelor vectorului, mai precis specificarea numarului maxim de elemente pe care il va avea vectorul. Instantierea unui vector se face astfel:

numeVector = new TipElement[dimensiune];

Exemple:

v = new int[10]; //se aloca spatiu pentru 10 intregi

adrese = new String[100]; //se aloca spatiu pentru 100 de String-uri

Declararea si instantierea unui vector pot fi facute simultan astfel:

TipElement[] numeVector = new TipElement[dimensiune];

Dupa declararea unui vector, acesta poate fi initializat, adica elementele sale pot primi valori. In acest caz instantierea lipseste, alocarea memoriei facandu-se automat in functie de numarul de elemente cu care se initializeaza vectorul.

Exemple:

String culori[] = ;

int []v = ;

Observatii:

Primul indice al unui vector este 0, deci pozitiile unui vector cu n elemente vor fi cuprinse intre 0 si n-1.

Nu sunt permise constructii de genul:

TipElement numeVector[dimensiune]

alocarea memoriei facandu-se doar prin intermediul operatorului new sau prin initializare.

Exemple:

int v[10]; //incorect

int v[] = new int[10]; //corect

Accesul la elementul unui vector se face prin:

numeVector[indice]

Exemplu 1:

int v[]=new int[10];

for(i=0; i<10; i++)

v[i]=i;

Exemplu 2:

int v[]=;

for(i=0; i<5; i++)

System.out.println(v[i]+" ");

1.5.2.  Tablouri (vectori) cu mai multe dimensiuni

In Java tablourile cu mai multe dimensiuni sunt de fapt vectori de vectori. Prin urmare, declararea, instantierea si initializarea se fac la fel ca in cazul vectorilor unidimensionali.

TipElement numeVector[][]. = new TipElement[dim1][dim2].

sau

TipElement[][]. numeVector = new[dim1][dim2]. TipElement

sau parantezele pot fi de o parte si de alta a lui numeVector.

Exemplu:  
 int m[][]; //declararea unei matrice
 m = new int[5][10]; //cu 5 linii, 10 coloane 

Observatie:

m[0], m[1], , m[5] sunt vectori de intregi cu 10 elemente

1.5.3.  Dimensiunea unui vector

Cu ajutorul cuvantului cheie length se poate afla dimensiunea unui vector.

Exemple:

Fie vectorul

int []a = new int[5];

atunci a.length are valoarea 5.

Fie matricea

int m = new int[5][10];

atunci:

m.length are valoarea 5 si reprezinta numarul de linii al matricei

m[0].length are valoarea 10 si reprezinta numarul de elemente al primei linii a matricei,

m[1].length are valoarea 10 si reprezinta numarul de elemente al celei de-a doua linii a matricei, etc.

Exemplu 14: Sa se calculeze minimul elementelor unui vector.

1.      public class MinVect;

4.      int min=a[0];

5.      for(int i=0; i<a.length; i++)

6.      if (min>a[i])

7.      min=a[i];

8.      System.out.println('Minimul este '+min);

9.      }

10.  }

Exemplu 15: Sa se ordoneze elementele de pe diagonala principala a unei matrice.

1.      public class OrdDiagPrinc,,,};

4.      boolean ordonat;

5.      for(int i=0; i<a.length; i++)

10.  do

19.  }while(!ordonat);

20.  System.out.println('Matricea cu diagonala ordonata:');

21.  for(int i=0; i<a.length; i++)

26.  }

27.  }

1.5.4.  Tablouri cu dimensiuni variabile

Java permite folosirea tablourilor cu dimensiuni variabile adica, a vectorilor de vectori cu dimensiuni variabile.

Exemplu 16: Sa se genereze si sa se afiseze triunghiul lui Pascal.

1.                  public class TrPascal

13.              for(int i=0; i<a.length; i++)

18.              }

19.              }

In linia 8 se observa ca, pentru fiecare linie a matricei se aloca memorie pentru un numar variabil de elemente: pe linia 0 va fi memorat un element, pe linia 1 vor fi memorate doua elemente, etc.

1.6.   Siruri de caractere

In Java, un sir de caractere poate fi reprezentat printr-un vector format din elemente de tip char, un obiect de tip String sau un obiect de tip StringBuffer.

Exemple echivalente de declarare a unui sir:

 String str = 'abc';
 char data[] = ;
 String str = new String(data);
 String str = new String('abc');

Concatenarea sirurilor de caractere se face prin intermediul operatorului +.

 String str1 = 'abc' + 'xyz';
 String str2 = '123';
 String str3 = str1 + str2;

In Java, operatorul de concatenare + este extrem de flexibil in sensul ca permite concatenarea sirurilor cu obiecte de orice tip care au o reprezentare de tip sir de caractere.

Exemplu:

System.out.print('Vectorul v are' + v.length + ' elemente');



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1255
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved