Buongiorno, ammetto che la domanda è un tantino generica, ma proverò a farmi capire con un esempio.
Io ho questa classe:
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. Graziecodice: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()); } } } }![]()