Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327

    Dubbio variabile di istanza private

    Salve ragazzi mi aiutate con questo dubbio?
    Leggendo il libro ho tratto la seguente conclusione:

    Se si dichiara all'interno di una classe una variabile di istanza private, questa può essere modificata dal programma principale (dove c'è il main) esclusivamente tramite i metodi presenti all'interno della classe in cui la variabile è stata dichiarata private (richiamandoli (i metodi) dal main).

    Mi sovviene un dubbio però:
    Ma perchè se fosse stata dichiarata public, non sarebbe cmq servito un metodo per poter modificare una varabile che si trova dentro una classe?? Altrimenti come ci vado??

    p.s. programma principale e classe risiedono in due file diversi.

    Grazie anticipatamente per il vostro aiuto.

  2. #2
    codice:
    public class Test {
    public int x; 
    
    public void print(){
       System.out.println(x);
    }
    
    }

    Nel main della stessa o di un altra classe :

    codice:
    Test test = new Test();
    
    test.x = 3;
    test.print(); // stampa 3

  3. #3
    Allora, se un campo d'istanza è dichiarato private, può essere modificato solo all'interno della classe in cui è dichiarato. Per poterlo modificare all'esterno, è necessario che ci sia un metodo modificatore della classe che permetta di farlo.
    Se il campo viene dichiarato public, basta scrivere:
    codice:
    identificatoreOggetto.nomeCampo=valore;
    Questa tecnica, però, è sconsigliata in quanto non usa l'information hiding e l'incapsulamento. Inoltre potrebbe portare a delle modifiche impreviste.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    Nel main della stessa o di un altra classe :
    codice:
    Test test = new Test();
    test.x = 3;
    test.print(); // stampa 3
    Grazie mille per la risposta anzitutto.
    Perfetto credo di aver capito!!
    Se fosse stata dichiarata private, test.x=3 non avrebbe funzionato e per fare una cosa analoga avrei dovuto richiamare un apposito metodo setValue dichiarato all'interno della medesima classe in cui la variabile è stata dichiarata private, giusto?

  5. #5
    giusto.
    anzi, il compilatore ti avrebbe segnalato un errore in questo caso.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    Originariamente inviato da Naruto 92
    giusto.
    anzi, il compilatore ti avrebbe segnalato un errore in questo caso.
    Ti ringrazio per la risposta.

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.