Discussione: [java] primo esercizio
View Single Post
Old 18-05-2008, 22:43   #10
khelidan1980
Senior Member
 
L'Avatar di khelidan1980
 
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
Quote:
Originariamente inviato da thewebsurfer Guarda i messaggi
fammi capire

ma per usare sto metodo toString non avrei dovuto stampare contobanca.toString??
xke è corretto stampare l'istanza contobanca della classe Conto così com'è?
Si ma il metodo toString lo devi scrivere nella classe Conto se no ti invoca il toString ereditato da object,ti scrivo il codice cosi magari capisci meglio:

Codice:
package banca;

public class Banca {
    public static void main (String[] args){
        Conto contobanca = new Conto(10);
        contobanca.aggiungi(1000);
        contobanca.sottrai(50);
        System.out.println("il saldo è " + contobanca.toString());
}
}
     class Conto{
        private int saldo;
    
        public Conto(int saldoiniziale){
            saldo = saldoiniziale;
        
        }
    
        public void aggiungi(int x){
            int nuovosaldo = x + saldo;    
            saldo= nuovosaldo;
            }
        public void sottrai (int x){
            int nuovosaldo = saldo - x;
            saldo = nuovosaldo;
        }
        
        public String toString(){
        	String result = Integer.toString(saldo);
        	return result;
        }
    }
se tu accedi con l'operatore punto a saldo violi l'incapsulamento,teoria dell'oop,e nel caso del mio codice non funzionerebbe perchè saldo è dichiarato private appunto per preservare l'incapsulamento,e ti serve quindi un metodo toString per stampare informazioni sul tuo oggetto,e questo discorso vale anche per leggere o settare saldo,come hai giustamente fatto,seguendo il discorso fatto per toString avresti potuto accedere direttamente anche in quel caso,sbagliando, con l'operatore punto!
__________________
Khelidan

Ultima modifica di khelidan1980 : 18-05-2008 alle 22:49.
khelidan1980 è offline   Rispondi citando il messaggio o parte di esso