Differences

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

Link to this comparison view

poo-ca-cd:laboratoare:java-basics [2021/10/10 10:19]
florin.mihalache [Exerciții]
poo-ca-cd:laboratoare:java-basics [2024/10/10 11:43] (current)
florin_andrei.relea [Exerciții]
Line 553: Line 553:
     * ''​java -version'' ​ - comanda ''​java''​ este folosită pentru rulare     * ''​java -version'' ​ - comanda ''​java''​ este folosită pentru rulare
  
-**Task 0** (0p) +<note warning>​Fiind un laborator introductiv șcu multe concepte destul ​de greu de verificat automat cu LambdaCheckerpunctajul ​de săptămâna aceasta este opțional/​bonus. Cu toate acesteaîncercați să rezolvați **toate** exercițiile ​și să puneți cât mai multe întrebări asistenților,​ pentru a vă însuși cât mai bine cunoștințele.</​note>​
-  - Intrațpe link-ul ​de Github Classroom aferent slotului ​de laboratordat de către asistentclonați repository-ul ​și deschideți proiectul din repository în IntelliJ. +
  
 **Task 1** (3p) **Task 1** (3p)
-  - Creați pachetul ''​lab1'',​unde adăugați codul din secțiunea [[:​poo-ca-cd:​laboratoare:​java-basics:#​exemplu_de_implementare|Exemplu de implementare]]. Rulați codul din IDE.+  - Creați pachetul ''​lab1'',​ unde adăugați codul din secțiunea [[:​poo-ca-cd:​laboratoare:​java-basics:#​exemplu_de_implementare|Exemplu de implementare]]. Rulați codul din IDE.
   - Folosind linia de comandă, compilați și rulați codul din exemplu   - Folosind linia de comandă, compilați și rulați codul din exemplu
   - Mutați codul într-un pachet ''​task1'',​ creat în pachetul ''​lab1''​. Folosiți-vă de IDE, de exemplu Refactor -> Move pentru IntelliJ. Observați ce s-a schimbat în fiecare fișier mutat.   - Mutați codul într-un pachet ''​task1'',​ creat în pachetul ''​lab1''​. Folosiți-vă de IDE, de exemplu Refactor -> Move pentru IntelliJ. Observați ce s-a schimbat în fiecare fișier mutat.
Line 565: Line 563:
  
 Creați un pachet ''​task2''​ (sau alt nume pe care îl doriți să îl folosiți). În el creați clasele: Creați un pachet ''​task2''​ (sau alt nume pe care îl doriți să îl folosiți). În el creați clasele:
-    * ''​Student''​ cu proprietățile:​ ''​name''​ (String), ''​year''​ (Integer+    * ''​Student''​ cu proprietățile:​ ''​name''​ (String), ''​grade''​ (double
-    * ''​Course''​  +    * ''​Internship''​  
-      * cu proprietățile:​ ''​title''​ (String), ''​description''​ (String), ''​students''​ (array de clase ''​Student''​ - [[:​poo-ca-cd:​laboratoare:​java-basics#​arrays|exemplu arrays]]). +      * cu proprietățile:​ ''​name''​ (String), ''​minGrade''​ (double), ''​students''​ (array de clase ''​Student''​ - [[:​poo-ca-cd:​laboratoare:​java-basics#​arrays|exemplu arrays]]). 
-      * cu metoda: ''​filterYear''​ care întoarce o listă ​de studenți ​care sunt într-un an dat ca parametru.+      * cu metoda: ''​chooseCandidateRandomly''​ care returneaza in mod aleatoriu un student din lista de studenti corespunzatoare unui internship (**Hint:** folositi clasa Random). 
 +      * cu metoda: ''​chooseCandidatesForInterview'' ​care va afisa toti candidatii care au obtinut un phone interview la o anumita companie. Fiecare companie are asociat un grade minim dupa care va selecta candidatii pentru un phone interview. Astfel, daca grade-ul unui candidat este mai mare sau egal cu grade-ul minim dorit de o companie pentru angajatii sai, atunci acesta va primi un phone interviewAfisarea candidatilor se va face sub forma: "​Candidate [nume_student] got a phone interview at [nume_internship]"​
     * Nu folosiți vreun modificator de acces pentru variabile (aka "nu puneți nimic în fața lor în afară de tip")     * Nu folosiți vreun modificator de acces pentru variabile (aka "nu puneți nimic în fața lor în afară de tip")
-    * ''​Test''​ cu metoda ''​main''​. ​La rulare, ca [[https://​docs.oracle.com/​javase/​tutorial/​essential/​environment/​cmdLineArgs.html|argument]] în linia de comandă se va da un integer reprezentând anul în care este un student +    * ''​JobMarket''​ cu metoda ''​main''​. 
-      - creați un obiect ''​Course''​ și 3-4 obiecte ''​Student''​. Populați obiectul Course+      - Creati studentii cu numele Gigel, Dorel, Marcel si Ionel
-      - afișați toți studenții din anul dat ca parametru. **Hint:** folositi ''​Arrays.toString(listStudenti)''​. In clasa Student folositi IDE-ul pentru a genera metoda toString (pt Intellij Code->​Generate...) +      - Creati internship-uri cu numele Google, Amazon, Facebook, Microsoft
-      - rulați atât din IDE (modificati run configurationcât și din linie de comandă +      - Apelati metoda chooseCandidatesForInterview(), pe rand, pentru fiecare companie ​din cele enumerate mai sus, respectand ordinea lor. 
-    * Opțional, în loc de [[:​poo-ca-cd:​laboratoare:​java-basics#​arrays|arrays]] pentru ''​filterYear''​ puteți să folosiți și obiecte de tip List, e.g. [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​ArrayList.html|ArrayList]] ([[https://​www.w3schools.com/​java/​java_arraylist.asp|exemplu]])+    * Opțional, în loc de [[:​poo-ca-cd:​laboratoare:​java-basics#​arrays|arrays]] pentru ​campul ​''​students''​ puteți să folosiți și obiecte de tip List, e.g. [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​ArrayList.html|ArrayList]] ([[https://​www.w3schools.com/​java/​java_arraylist.asp|exemplu]])
  
 ** Task 3** (1p) ** Task 3** (1p)
Line 582: Line 581:
  
 <note tip> <note tip>
-Metoda ''​equals''​ este folosită în Java pentru a compara dacă două obiecte sunt egale în ceea ce privește informațiile încapsulate în acestea. Mai precis, se compară ​fiecare câmp din primul obiect cu câmpul respectiv din al doilea obiect ​și dacă toate câmpurile sunt egale ca valori, ​atunci ''​equals''​ va returna ''​true'',​ altfel va returna ''​false''​. ​Mai multe detalii legate de această ​metodă vom discuta în cadrul următoarelor laboratoare.+Metoda ''​equals''​ este folosită în Java pentru a compara dacă două obiecte sunt egale în ceea ce privește informațiile încapsulate în acestea. Mai precis, se compară ​referințele celor două obiecte. Dacă acestea indică spre aceeași zonă de memorie ​atunci ''​equals''​ va returna ''​true'',​ altfel va returna ''​false''​. ​Veți învăța în [[poo-ca-cd:​laboratoare:​agregare-mostenire|laboratorul 3]] mai multe despre cum se folosește ​această ​funcție pentru a verifica egalitatea dintre două obiecte.
  
 Exemplu de folosire: Exemplu de folosire:
Line 604: Line 603:
 */ */
 ** Task 4** (1p) ** Task 4** (1p)
-   - Adăugați modificatorul de acces '​private'​ tuturor variabilelor claselor Student și Course ​(e.g. ''​private String name;''​)+   - Adăugați modificatorul de acces '​private'​ tuturor variabilelor claselor Student și Internship ​(e.g. ''​private String name;''​)
    - Rezolvați erorile de compilare adăugând metode getter și setter acestor variabile.    - Rezolvați erorile de compilare adăugând metode getter și setter acestor variabile.
      - Ce ați făcut acum se numește //​încapsulare (encapsulation)//​ și este unul din principiile de bază din programarea orientată pe obiecte. Prin această restricționare protejați accesarea și modificarea variabilelor.      - Ce ați făcut acum se numește //​încapsulare (encapsulation)//​ și este unul din principiile de bază din programarea orientată pe obiecte. Prin această restricționare protejați accesarea și modificarea variabilelor.
poo-ca-cd/laboratoare/java-basics.1633850369.txt.gz · Last modified: 2021/10/10 10:19 by florin.mihalache
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