This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
test:test_2015 [2015/01/21 00:56] Adriana Draghici created |
test:test_2015 [2015/01/21 09:29] Daniel Ciocirlan [Test grilă, ianuarie 2015] |
||
---|---|---|---|
Line 5: | Line 5: | ||
Metoda de evaluare: grilă franceză, -1/4 din punctajul unei întrebări la răspuns greșit, 0 dacă nu este marcat niciun răspuns. | Metoda de evaluare: grilă franceză, -1/4 din punctajul unei întrebări la răspuns greșit, 0 dacă nu este marcat niciun răspuns. | ||
- | /* | ||
- | Analizăm aici întrebările în ordinea variantei A a testului. | ||
- | */ | ||
+ | Analizăm aici întrebările pe rând, structurat pe secțiuni. | ||
== Basics == | == Basics == | ||
**1. Ce obținem la rularea următorului cod:** | **1. Ce obținem la rularea următorului cod:** | ||
Line 167: | Line 165: | ||
**Explicație**: În lipsa altor detalii, ''getName()'' este aceeași metodă în clasele ''Person'' și ''Student'', care întoarce câmpul de tip ''String'' din obiect, nici nu am mai scris-o în întrebare pentru că am fost siguri că înțelegeți scenariul. Ce e important de dedus este //care// metodă ''printInfo'' se apelează pentru cele două obiecte ''s'' și ''p''. Răspunsul este simplu: se apelează acea metodă pentru care //tipurile parametrilor// coincid cu //tipurile declarate// ale obiectelor pasate efectiv. **A nu se confunda cu runtime dispatch-ul metodelor //suprascrise// în clase derivate**! În cazul nostru ambele obiecte erau declarate de tip ''Person'', deci se apela de două ori metoda ''printInfo(Person)'', o dată pentru Alice, o dată pentru Bob. | **Explicație**: În lipsa altor detalii, ''getName()'' este aceeași metodă în clasele ''Person'' și ''Student'', care întoarce câmpul de tip ''String'' din obiect, nici nu am mai scris-o în întrebare pentru că am fost siguri că înțelegeți scenariul. Ce e important de dedus este //care// metodă ''printInfo'' se apelează pentru cele două obiecte ''s'' și ''p''. Răspunsul este simplu: se apelează acea metodă pentru care //tipurile parametrilor// coincid cu //tipurile declarate// ale obiectelor pasate efectiv. **A nu se confunda cu runtime dispatch-ul metodelor //suprascrise// în clase derivate**! În cazul nostru ambele obiecte erau declarate de tip ''Person'', deci se apela de două ori metoda ''printInfo(Person)'', o dată pentru Alice, o dată pentru Bob. | ||
- | Întrebara practic verifică că ştiţi că //metodele supraîncărcate(overloaded) sunt 'alese' la compile-time, iar cele suprascrise (overriden) la runtime.// | + | |
+ | Întrebarea testează că ştiţi că //metodele supraîncărcate (overloaded) sunt 'alese' la compile-time, iar cele suprascrise (overriden) la runtime.// | ||
Line 423: | Line 422: | ||
- | == Design patterns, Junit, misc == | + | == Design patterns, JUnit, misc == |
**18. Vrem să implementăm un framework de user interface. Cu ce design pattern am putea modela comportamentul de onClick -> doSomething pentru un element de tip buton oarecare?** | **18. Vrem să implementăm un framework de user interface. Cu ce design pattern am putea modela comportamentul de onClick -> doSomething pentru un element de tip buton oarecare?** | ||
Line 449: | Line 448: | ||
- | **20. Fie următorul ters JUnit funcțional. Ce se va afișa în urma execuției lui?** | + | **20. Fie următorul test JUnit funcțional. Ce se va afișa în urma execuției lui?** |
<code java> | <code java> |