Java 在方法中使用静态变量作为参数?
我对Java比较熟悉。这些天我在处理面向对象的概念。 我被困在这里,因为我无法决定如何使用名为set的方法编写代码来完成我的代码。这是我的代码Java 在方法中使用静态变量作为参数?,java,oop,methods,static,encapsulation,Java,Oop,Methods,Static,Encapsulation,我对Java比较熟悉。这些天我在处理面向对象的概念。 我被困在这里,因为我无法决定如何使用名为set的方法编写代码来完成我的代码。这是我的代码 class Date { private int year=1970; private int month=1; private int day=1; static int YEAR; static int MONTH; static int DAY; public void setYear(in
class Date {
private int year=1970;
private int month=1;
private int day=1;
static int YEAR;
static int MONTH;
static int DAY;
public void setYear(int year){
this.year=year;
}
public void setMonth(int month){
this.month=month;
}
public void setDay(int day){
this.day=day;
}
public void printDate(){
System.out.println(year+"-"+month+"-"+day);
}
public void set(int field, int value){
//
//
}
}
class Demo{
public static void main(String args[]){
Date d1=new Date();
d1.printDate();
d1.set(Date.YEAR,2018);
d1.set(Date.MONTH,04);
d1.set(Date.DAY,18);
d1.printDate();
}
}
我坚持使用
设置方法
。如何在set方法中编码。有人能帮我解决这个问题吗。非常感谢。如果我解决了问题,您应该首先将年
、月
和日
移动到日期单位
枚举
public enum DateUnit {
YEAR, MONTH, DAY
}
然后使set
方法接受DateUnit
和int值
public void set(DateUnit unit, int value) {
switch (unit) {
case YEAR: {
year = value;
break;
}
case MONTH: {
month = value;
break;
}
case DAY: {
day = value;
break;
}
}
}
现在您可以这样使用它:
Date date = new Date();
date.set(DateUnit.YEAR,2018);
date.set(DateUnit.MONTH,04);
date.set(DateUnit.DAY,18);
我不明白这个问题。你说“我卡住了”,但从未描述过问题或错误。