Buongiorno, ammetto che la domanda è un tantino generica, ma proverò a farmi capire con un esempio.
Io ho questa classe:
codice:
public abstract class SoluzioneAbitativa {
public static final int COSTO_FISSO = 100;
private int numero;
private int metriQuadri;
private int maxOccupanti;
private boolean libera;
private int numeroOccupanti;
private String intestatario;
private ArrayList<Servizio> servizi = new ArrayList<>();
private int costo;
public SoluzioneAbitativa(int numero, int metriQuadri, int maxOccupanti) {
this.numero = numero;
this.metriQuadri = metriQuadri;
this.maxOccupanti = maxOccupanti;
this.numeroOccupanti = 0;
this.intestatario = null;
this.libera = true;
}
public ArrayList<Servizio> getServizi() {
return servizi;
}
public void setServizi(ArrayList<Servizio> servizi) {
this.servizi = servizi;
}
public int getNumero() {
return numero;
}
public int getMetriQuadri() {
return metriQuadri;
}
public int getMaxOccupanti() {
return maxOccupanti;
}
public boolean isLibera() {
if (this.numeroOccupanti == 0) {
libera = true;
} else {
libera = false;
}
return libera;
}
public int getNumeroOccupanti() {
return numeroOccupanti;
}
public String getIntestatario() {
return intestatario;
}
public void setMaxOccupanti(int maxOccupanti) {
this.maxOccupanti = maxOccupanti;
}
public void setLibera(boolean libera) {
this.libera = libera;
}
public void setNumeroOccupanti(int numeroOccupanti) {
this.numeroOccupanti = numeroOccupanti;
}
public void setIntestatario(String intestatario) {
this.intestatario = intestatario;
}
public int getCosto() {
return costo;
}
public void setCosto(int costo) {
this.costo = costo;
}
public abstract void calcolaCosto();
public void modificaOccupanti(int nuovoNumero) {
if (getMaxOccupanti() >= nuovoNumero) {
setNumeroOccupanti(nuovoNumero);
} else {
try {
throw new Exception("Troppi occupanti");
} catch (Exception ex) {
setNumeroOccupanti(getMaxOccupanti());
}
}
}
}
che rappresenta, che so, una camera d'albergo. Ora, io la instanzio specificando quanto c'è nel costruttore a partire da un file (quindi le informazioni iniziali le ho). Però poi ho necessità di instanziarla a partire dal solo numero (in stile albergo insomma). Come faccio? Ho provato a usare this(...), ma ho creato solo confusione. Grazie