A scuola, mi è stato detto più volte di smettere di usare public
per le mie variabili. Non ho ancora chiesto il perché.
Questa domanda: I campi pubblici di Java sono solo un tragico difetto del design storico a questo punto? sembra un po 'collegato a questo. Tuttavia, non sembrano discutere perché è "sbagliato", ma si concentrano invece su come possono invece usarli.
Guarda questa classe (incompleta):
public class Reporte {
public String rutaOriginal;
public String rutaNueva;
public int bytesOriginales;
public int bytesFinales;
public float ganancia;
/**
* Constructor para objetos de la clase Reporte
*/
public Reporte() {
}
}
Non c'è bisogno di capire lo spagnolo. Tutto ciò che fa questa classe è contenere alcune statistiche (quei campi pubblici) e poi fare alcune operazioni con loro (più tardi).
Dovrò anche modificare queste variabili spesso. Ma bene, dato che mi è stato detto di non usare public
, questo è quello che ho finito per fare:
public class Reporte {
private String rutaOriginal;
private String rutaNueva;
private int bytesOriginales;
private int bytesFinales;
private float ganancia;
/**
* Constructor para objetos de la clase Reporte
*/
public Reporte() {
}
public String getRutaOriginal() {
return rutaOriginal;
}
public String getRutaNueva() {
return rutaNueva;
}
public int getBytesOriginales() {
return bytesOriginales;
}
public int getBytesFinales() {
return bytesFinales;
}
public float getGanancia() {
return ganancia;
}
public void setRutaOriginal(String rutaOriginal) {
this.rutaOriginal = rutaOriginal;
}
public void setRutaNueva(String rutaNueva) {
this.rutaNueva = rutaNueva;
}
public void setBytesOriginales(int bytesOriginales) {
this.bytesOriginales = bytesOriginales;
}
public void setBytesFinales(int bytesFinales) {
this.bytesFinales = bytesFinales;
}
public void setGanancia(float ganancia) {
this.ganancia = ganancia;
}
}
Sembra abbastanza carina. Ma sembra una perdita di tempo.
Le ricerche di Google su "Quando utilizzare public in Java" e "Perché non dovrei usare public in Java" sembrano discutere di un concetto di mutevolezza , anche se non sono davvero sicuro di come interpretare tali discussioni. Voglio che la mia classe sia mutabile - sempre.