User Tools

Site Tools


Problem constructing authldap
laboratoare:java-basics
Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
laboratoare:java-basics [2019/09/28 13:54]
Adriana Draghici
laboratoare:java-basics [2019/10/21 17:35]
Adriana Draghici [Resurse și linkuri utile]
Line 18: Line 18:
 Înainte de a începe orice implementare,​ trebuie să vă gandiți cum grupați logica întregului program pe unități. Elementele care se regăsesc în același grup trebuie să fie **conectate în mod logic**, pentru o ușoară implementare și înțelegere ulterioară a codului. În cazul Java, aceste grupuri logice se numesc **pachete** și se reflectă pe disc conform ierarhiei din cadrul proiectului. Pachetele pot conține atât alte pachete, cât și fișiere sursă. Înainte de a începe orice implementare,​ trebuie să vă gandiți cum grupați logica întregului program pe unități. Elementele care se regăsesc în același grup trebuie să fie **conectate în mod logic**, pentru o ușoară implementare și înțelegere ulterioară a codului. În cazul Java, aceste grupuri logice se numesc **pachete** și se reflectă pe disc conform ierarhiei din cadrul proiectului. Pachetele pot conține atât alte pachete, cât și fișiere sursă.
  
-{{laboratoare:​java-basics:​package.jpg| Organizarea pachetelor in Java}} ​+{{laboratoare:​java-basics:​lab-java-basics-packages.png| Organizarea pachetelor in Java}} ​
  
 Următorul pas este delimitarea entităților din cadrul unui grup, pe baza unor trăsături individuale. În cazul nostru, aceste entități vor fi clasele. Pentru a crea o clasă, trebuie mai întâi să creăm un fișier aparținând proiectului nostru și unui pachet (dacă este cazul și proiectul este prea simplu pentru a-l împărți în pachete). În cadrul acestui fișier definim una sau mai multe clase, conform urmatoarelor reguli: Următorul pas este delimitarea entităților din cadrul unui grup, pe baza unor trăsături individuale. În cazul nostru, aceste entități vor fi clasele. Pentru a crea o clasă, trebuie mai întâi să creăm un fișier aparținând proiectului nostru și unui pachet (dacă este cazul și proiectul este prea simplu pentru a-l împărți în pachete). În cadrul acestui fișier definim una sau mai multe clase, conform urmatoarelor reguli:
Line 331: Line 331:
     * ''​Student''​ cu proprietățile:​ //name// (String), //year// (Integer)     * ''​Student''​ cu proprietățile:​ //name// (String), //year// (Integer)
     * ''​Course'' ​     * ''​Course'' ​
-      * cu proprietățile:​ //title// (String), //​description//​ (String), //​students//​ (array de clase Student).+      * cu proprietățile:​ //title// (String), //​description//​ (String), //​students//​ (array de clase Student ​- [[.:​java-basics#​arrays|exemplu arrays]]).
       * cu metoda: //​filterYear//​ care întoarce o listă de studenți care sunt intr-un an dat ca parametru.       * cu metoda: //​filterYear//​ care întoarce o listă de studenți care sunt intr-un an dat ca parametru.
     * 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     * ''​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
       - creați un obiect //Course// și 3-4 obiecte //​Student//​. Populați obiectul Course.       - creați un obiect //Course// și 3-4 obiecte //​Student//​. Populați obiectul Course.
-      - afișați toți studenții din anul dat ca parametru+      - 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...)
       - rulați atât din IDE (modificati run configuration) cât și din linie de comandă       - rulați atât din IDE (modificati run configuration) cât și din linie de comandă
     * Opțional, în loc de [[.:​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/​12/​docs/​api/​java.base/​java/​util/​ArrayList.html|ArrayList]] ([[https://​www.w3schools.com/​java/​java_arraylist.asp|exemplu]])     * Opțional, în loc de [[.:​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/​12/​docs/​api/​java.base/​java/​util/​ArrayList.html|ArrayList]] ([[https://​www.w3schools.com/​java/​java_arraylist.asp|exemplu]])
Line 343: Line 343:
  
     - Creați două obiecte //Student// cu aceleași date în ele. Afișați rezultatul folosirii //​equals()//​ între ele. Discutați cu asistentul despre ce observați și pentru a vă explica mai multe despre această metodă.     - Creați două obiecte //Student// cu aceleași date în ele. Afișați rezultatul folosirii //​equals()//​ între ele. Discutați cu asistentul despre ce observați și pentru a vă explica mai multe despre această metodă.
-    - Afișați un obiect de tip //Course//. Ce observați?+       * [[https://docs.oracle.com/en/java/​javase/​12/​docs/​api/​java.base/​java/​lang/​Object.html#​equals(java.lang.Object)|documentație]]
  
 /* moved to lab 2 /* moved to lab 2
  
 ** Task 4** (1p) ** Task 4** (1p)
 +    - Afișați un obiect de tip //Course//. Ce observați?
     - Implementați în clasa //Course// metoda //​toString()//​ care întoarce un String compus din:     - Implementați în clasa //Course// metoda //​toString()//​ care întoarce un String compus din:
       * titlul cu uppercase (folosiți una din metodele clasei [[https://​docs.oracle.com/​javase/​9/​docs/​api/​java/​lang/​String.html|String]])       * titlul cu uppercase (folosiți una din metodele clasei [[https://​docs.oracle.com/​javase/​9/​docs/​api/​java/​lang/​String.html|String]])
Line 360: Line 361:
      - 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.
        * //Hint//: pentru a vă eficientiza timpul, folosiți IDE-ul pentru a generarea aceste metode        * //Hint//: pentru a vă eficientiza timpul, folosiți IDE-ul pentru a generarea aceste metode
-== Resurse ==+         * Eclipse: Source -> Generate Getters and Setters 
 +         * IntelliJ: Code -> Generate... -> Getters and Setters 
 +== Resurse ​și linkuri utile==
  
-* {{|Soluție}} (disponibilă din 14.10.2019) +* {{lab1-sol.zip|Soluție}} (disponibilă din 14.10.2019) 
-* <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF laborator</​a></​html>​+[[laboratoare:​old-exercises|Exerciții din alți ani]] 
 +* [[laboratoare:​poo-java|POO și Java]] 
 +* [[laboratoare:​organizare-acces|Organizarea surselor și modificatori de acces]] 
 + 
 +/* Nu mai merge: 
 + 
 + <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF laborator</​a></​html>​ 
 + 
 +*/
laboratoare/java-basics.txt · Last modified: 2019/10/21 17:35 by Adriana Draghici