Aiuo con metodo costruttore

di il
3 risposte

Aiuo con metodo costruttore

Ragazzi scusate nel costruttore non si usano i metodi get e set giusto?
sto imparando e sono alle prime armi,vi posto il codice
public class Person {
   String name;
   int age = 25;

   public Person (String name) {
      this ();
      setName (name);
   }
   public Person (String name,int age) {
      Person (name);
      setAge (age);
   } 

3 Risposte

  • Re: Aiuo con metodo costruttore

    maracaibo25 ha scritto:


    Ragazzi scusate nel costruttore non si usano i metodi get e set giusto?
    In un costruttore si possono eventualmente invocare dei setter della classe stessa. Può aver (molto) senso se nel setter c'è della logica aggiuntiva particolare, tipicamente della validazione, es. un valore che non può essere negativo. Se dal costruttore invochi il setter, la validazione è coerente sia con la costruzione, sia poi con l'uso diretto del setter.

    maracaibo25 ha scritto:


    vi posto il codice
    Non è comunque corretto, perché hai usato Person(name); per invocare l'altro costruttore. Che è sbagliato (invece va usato il this( .... ) ).

    E se non hai un costruttore senza argomenti è pure sbagliato invocare this(); (senza argomenti)
  • Re: Aiuo con metodo costruttore

    Questo ad esempio è corretto:
    public class Persona {
        private String nome;
        private int eta;
        private String citta;
    
        public Persona(String nome, int eta) {
            setNome(nome);
            setEta(eta);
        }
    
        public Persona(String nome, int eta, String citta) {
            this(nome, eta);
            setCitta(citta);
        }
    
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
        public int getEta() {
            return eta;
        }
    
        public void setEta(int eta) {
            if (eta < 0) {
                throw new IllegalArgumentException("eta non può essere negativo: " + eta);
            }
            this.eta = eta;
        }
    
        public String getCitta() {
            return citta;
        }
    
        public void setCitta(String citta) {
            this.citta = citta;
        }
    }
  • Re: Aiuo con metodo costruttore

    andbin ha scritto:


    maracaibo25 ha scritto:


    Ragazzi scusate nel costruttore non si usano i metodi get e set giusto?
    In un costruttore si possono eventualmente invocare dei setter della classe stessa. Può aver (molto) senso se nel setter c'è della logica aggiuntiva particolare, tipicamente della validazione, es. un valore che non può essere negativo. Se dal costruttore invochi il setter, la validazione è coerente sia con la costruzione, sia poi con l'uso diretto del setter.

    maracaibo25 ha scritto:


    vi posto il codice
    Non è comunque corretto, perché hai usato Person(name); per invocare l'altro costruttore. Che è sbagliato (invece va usato il this( .... ) ).

    E se non hai un costruttore senza argomenti è pure sbagliato invocare this(); (senza argomenti)
    Grazie andbin, magari a diventare bravo come te
Devi accedere o registrarti per scrivere nel forum
3 risposte