我想写/读私有变量...... 请看我的代码:
public class Date {
Date time = new Date();
private int year,month,day ;
public static void main(String[] args) {
System.out.println("My text :");
Scanner myScanner = new Scanner(System.in);
int year,month,day ;
String error = "My text " ;
String monthName = null ;
System.out.println("Year :") ;
year = myScanner.nextInt();
setYear(year) ;
System.out.println("Month :") ;
month = myScanner.nextInt();
setMonth(month) ;
System.out.println("Day :") ;
day = myScanner.nextInt();
setDay(day) ;
switch(month) {
case 1 :
monthName = "Name of this month in my language" ;
break ;
case 2 :
monthName = "Name of this month in my language" ;
break ;
case 3 :
monthName = "Name of this month in my language" ;
break ;
case 4 :
monthName = "Name of this month in my language" ;
break ;
case 5 :
monthName = "Name of this month in my language" ;
break ;
case 6 :
monthName = "Name of this month in my language" ;
break ;
case 7 :
monthName = "Name of this month in my language" ;
break ;
case 8 :
monthName = "Name of this month in my language" ;
break ;
case 9 :
monthName = "Name of this month in my language" ;
break ;
case 10 :
monthName = "Name of this month in my language" ;
break ;
case 11 :
monthName = "Name of this month in my language" ;
break ;
case 12 :
monthName = "Name of this month in my language" ;
break ;
default : System.out.println("Error !") ;
}
if(day >= 1 && day <=31){
JOptionPane.showMessageDialog(null ,getYear() + " " + monthName + " " + getDay()) ;
}
else {
System.out.println(error);
}
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
}
我想读/写私人年/月/日... 只是私人...... 我已经创建了他们的可访问函数但我收到一个错误(&#34;无法从类型Date&#34中对非静态方法setYear(int)进行静态引用;我无法修复它。 你能救我吗?
答案 0 :(得分:1)
首先,您应该尝试避免在Date
课程中混合使用主要方法。您可以使用main
创建另一个类,看起来像这样(测试运行代码):
class DateRunner
{
public static void main(String[] args){
Date d = new Date();
System.out.println(d.getDay()); //getting variables from Date object.
}
}
class Date{
//Your usual implementation (members and constructor)
}
一旦你这样做,你就可以很容易地使用类中的变量。
我不确定您的学校是否希望您将课程命名为日期。如果我是你,我会尝试将其命名为MyDate
而不是Date
,因为Java中已有Date类。
我收到一个错误(&#34;无法从类型Date&#34中对非静态方法setYear(int)进行静态引用;我无法解决它..你能帮我吗? ?
您需要了解static
成员是什么。它会给你错误,因为你试图从main
访问非静态成员,这是一种静态方法。
有两种方法可以阻止错误:
让你的班级变量成为静态(强烈反对你这样做)
创建Date实例并从Date Object访问实例变量。(这就是你应该做的)
示例:强>
Date d = new Date(); //Create an object of Date
现在,您可以通过它的实例轻松访问所有约会对象。
示例:强>
d.getDay();
d.setDay(5);
d.getMonth();
d.setMonth(7);
d.getYear();
d.setYear(2015);
您现在可以在main方法中编写这些内容。
如何读取和写入java中的私有字段
通过创建一个对象并使用上面的getter和setter。