per intenderci:

1. al fine di svolgere l'esercizio, come avevi fatto rispetta le richieste del prof
2. al fine di capire come si progetta no, è meglio come ti dicevo una stringa che modellizza il tutto e con 2 banali critiche spero di averti fatto capire la differenza.

Anche qui, il prof ti chiede una classe Agenda, ma il realtà cosa è Agenda per te? Un elenco di persone...che puoi racchiudere in una lista!!!
Domanda: è necessario creare un oggetto Agenda con dentro solo una lista di Persone?
Per come ti chiede il prof si, in realtà no, perché il tuo aggregato è solo la lista di persone che puoi tenere dove ti pare.

Difficilmente si crea (a meno che non sia chiesto esplicitamente richiesto e motivata la richiesta) un oggetto con dentro solo la lista, difficilmente si crea ridondanza se non necessario e alla fine andresti a creare Agenda con una serie di metodi che fanno la stessa cosa sulla lista.

Devi distinguere cosa vuole il prof e cosa è in realtà la OOP, purtroppo per te due cose differenti e che ti possono creare confusione (sempre che il tuo intento non sia solo passare l'esame)