Ho scritto accessori ed i mutatori metodi, ma ancora non posso accedere alle variabili private! perché?
Domanda
ho scritto la mia classe, con le sue variabili private e poi ho scritto i metodi di accesso e mutatori necessari per accedere a tali variabili, ma questo non funziona quando l'eseguo dopo aver scritto la classe principale. Perché quello che accade controllare il mio codice qui:?
public class DateTest{
public static void main (String [] args){
Date d1 = new Date();
Date d2 = new Date();
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
d1.WriteOutput();
d2.WriteOutput();
}
}
class Date {
private String month;
private int day;
private int year;
public String getMonth(){
return month;
}
public int getDay(){
return day;
}
public int getYear(){
return year; }
public void setMonth(String m){
if (month.length()>0)
month = m;
}
public void setDay(int d){
if (day>0)
day = d; }
public void setYear(int y){
if (year>0)
year = y;
}
public void WriteOutput(){
System.out.println("Month " + month + "Day "+ day + " year" + year);
}
}
Si prega di ragazzi appena essere paziente con me, sono davvero un programmatore "novizio"
Soluzione
Java non ha zuccheri sintattici come C # e non vi permetterà di fare chiamate in da object.property
anche se sono stati forniti i metodi di accesso. Le proprietà sono puramente un modello di progettazione e non sono refleted in sintassi di un linguaggio stesso.
È necessario chiamare in modo esplicito come d1.setMonth("February ");
e String val = d1.getMonth();
.
Altri suggerimenti
I metodi di accesso si suppone di essere chiamato. Questo è tutto.
d1.setMonth("February");
d1.setDay(13);
sempre usare setter e getter per accedere alle variabili private.
Privato i membri possono essere direttamente accessibile solo tra i membri della stessa classe. DateTest
è un'altra classe e quindi il sottostante non è possibile
d1.month = "February ";
d1.day = 13;
d1.year = 1991;
d2.month = "July";
d2.day = 26;
d2.year = 1990;
Sostituire il codice precedente con usando metodi setter corrispondente.