Diferență între revizuiri ale paginii „POO Lab Lucrarea 2”

De la WikiLabs
Jump to navigationJump to search
(Anularea modificării 5544 făcute de Radu Hobincu (Discuție))
 
(Nu s-au afișat 11 versiuni intermediare efectuate de același utilizator)
Linia 7: Linia 7:
 
* [[Convenții de programare]]
 
* [[Convenții de programare]]
 
* [[Noțiuni avansate de programare obiect-orientată]]
 
* [[Noțiuni avansate de programare obiect-orientată]]
* [[Java Application Programming Interface (API)]]
 
  
 
== Cerințe ==
 
== Cerințe ==
  
== Cerințe ==
+
* Să se scrie o clasă '''PrivateMessage''', extinsă din clasa '''Message''', ce va fi folosită ca purtătoare de date între un client de chat și un anumit destinatar, care să aibă următoarele proprietăți:
 
 
* Să se scrie o clasă '''PrivateMessage''' ce va fi folosită ca purtătoare de date între un client de chat și un anumit destinatar, care să aibă următoarele proprietăți:
 
 
** Să stocheze numele expeditorului, un conținut și numele destinatarului;
 
** Să stocheze numele expeditorului, un conținut și numele destinatarului;
 
** Să fie imutabilă (odată creat un obiect, conținutul acestuia să nu mai poată fi modificat);
 
** Să fie imutabilă (odată creat un obiect, conținutul acestuia să nu mai poată fi modificat);
** Să permită extragera din obiectele de tip PrivateMessage ale unui mesaj formatat în modul specific mesajelor private în aplicațiile de chat: "(priv) expeditor: continut"
+
** Să permită extragerea din obiectele de tip '''PrivateMessage''' ale unui mesaj formatat în modul specific mesajelor private în aplicațiile de chat -- "(priv) expeditor: continut" --, folosind mecanismul de suprascriere a metodelor.
** Să existe un mod prin care să se poată obține destinatarul pentru orice obiect de tip PrivateMessage.
+
** Să existe o metodă prin care să se poată obține destinatarul pentru orice obiect de tip '''PrivateMessage''', numită ''getRecipient()''.
 +
** Constructorul să aibă ca argumente, în ordine, destinatarul, expeditorul și apoi conținutul mesajului.
  
 
* În clasa '''Main''' deja existentă, să se instanțieze cel puțin trei obiecte de tip '''PrivateMessage''' și să afișeze stringul formatat și destinatarul pentru fiecare.
 
* În clasa '''Main''' deja existentă, să se instanțieze cel puțin trei obiecte de tip '''PrivateMessage''' și să afișeze stringul formatat și destinatarul pentru fiecare.
  
Note:
+
Observații:
* Fiecare clasă și membru trebuie să aibă unul din modificatorii de access ''public'', ''private'' sau protected.
+
* Numele claselor și metodelor trebuie sa fie conform cu cele specificate mai sus.
 +
* Clasele trebuie să facă parte din pachetul '''ro.upb.etti.poo.chat_application.structs'''.
 +
* Fiecare clasă și membru trebuie să aibă unul din modificatorii de access ''public'' sau ''private''.
 
* Numele claselor trebuie sa fie conform cu cele specificate mai sus.
 
* Numele claselor trebuie sa fie conform cu cele specificate mai sus.
 
* Utilizați mecanismele de moștenire și suprascriere.
 
* Utilizați mecanismele de moștenire și suprascriere.
 +
  
 
Predare:
 
Predare:
* Tema se predă atașând exclusiv fișierele sursă Java unui e-mail trimis la adresa radu.hobincu@upb.ro.
+
* Codul se va preda și corecta automat pe platforma [http://moodle.dcae.pub.ro Moodle].
* Subiectul email-ului va fi: [POO_2]
 
* Corpul email-ului va conține numele și grupa expeditorului, și orice alt comentariu pe care doriți să-l faceți despre temă.
 
 
* <font color="red">'''Atenție:'''</font> Orice nerespectare ale indicațiilor de predare poate duce la pierderea în totalitate a punctajului.
 
* <font color="red">'''Atenție:'''</font> Orice nerespectare ale indicațiilor de predare poate duce la pierderea în totalitate a punctajului.
 +
 +
'''<font color="red">Atenție: Temele vor fi verificate anti-plagiat cu soft-uri specializate. Orice temă copiată va fi penalizată (atât sursa cât și copia) cu 100% din punctaj, fără posibilitate de refacere.</font>'''

Versiunea curentă din 28 octombrie 2017 23:50

Noțiuni și cunoștințe necesare

Cerințe

  • Să se scrie o clasă PrivateMessage, extinsă din clasa Message, ce va fi folosită ca purtătoare de date între un client de chat și un anumit destinatar, care să aibă următoarele proprietăți:
    • Să stocheze numele expeditorului, un conținut și numele destinatarului;
    • Să fie imutabilă (odată creat un obiect, conținutul acestuia să nu mai poată fi modificat);
    • Să permită extragerea din obiectele de tip PrivateMessage ale unui mesaj formatat în modul specific mesajelor private în aplicațiile de chat -- "(priv) expeditor: continut" --, folosind mecanismul de suprascriere a metodelor.
    • Să existe o metodă prin care să se poată obține destinatarul pentru orice obiect de tip PrivateMessage, numită getRecipient().
    • Constructorul să aibă ca argumente, în ordine, destinatarul, expeditorul și apoi conținutul mesajului.
  • În clasa Main deja existentă, să se instanțieze cel puțin trei obiecte de tip PrivateMessage și să afișeze stringul formatat și destinatarul pentru fiecare.

Observații:

  • Numele claselor și metodelor trebuie sa fie conform cu cele specificate mai sus.
  • Clasele trebuie să facă parte din pachetul ro.upb.etti.poo.chat_application.structs.
  • Fiecare clasă și membru trebuie să aibă unul din modificatorii de access public sau private.
  • Numele claselor trebuie sa fie conform cu cele specificate mai sus.
  • Utilizați mecanismele de moștenire și suprascriere.


Predare:

  • Codul se va preda și corecta automat pe platforma Moodle.
  • Atenție: Orice nerespectare ale indicațiilor de predare poate duce la pierderea în totalitate a punctajului.
Atenție: Temele vor fi verificate anti-plagiat cu soft-uri specializate. Orice temă copiată va fi penalizată (atât sursa cât și copia) cu 100% din punctaj, fără posibilitate de refacere.