Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:clase-interne [2022/11/15 23:15]
ioan.oporanu [Exerciții]
poo-ca-cd:laboratoare:clase-interne [2022/11/16 22:35] (current)
daniela.becheanu [Clase anonime]
Line 140: Line 140:
    
  
-<note important>​Clasele interne anonime declarate în metode pot folosi variabilele declarate în metoda respectivă și parametrii metodei dacă aceștia sunt //final// sau **//​effectively final//**. Dacă o variabilă nu e declarată final dar nu se modifică schimbă după inițializare,​ atunci este [[https://​docs.oracle.com/​javase/​tutorial/​java/​javaOO/​localclasses.html#​accessing-members-of-an-enclosing-class|effectively final]].+<note important>​Clasele interne anonime declarate în metode pot folosi variabilele declarate în metoda respectivă și parametrii metodei dacă aceștia sunt //final// sau **//​effectively final//**. Dacă o variabilă nu e declarată final dar nu se modifică după inițializare,​ atunci este [[https://​docs.oracle.com/​javase/​tutorial/​java/​javaOO/​localclasses.html#​accessing-members-of-an-enclosing-class|effectively final]].
  
 Variabilele si parametrii metodelor se află pe segmentul de stivă din memorie creat pentru metoda respectivă,​ ceea ce face ca ele să nu existe la fel de mult cât clasa internă. Dacă variabila este declarată ''​final'',​ atunci la runtime se va stoca o copie a acesteia ca un câmp al clasei interne, în acest mod putând fi accesată și după execuția metodei. Variabilele si parametrii metodelor se află pe segmentul de stivă din memorie creat pentru metoda respectivă,​ ceea ce face ca ele să nu existe la fel de mult cât clasa internă. Dacă variabila este declarată ''​final'',​ atunci la runtime se va stoca o copie a acesteia ca un câmp al clasei interne, în acest mod putând fi accesată și după execuția metodei.
Line 407: Line 407:
  
 Adăugați o metodă în clasa ''​Dealership''​ care oferă prețul mașinii după aplicarea discount-urilor din oferte: ''​getFinalPrice(Car car)''​ Adăugați o metodă în clasa ''​Dealership''​ care oferă prețul mașinii după aplicarea discount-urilor din oferte: ''​getFinalPrice(Car car)''​
-  * aplicați pe obiectul ''​car''​ primit ca argument cele trei oferte+  * aplicați pe obiectul ''​car''​ primit ca argument cele trei oferte ​in ordinea: ''​BrandOffer'',​ ''​DealerOffer'',​ ''​SpecialOffer''​.
   * metoda va returna prețul final după aplicarea ofertelor   * metoda va returna prețul final după aplicarea ofertelor
  
Line 417: Line 417:
  -Pret: 35000, An: 2015;  -Pret: 35000, An: 2015;
  -Fiat:  -Fiat:
- -Pret: ​3000, An: 2008;+ -Pret: ​3500, An: 2008;
  -Pret: 7000, An: 2010;  -Pret: 7000, An: 2010;
  -Skoda:  -Skoda:
- -Pret: ​3500, An: 2010+ -Pret: ​12000, An: 2015
- -Pret: ​7000, An: 2010;+ -Pret: ​25000, An: 2021;
   
   * Creati un obiect de tip Dealership.   * Creati un obiect de tip Dealership.
poo-ca-cd/laboratoare/clase-interne.1668546908.txt.gz · Last modified: 2022/11/15 23:15 by ioan.oporanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0