Nella classe DVD non hai ridefinito il metodo toString() quindi, buttando in output un oggetto di tipo DVD quello che vedrai apparire è l'indirizzo in memoria dell'oggetto (ovvero, la definizione standard del metodo toString() della classe Object).

codice:
System.out.println(d[k]);
d[k] è un oggetto di tipo DVD.

Per i null che vengono stampati bisogna vedere quanto vale k.

PS: se li hai visti/studiati, considera l'uso un ArrayList (un array dinamico), senza dover creare un array di dimensione fissa che potrebbe essere sovradimensionato.


Ciao.