Sunteți pe pagina 1din 6

This in java infoloseste aceste variabile din aceasta metoda (se foloseste daca

exista posibilitatea ca in aceeasi clasa variabilele din metoda curenta sa mai


exista declarata si in clasa , astfel clasa va sti ca trebuie sa foloseasca variabilele
de aici din metoda si nu cele declarate global.

Daca lucram cu mai multi conbstructori putem chema constructorul general cu


macimul de argumente din interiorul celorlati constrructori cu this(x,x,x)

public MainClass() {
this(0,0,0);
}
public MainClass(int h, int m, int s) {
setTime(h,m,s);
}
public MainClass(int h){
this(h,0,0);
}
public MainClass(int h, int m){
this(h,m,0);
}
public void setTime(int h, int m, int s){
setHour(h);
setMinute(m);
setSecond(s);
}

Enumerarile se pot folosi ca si clase cu metode si variabile doar ca obiectele sunt definite
in interiorul clasei(enum). Valorile obiecte definite in enum sunt considerate constante
si nu se vor modifica. Enum e bine de folosit cand avem o serie de valori care nu isi
modifica valorea pe parcusrul programului.
public enum Populatie {
unu("Fabian","31"),
doi("stelian","63"),
trei("Georgiana","36");
private final String nume;
private final String an;
Populatie(String numele, String nastere){
nume = numele;
an = nastere;

public String getNume(){


return nume;
}
public String getAn(){
return an;
}

Din celalata clasa vor fi folosite cu :


for(Populatie oameni : Populatie.values() )
{
System.out.println(oameni.getNume() + " " + oameni.getAn());
}
}

Exista si posibilitate de a seta un interval in care sea cautam ce dorim


for(Populatie oameni : EnumSet.range(Populatie.doi, Populatie.trei)){
System.out.println(oameni + " " + oameni.getNume() + " " +
oameni.getAn());
}

Pentru a accesa o metoda statica nu e nevoie de initializare unui obiect ci :


Clasa.metodastatica();

Can de definim o clasa ca fiind abstracta , pemtru a initializa un obiect al clselor care o
extinde vom folosi:
ClasaAbstracta obiec = new ClasaExtins();
Obiectul va urmari metodele clasei extinse insa este de tip clasa asbtracta.

Diferenta dintre arraylist si linkedlist


Se foloseste linkedlist atunci cand INSERAM SAU STREGEM frecvent elmenete doarece o
va face mai repede

Se foloseste arraylist atunci cand CAUTAM frecvent in sirul de numere, deoarece linked
list lucreaza cu pointeri tinand legatura cu elemntul dinainte si cel de dupa.

ListIterator se foloseste pentru itera valorile dintr-o matrice in oridne normala sau inversa
astfel:
ArrayList<Integer> valori = new ArrayList<Integer>();
valori.add(2);
valori.add(6);
valori.add(4);
valori.add(3);
valori.add(9);
ListIterator<Integer> numar = valori.listIterator();
while(numar.hasNext())
System.out.println(numar.next());

System.out.println("\n \n");
while(numar.hasPrevious())
System.out.println(numar.previous());

Tru catch finnly finnaly se va executa indiferent ce se intampla in try catch


Finnly nu se va executa adaca in interorul try exista
Systsem.exit()

Variabilele se scriu cu litere mici si daca sunt ma multe cuvinte se scrie cu litera mare
prima litera din fiecare cuvant
Constantele se scriu cu litere mari tot cuvantul si cu _ intre cuvinte

Daca nu atribu9m nici o valoare unei variabila acesta va fi 0 sau null bydefault.

Folosim byte sau short daca avem nevoiede int dar trebuie sa salvam memorie
Folosim longa daca int e pre mic si vrem sa stocam un numar ;luuung
Folosim float daca avem nevoie de double dar vrem sa salvam memorie.
Char contine un singur caracter
Data Type

Default Value (for fields)

byte

short

int

long

0L

float

0.0f

double

0.0d

char

'\u0000'

String (or any object)

null

boolean

false

double d1 = 123.4;
// same value as d1, but in scientific notation
double d2 = 1.234e2;
float f1 = 123.4f

S epoate folosi _ pentru a faca mai vizibila valoarea unei variabile. Formele corecte sunt:
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

Operatorii au prioritate astfel:


Operators

Precedence

postfix

expr++expr

unary

++exprexpr+exprexpr~!

multiplicative

*/%

additive

shift

<<>>>>>

relational

<><=>=instanceof

equality

==!=

bitwise AND

&

bitwise exclusive OR

bitwise inclusive OR

logical AND

&&

logical OR

||

ternary

?:

assignment

=+==*=/=%=&=^=|=<<=>>=>>>=

Instanceof
Se foloseste in cazul subclaselor.
Se verifica daca un obiect este de un anume tip (este mostenitor al unai anume clase)
interface Domestic {}
class Animal {}
class Dog extends Animal implements Domestic {}
class Cat extends Animal implements Domestic {}
dog
dog
dog
dog

instanceof
instanceof
instanceof
instanceof

Domestic // true - Dog implements Domestic


Animal // true - Dog extends Animal
Dog
// true - Dog is Dog
Object // true - Object is the parent type of all objects

Se foloseste atunci cand materialul este foarte stufos si vrem sa verificam daca un anume
obiect apartine unei superclase sau subclase.

Daca post incrementam un numar care se afla intro ecuatie, numarul va avea ine cutaie
valorea initiala.
int i = 10;
int n = i++%5;
i = 11
n=0
Daca preincrementam numarul atunci valorea lui va fi luata in considerare si in ecuatie
int i = 10;
int n = ++i%5;

i = 11;
n = 1;

Un bloc e format din mai multe declaratii


O declaratie e formata din expresii care se termina cu ;
O expresie este formata din operatii de valori, variabile, numere inre care exista operatori

S-ar putea să vă placă și