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/13 23:34]
radu_bogdan.pavel [Exerciții]
poo-ca-cd:laboratoare:java-basics [2022/10/10 12:29] (current)
andrei.vasiliu2211 [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''​ (String), ''​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ă 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:​03|laboratorul 3]] mai multe despre cum se folosește această funcție pentru a verifica egalitatea dintre două obiecte.+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.1634157244.txt.gz · Last modified: 2021/10/13 23:34 by radu_bogdan.pavel
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