duminică, 24 iulie 2011

Programare Java- 3

TIPURI DE CLASE

In afara celor opt tipuri de baza o variabila poate fi de tip clasa :

String numeDeFamilie="Popescu";

Culoare par;

java

Atunci cand o variabila are drept tip o clasa inseamna ca variabila refera un obiect al clasei respective sau al uneia dintre subclasele sale . Referirea la o superclasa ca tip de variabila este folositoare atunci cand variabila poate fi una dintre mai multe subclase diferite .

Declararea unei variabile de tip Object inseamna ca poate stoca orice obiect .

OBS : Java nu are un echivalent al instructiunii typedef din C . Pentru a declara noi tipuri in Java se declara o noua clasa iar variabilele pot folosi aceasta clasa drept tip .

Dupa ce o variabila a fost declarata I se poate da o valoare folosind operatorul de atribuire , " = " :

idCod=8546;

imbracatRapid=false;

COMENTARII

Una dintre metodele cele mai importante de crestere a lizibilitatii unui program este folosirea comentariilor .

Comentariile reprezinta informatii introduse intr-un program doar in ajutorul persoanelor care incearca sa-si dea seama ce anume se intampla in program . Compilatorul Java ignora total comentariile atunci cand pregateste versiunea executabila a fisierului sursa Java .

Exista trei tipuri diferite de comentarii pe care le putem utiliza in programele Java .

Prima modalitate de a introduce comentarii in program este de a il prefixa cu doua simboluri slash " // " . Orice incepe dupa aceste semne si pana la sfarsitul liniei este considerat comentariu :

int oreCredit=3; // defineste orele de credit pentru curs

Daca dorim sa introducem un comentariu care ocupa mai mult de un rand trebuie sa incepem cu combinatia " /* " si sa incheiem cu combinatia " */ " .

Ultimul tip de comentariu este proiectat pentru a fi interpretabil si de catre calculator . Daca incepem comentariul cu " /** " si il incheiem cu " */ " atunci comentariul este interpretat ca reprezentand documentatia originala referitoare la functionarea clasei si a metodelor sale publice .

Acest tip de comentariu poate fi citit de utilitare ca JAVADOC din pachetul JDK . Acest utilitar foloseste aceste comentarii pentru a crea un set de pagini web care documenteaza programul , ierarhia sa de clase si metodele .

LITERALE

Literalele sunt numerele , textul si alte informatii care reprezinta direct o valoare .

Mai explicit , literalele reprezinta un termen apartinand programarii , care inseamna de fapt ca ceea ce tastam este ceea ce vom obtine .

Java are mai multe literale pentru intregi . Numarul 4 de exemplu este un literal pentru tipul int . El poate fi atribuit de asemenea variabilelor byte sau short deoarece el este suficient de "mic" si pentru aceste doua tipuri . Un literal intreg mai mare decat poate stoca o variabila int este considerat automat ca avand tipul long . Putem indica faptul ca un literal este un intreg de tip long prin adaugarea sufixului L ( sau l ) . De exemplu urmatoarea instructiune stocheaza valoarea 4 intr-un intreg de tip long :

long totalPagini=4L;

Pentru a reprezenta o valoare negativa putem folosi literalul impreuna cu semnul minus ( " - " ) .

In Java putem folosi si literali in sistem octal sau hexazecimal . Pentru a folosi un literal intreg in octal trebuie sa il prefixam cu cifra 0 ; numarul octal 777 trebuie astfel scris ca 0777 . Intregii hexazecimali se folosesc prefixati cu 0x - ca de exemplu 0xFF .

Literalele in virgula mobila folosesc caracterul punct pentru punctul zecimal . Toate literalele in virgula mobila sunt automat considerate de tip double . Pentru a specifica tipul float adaugam F ( sau f ) - ca mai jos :

float valoarePi=3.1415F;

Putem folosi si exponenti in literalele de virgula mobila folosind litera E ( sau e ) urmata de exponent :

double x=12e22;

doube y=19E-70;

Literalele caracter sunt exprimate printr-un singur caracter incadrat de ghilimele simple : 'a' , '#' sau '3' .

Unele caractere literale reprezinta caractere care nu sunt tiparibile sau accesibile pe tastatura . Mai jos vom vedea coduri speciale care pot reprezenta aceste caractere speciale :

- \n = new line ( linie noua )

- \t = tab

- \b = backspace

- \r = revenire la capat de rand ( carriage return )

- \f = formfeed ( salt la pagina noua )

- \\ = semnul \

- \' = ghilimele simple

- \" = ghilimele duble

- \_ = octal

- \x_ = hexazecimal

- \u_ = caracter unicode ( standard pe 16 biti spre deosebire de ASCII standard care presupune doar 128 de caractere )

In cazul ultimelor trei coduri se va inlocui in practica semnul " _ " cu un numar sau o cifra hexazecimala .

Ultimele literale pe care le putem folosi intr-un program Java sunt sirurile de caractere . Unsir ( string ) in Java este un obiect si nu un tip de date primar . Sirurile nu sunt pastrate in tablouri ( ca in C de exemplu ) . Deaorece sirurile sunt obiecte Java avem si metode care pot fi folosite pentru combinarea si modificarea sirurilor precum si pentru a determina daca doua siruri au aceeasi valoare .

Literalele sir constau dintr-o serie de caractere incadrate intre ghilimele duble :

String autor="Ion Popescu";

String parola="password";

Sirurile pot contine si caractere speciale - prezentate anterior :

String exemplu="Text intre ghilimele \"CITAT\"";

System.out.println("Primul rand \n Al doilea rand");

String titlu="Invatati singuri Java\u2122";

In ultima instructiune , secventa \u2122 produce simbolul " TM " ( pe sistemele configurate sa suporte Unicode ) .

Atunci cand se foloseste un literal sir Java stocheaza valoarea sa ca obiect String . Nu trebuie sa cream explicit un nou obiect - ca in cazul celorlalte obiecte cu care vom lucra - deci este la fel de usor de lucrat cu acest tip ca si cu tipurile primare . Sirurile sunt diferite in ceea ce priveste acest aspect - nici unul dintre tipurile primare nu sunt pastrate ca obiecte atunci cand sunt folosite .

EXPRESII SI OPERATORI .

O expresie reprezinta o instructiune care produce o valoare . Cele mai folosite expresii sunt cele matematice - ca in continuare :

int x=3;

int y=4;

int z=x*y;

Ultima instructiune dintre cele de mai sus este o expresie . Operatorul de multiplicare * este folosit pentru inmultirea dintre x si y iar rezultatul produs de expresie va fi pastrat intr-o variabila z de tip intreg .

Valoarea produsa de o expresie este numita si valoare de retur . Aceasta valoare poate fi atribuita unei variabile si folosita in diferite feluri in programele noastre .

Operatorii reprezinta simboluri speciale folosite in functii matematice , in unele tipuri de instructiuni de atribuire sau in comparatii logice .

OPERATII ARITMETICE

In Java exista cinci operatori folositi pentru operatiile aritmetice de baza :

" + " Adunare

" - " Scadere

" * " Inmultire

" / " Impartire

"% " Modulo

Fiecare operator de mai sus foloseste cate doi operanzi - cate unul de fiecare parte a operatorului . Operatorul de scadere " - " poate fi folosit si pentru a nega un singur operator .

Un lucru care merita atentie sporita in ceea ce priveste operatorul de impartire este tipul operanzilor folositi . Daca stocam rezultatul unei impartiri intr-un intreg acesta va fi rotunjit la un numar intreg pentru ca tipul int nu poate lucra cu valori in virgula mobila . De exemplu expresia 21 / 5 are rezultatul 4 daca acesta este stocat intr-un int .

Impartirea modulo ( " % " ) produce ca rezultat restul impartirii . In expresia 21 / 5 rezultatul pe care il vom obtine va fi 1 .

In general majoritatea operatiilor aritmetice cu intregi produc un rezultat de tip int indiferent de tipul initial al operanzilor . Daca lucram cu alte tipuri - numere in virgula mobila sau intregi long - trebuie sa ne asiguram ca operanzii au acelasi tip cu cel la care vrem sa ajungem .

Mai jos avem prezentat un exemplu care integreaza folosirea tuturor operatorilor aritmetici :

class Amoeba

}

Comentand pe scurt aceasta aplicatie Java extrem de simpla observam ca in liile 3- 5 se creaza trei variabile ce primesc in acelasi timp si valori initiale ; variabilele x si y sunt declarate de tipul int iar variabila a este declarata numar in virgula mobila float - deoarece tipul predefinit in Java pentru numere in virgula mobila este double trebuie sa adaugam sufixul f la sfarsitul literalului pentru a indica ( si forta ) tipul float .

In cadrul programului apare in mai multe instructiuni sintagma " System.out.println " ; Aceasta metoda este folosita in aplicatii pentru a afisa siruri si in general informatii pe dispozitivul standard de iesire - in cele mai multe cazuri ecranul .

System.out.println() preia un singur argument ( intre paranteze ) : un sir . Pentru a prezenta mai mult de o variabila sau un literal ca argument pentru println() se poate folosi operatorul + , pentru a concatena aceste elemente intr-un singur sir .