Domanda Aiuto su Classe di Aggregazione

Daniele1100000

Utente Gold
13 Agosto 2009
640
106
54
318
Salve sono nuovo nel campo Java e stiamo studiando momentaneamente le varie relazioni tra classi, dove però non stiamo vedendo la loro Implementazione, allora ho provato io a implementare una classe di aggregazione ma niente ora posto il codice.

Codice:
package it.java.relazione;

public class Persona {

    private String nome;

    private String cognome;

    private String codiceFiscale;

    private int stipendio;
            
    
}

non so se in questa classe devo sempre effettuare i get ed i set.


Codice:
package it.java.relazione;

public class Prestito {

    private int ammontare;
    
    private int rata;

    private int dataInizio;
    
    private int dataFine;
    
    private Persona intestatario;    
    

public Persona getIntestatario() {
    
return intestatario;    
    
    
    
    
}
    
public void setIntestatario(Persona intestatario) {    
    
this.intestatario=intestatario;    
    
    
}
    
    
}


Codice:
package it.java.relazione;

public class Main {

    public static void main(String[] args) {
    
    Prestito prova = new Prestito();
    
    
    prova.setIntestatario();
    
    

        
        
    }

}



programmo in Java da esattamente 2 giorni quindi mi aspetto di aver fatto qualche cavolata grossa, eclipse mi da errore su prova.setIntestario dove se provo ad inserire dei valori mi dice che il tipo di valore inserito non funziona all'interno del metodo.

N.B un buon libro da leggere con tanti esempi di implementazione quale sarebbe?(possibilmente in Italiano)


cordiali saluti
 
Dunque, in generale i set conviene farli sempre, specie agli inizi, perche' ti permettono di modificare i campi privati di una classe "con consapevolezza".
I get servono invece per ricevere sempre il valore di quella determinata variabile di un oggetto.
Se non hai ben chiara la cosa provo a spiegarmi meglio, certe cose non riesco a spiegarle benissimo in un messaggio scritto :/

Per quanto riguarda il set e l'errore che ti da:
ricorda una cosa, ci deve essere corrispondenza fra intestazione e poi richiamo della funzione. Se noti nella tua intestazione e dichiarazione hai "public void setIntestatario(Persona intestatario) ", quindi si presuppone tu debba ricevere come parametro della funzione un oggetto di tipo "Persona", ma in realta' nel tuo main, alla funzione, non passi alcun parametro!
Soluzione:
Crei un oggetto Persona p nel tuo main, un oggetto Prestito e poi richiami la funzione set passando come parametro la Persona p.
In codice:

Java:
public class Main {

    public static void main(String[] args) {
    
    Prestito prova = new Prestito();
    
    //creo Persona
    Persona persona = new Persona(); //se il costruttore di Persona ha dei parametri, fra le parentesi inserisci tali parametri!
        
    prova.setIntestatario(persona); //passo quindi persona come parametro al set
        
    }

}

Anche qui, se qualcosa non ti e' chiaro provo a spiegarmi meglio..

Per quanto riguarda i libri: ho un libro tascabile Apogeo su Java8, ma l'ho usato solo per dare una spolverata veloce alle cose di base (se ti puo' interessare ti cerco il link). Personalmente non so che libri specifici ed in italiano consigliarti, anche perche' Java non mi piace proprio come linguaggio, mi spiace
 
  • Mi piace
Reazioni: Daniele1100000
Tutto l'oggetto: ti conviene creare un costruttore di copia in Persona, in modo tale da passare un oggetto Persona al costruttore e poterne copiare tutti i valori. In tal modo avrai:

Java:
//In Prestito
public void setIntestatario(Persona p){
    this.intestatario(p);
}

//In persona:
Persona(Persona p){
    this.nome = p.nome;
    this.cognome = p.cognome;
    this.codiceFiscale = p.codiceFiscale;
    this.stipendio = p.stipendio;
}

Fammi sapere se non dovesse andare, magari mi e' sfuggito qualcosa essendo Java, ma il concetto teorico e' questo, tranquillo!
 
  • Mi piace
Reazioni: Daniele1100000
Tipo io ho una classe A dove effettuo un ToString con un tot numero di attributi(un attributo di A e associato a B), nella Classe B ho un attributo che facendo il to string nella classe B voglio che si collega alla classe A ma non riesco a farlo, riesco a creare solo un metodo che mi fa inserire dentro l'oggetto di B ma comunque non stampa l'attributo dell'altra classe.