Domanda

Ok, quindi ho un compito in cui devo creare una classe con un insieme di proprietà private, cosa che ho fatto.Diventa complicato perché sono abbastanza nuovo nella programmazione Java (o nella programmazione in generale) e non sono molto esperto nell'incapsulamento.Non ho mai usato getter/setter o costruttori prima.Comprendo i metodi getter/setter, ma non ho ancora compreso nessuna delle informazioni online per i costruttori, o addirittura il loro scopo.

Devo creare getter/setter e costruttori per ciascuna delle proprietà, quindi sembrerebbe che dovrei imparare a usare questi metodi.Se qualcuno potesse darmi un esempio di una classe con un costruttore e spiegare cosa sta facendo il costruttore e perché lo userei, sarebbe carino.

Grazie in anticipo.

È stato utile?

Soluzione

Prima di tutto, benvenuto nel mondo della programmazione :)

Vediamo un semplice esempio.

Supponiamo che tu voglia programmare una classe per rappresentare un quadrato.Quando crei un oggetto Square, devi dare al Square alcune proprietà, come la lunghezza di ciascun lato.È qui che entrano in gioco i costruttori.

Il layout della classe è simile al seguente, nota che alla variabile length_of_each_side non è assegnato un valore.

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

Puoi avere un costruttore predefinito che ti darà un quadrato predefinito se non specifichi la dimensione del quadrato.

public Square() {
     length_of_each_side = 1;
}

oppure puoi consentire a qualcuno di specificare la dimensione del quadrato

public Square(int length) {
     length_of_each_side = length;
}

Se voglio creare un quadrato predefinito (lunghezza 1), sarebbe simile a questo

Square mySquare = new Square();

Se volessi creare un quadrato e specificare la lunghezza di 55, sarebbe simile a questo

Square mySquare = new Square(55);

Altri suggerimenti

Non sono sicuro di quanto si sta guardando questo a scuola o che cosa il vostro insegnante sta dicendo, ma solo un suggerimento - non utilizzare getter e setter per una questione di abitudine. C'è una ragione non sono "automatico" in Java, è perché in realtà non dovrebbe essere lì.

Quando si dispone di un oggetto, l'idea è quella di chiedere l'oggetto di fare qualcosa per voi - in altre parole, è necessario fornire i metodi che agiscono sulle variabili per voi piuttosto che ottenere la variabile e di agire su di esso e metterlo indietro.

Ci sono un sacco di volte non si può evitare getter - ma dovrebbero essere aggiunti solo quando si è sicuri di averne bisogno, non come una questione di abitudine

.

Il costruttore è il posto migliore per impostare tutte le variabili membro. In realtà, se si fanno le variabili finali (una buona abitudine per entrare, rende la classe "immutabile") il costruttore sarà l'unico posto è possibile assegnarli.

Il costruttore è garantito per essere chiamato quando si crea l'oggetto, quindi è un buon posto per impostare il vostro oggetto verso l'alto. Nel costruttore se si assicurarsi l'oggetto è in uno stato valido e si dispone di variabili membro finali, è impossibile ottenere il vostro oggetto in uno stato non valido - questa è una pratica molto utile e si può risparmiare un sacco di tempo di debug

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top