Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Grazie per le risposte, almeno ora ho la conferma che non avevo scritto boiate nell esercizio .
    Comunque il professore non aveva chiesto nulla del genere, pretende che si programmi sempre in questo modo; in più chiedendogli spiegazioni mi son sentito dire che passando un oggetto a un metodo si espone il puntatore (puntatore in java???) e quindi può essere modificato da qualsiasi punto del programma rendendo inutile usare l'incapsulamento.
    Ho provato a farlo ragionare ma non c'è stato verso di fargli cambiare idea.
    Risultato: lui è il prof e ha sempre ragione e io e i miei compagni, i quali hanno svolto l'esercizio nel mio stesso modo, abbiamo tutti torto.
    Ridarò l'esame scrivendo come piace a lui per avere un voto più alto e poi cancellerò dalla mia memoria tutto quello che ha detto.
    Ultima modifica di Nikopol; 16-02-2014 a 21:23

  2. #2
    Quote Originariamente inviata da Nikopol Visualizza il messaggio
    ...
    Risultato: lui è il prof e ha sempre ragione e io e i miei compagni, i quali hanno svolto l'esercizio nel mio stesso modo, abbiamo tutti torto.
    Ridarò l'esame scrivendo come piace a lui per avere un voto più alto e poi cancellerò dalla mia memoria tutto quello che ha detto.
    La spiegazione data dal prof che hai riportato non aggiunge nulla di nuovo a me comprensibile;

    .... l'antica saggezza contadina , a te ben nota a quanto leggo, recita appunto :
    "lega l'asino dove dice il padrone ...anche se forse sarebbe meglio legare il padrone dove dice l'asino"
    Ultima modifica di sspintux; 16-02-2014 a 22:22

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Nikopol Visualizza il messaggio
    mi son sentito dire che passando un oggetto a un metodo si espone il puntatore (puntatore in java???) e quindi può essere modificato da qualsiasi punto del programma rendendo inutile usare l'incapsulamento.
    Se a un costruttore/metodo passi un reference, il costruttore/metodo riceve effettivamente una copia del reference. Vuol dire che il costruttore/metodo non può cambiare il valore del reference che ha il chiamante (es. in una variabile) ma può eventualmente cambiare lo "stato" dell'oggetto referenziato, se l'oggetto è "mutabile". Questo sì.

    Nel tuo caso Libro è "mutabile", poiché ha i metodi setter. Ora ... per quello che dovevi fare è un problema questo? Dipende ... probabilmente no.
    E comunque l'incapsulamento non è o diventa inutile! L'incapsulamento serve principalmente per nascondere i dettagli interni di uno stato e/o comportamento. Se tu volessi mettere in Libro un controllo per cui il 'numeroPagine' non deve essere negativo, puoi farlo perché il campo è private (non accessibile dall'esterno) e lo puoi settare solo da costruttore o metodo setter. E qui puoi fare il controllo, lanciando es. IllegalArgumentException se il valore è negativo.
    A questo serve l'incapsulamento.

    Quote Originariamente inviata da Nikopol Visualizza il messaggio
    Ridarò l'esame scrivendo come piace a lui per avere un voto più alto e poi cancellerò dalla mia memoria tutto quello che ha detto.
    Sì .. direi che vista la situazione/premessa, è l'unica soluzione valida per te.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.