在方法中使用静态变量作为参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在方法中使用静态变量作为参数?相关的知识,希望对你有一定的参考价值。

我是Java的新手。这些天,我正在处理OOP概念。我被困在这里是因为我无法决定如何在名为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(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)
        //
        field=value;
        this.year=YEAR;
        this.month=MONTH;
        this.day=DAY;
    

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 method,有人可以帮我解决这个问题吗?非常感谢。

答案

如果我正确地解决了该问题,则应首先将YEARMONTHDAY移至DateUnit枚举。

public enum DateUnit 
    YEAR, MONTH, DAY

然后使set方法接受DateUnit unitint value

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);

以上是关于在方法中使用静态变量作为参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中定义静态变量

PHP SET 函数中的默认参数作为静态变量

java中静态变量和静态方法的优缺点

静态变量可以用作@synchronized参数吗?

java:在java中为啥静态变量没有this引用?

静态与类作为类变量/方法(Swift)