Differences

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

Link to this comparison view

poo-ca-cd:laboratoare:clase-interne [2024/12/15 13:47]
maria.enescu [Expresii Lambda]
poo-ca-cd:laboratoare:clase-interne [2024/12/15 14:12] (current)
maria.enescu [Exerciții]
Line 1: Line 1:
-===== Laboratorul ​6: Clase interne =====+===== Laboratorul ​10: Clase interne. Lambda expresii. ​=====
  
 **Video introductiv:​** [[https://​youtu.be/​KIyaRwog3q8| link ]] **Video introductiv:​** [[https://​youtu.be/​KIyaRwog3q8| link ]]
Line 153: Line 153:
 Când veți scrie o clasă anonimă într-un IDE cum e IntelliJ, veți primi un warning care vă recomandă să o transformați într-o lambda. Aceasta recomandare este valabilă doar pentru implementarea claselor/​interfețelor cu o singură metoda. Când veți scrie o clasă anonimă într-un IDE cum e IntelliJ, veți primi un warning care vă recomandă să o transformați într-o lambda. Aceasta recomandare este valabilă doar pentru implementarea claselor/​interfețelor cu o singură metoda.
  
-Lambda este un concept din programarea funcțională (o să îl învățați în semestrul 2 la Paradigme de Programare) și reprezintă o funcție anonimă. Majoritatea limbajelor de nivel înalt au introdus suport pentru acest concept în ultimii 15 ani, inclusiv Java, din versiunea 8.+Lambda este un concept din **programarea funcțională** (o să îl învățați în semestrul 2 la Paradigme de Programare) și reprezintă o funcție anonimă. Majoritatea limbajelor de nivel înalt au introdus suport pentru acest concept în ultimii 15 ani, inclusiv Java, din versiunea 8.
  
  
Line 166: Line 166:
 </​code>​ </​code>​
  
-În codul de mai sus declararea clasei anonime și suprascrierea metodei din getFuelCapacity() a fost înlocuită cu o expresie lambda. O altă situație des intalnită de folosire a lambda-urilor este pentru transmiterea de funcții ca parametru iar api-uri precum cel de filtrare al colecțiilor le utilizează intens ([[https://​www.baeldung.com/​java-stream-filter-lambda|exemplu]]).+În codul de mai sus declararea clasei anonime și suprascrierea metodei din getFuelCapacity() a fost înlocuită cu o expresie lambda. O altă situație des intalnită de folosire a lambda-urilor este pentru ​**transmiterea de funcții ca parametru** iar api-uri precum cel de filtrare al colecțiilor le utilizează intens ([[https://​www.baeldung.com/​java-stream-filter-lambda|exemplu]]).
  
  
Line 183: Line 183:
 </​code>​ </​code>​
  
-Operatorul [[https://​www.geeksforgeeks.org/​double-colon-operator-in-java/​|::​]] este folosit pentru referințierea metodelor.+**Operatorul [[https://​www.geeksforgeeks.org/​double-colon-operator-in-java/​|::​]]** este folosit pentru referințierea metodelor.
    
-Putem folosi funcții anonime pentru a executa diverse operații pe liste (de exemplu ''​removeIf'',​ care filtrează elementele unei colecții pe baza unui predicat, și ''​replaceAll'',​ care aplică o operație pe toate elementele unei colecții).+Putem folosi funcții anonime pentru a executa diverse ​**operații pe liste** (de exemplu ''​removeIf'',​ care filtrează elementele unei colecții pe baza unui predicat, și ''​replaceAll'',​ care aplică o operație pe toate elementele unei colecții).
  
 Exemple: Exemple:
Line 198: Line 198:
 </​code>​ </​code>​
  
-O altă utilitate a funcțiilor anonime reprezintă în implementarea comparatorilor folosiți la sortare sau la crearea de colecții sortate (TreeSet, TreeMap).+O altă utilitate a funcțiilor anonime reprezintă în **implementarea comparatorilor** folosiți la sortare sau la crearea de colecții sortate (TreeSet, TreeMap).
  
 Exemple: Exemple:
Line 383: Line 383:
  }  }
     });</​code>​     });</​code>​
-==== Exerciții ====  +==== Exerciții ====
-/***Task 1 - Meta** (4p)+
  
-Îndrumarul este o componentă importantă a laboratorului de POO, iar citirea și înțelegerea acestuia nu trebuie neglijate. În îndrumarul ​din acest laborator ​există mai multe căsuțde tip **note**, ​de forma celei de mai jos:+Exercițiile din acest laborator ​au ca scop simularea obținerii prețului unei mașini ​de la un dealer. Construcția obiectelor necesare o veți face de la zero conform instrucțiunilor din taskuri.
  
-<note> Do stuff </note+<​note ​important
- +Pentru a încărca soluțiava trebui să accesați link-ul ​https://code.devmind.ro/login, să intrați pe tab-ul Contests, unde veți găsi laboratorul grupei voastre. 
-Identificați toate căsuțele de tip **note** din laborator și urmați instrucțiunile din acestea. Puteți folosi scheletul pus la dispoziție. Pentru a ușura procesul de evaluarecreați fișiere separate pentru fiecare task din **note**. +</​note>​
-*/ +
- +
-**Schelet de laborator**:​ [[https://github.com/oop-pub/​oop-labs/​tree/​master/​src/​lab6|Laborator6]] +
- +
-Exercițiile din acest laborator au ca scop simularea obținerii prețului unei mașini de la un dealer. Construcția obiectelor necesare o veți face de la zero conform instrucțiunilor din taskuri.+
  
  
poo-ca-cd/laboratoare/clase-interne.1734263274.txt.gz · Last modified: 2024/12/15 13:47 by maria.enescu
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