如何读写 java 中的私有字段
How to read and write on private fields in java
我想要write/read一个私有变量...
请查看我的代码:
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;
}
}
我想要 read/write 私人 year/month/day ...
只是私人...
我已经创建了他们的可访问功能,但我收到有关 ("Cannot make a static reference to the non-static method setYear(int) from the type Date" 的错误,我无法修复它 ..
你能帮帮我吗?
首先,您应该尽量避免在 Date
class 中混合使用 main 方法。您可以使用 main
创建另一个 class,它看起来像这样(以测试 运行 您的代码):
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)
}
一旦你这样做,你就可以很容易地使用 class 中的变量。
我不确定你的学校是否希望你将 class 命名为日期。如果我是你,我会尝试将其命名为 MyDate
而不是 Date
,因为 Java.
中已经有日期 class
i receive an error about ("Cannot make a static reference to the non-static method setYear(int) from the type Date" and i can't fix it .. can you help me ?
您需要了解什么是 static
成员。它给你错误,因为你试图从你的 main
访问非静态成员,这是一个静态方法。
2 种停止错误的方法:
将 class 中的变量设为静态(强烈建议 你不要这样做)
创建 Date 的实例并从 Date 对象访问实例变量。(这是你应该做的)
示例:
Date d = new Date(); //Create an object of Date
现在您可以通过它的实例轻松访问 Date 的所有成员。
示例:
d.getDay();
d.setDay(5);
d.getMonth();
d.setMonth(7);
d.getYear();
d.setYear(2015);
您现在可以在 main 方法中编写这些内容。
How to read and write on private fields in java
通过创建对象并像上面那样使用 getter 和 setter。
我想要write/read一个私有变量... 请查看我的代码:
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;
}
}
我想要 read/write 私人 year/month/day ... 只是私人... 我已经创建了他们的可访问功能,但我收到有关 ("Cannot make a static reference to the non-static method setYear(int) from the type Date" 的错误,我无法修复它 .. 你能帮帮我吗?
首先,您应该尽量避免在 Date
class 中混合使用 main 方法。您可以使用 main
创建另一个 class,它看起来像这样(以测试 运行 您的代码):
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)
}
一旦你这样做,你就可以很容易地使用 class 中的变量。
我不确定你的学校是否希望你将 class 命名为日期。如果我是你,我会尝试将其命名为 MyDate
而不是 Date
,因为 Java.
i receive an error about ("Cannot make a static reference to the non-static method setYear(int) from the type Date" and i can't fix it .. can you help me ?
您需要了解什么是 static
成员。它给你错误,因为你试图从你的 main
访问非静态成员,这是一个静态方法。
2 种停止错误的方法:
将 class 中的变量设为静态(强烈建议 你不要这样做)
创建 Date 的实例并从 Date 对象访问实例变量。(这是你应该做的)
示例:
Date d = new Date(); //Create an object of Date
现在您可以通过它的实例轻松访问 Date 的所有成员。
示例:
d.getDay();
d.setDay(5);
d.getMonth();
d.setMonth(7);
d.getYear();
d.setYear(2015);
您现在可以在 main 方法中编写这些内容。
How to read and write on private fields in java
通过创建对象并像上面那样使用 getter 和 setter。