首页 > 解决方案 > 如何通过使用 from 方法传递参数来为属性赋值?

问题描述

我需要仅使用一种设置方法将 YEAR、MONTH、DAY 属性分配给值。因此,我通过逐行调用 set 方法将 DATE.YEAR、DATE.MONTH、DATE.DATE 作为参数传递,并带有值。您可以对 set 方法进行任何更改。但是您不能对主要方法进行更改。

   class Date{
    static int YEAR;
    static int MONTH;
    static int DAY;

    public void set(int field,int value){
        //i need to put code here to assign YEAR, MONTH, DAY to values
    }
    public void printDate(){
        System.out.println(YEAR+"-"+MONTH+"-"+DAY);
    }

}
class Demo{
    public static void main(String args[]){
        Date d1=new Date();
        d1.set(Date.YEAR,2016); //set(int field, int value)
        d1.set(Date.MONTH,05);
        d1.set(Date.DAY,30);
        d1.printDate(); //2016-5-30
    }
}

标签: javaobjectmethodsstaticarguments

解决方案


标记YEAR, MONTHANDDAY为 final 并在set()方法中使用它们进行比较

    class Date {

        static final int YEAR = 0;
        static final int MONTH = 1;
        static final int DAY = 2;

        private int year;
        private int month;
        private int day;

        public void set(int field, int value) {
            if (field == YEAR)
                this.year = value;
            else if (field == MONTH)
                this.month = value;
            else if (field == DAY)
                this.day = value;
        }

        public void printDate() {
            System.out.println(year + "-" + month + "-" + day);
        }
    }

推荐阅读