首页 > 解决方案 > 使用 setter/getter 从其他类访问数组属性

问题描述

我是 Java 新手,想知道如果它们是数组,如何使用 setter/getter 访问其他类的属性。

目前,我有一个日期类,它设置带有月/日/年参数的日期。我需要创建另一个类,该类使用日期类来设置雇用日期以存储为属性,以及其他类。

我的代码目前如下所示:

public class DateClass {
    
    private int month;
    private int day;
    private int year;

    // MONTH
    public int getMonth() {
        return month;
    }
    
    public void setMonth(int month) {
        this.month = month;
    }
    
    // DAY
    public int getDay() {
        return day;
    }
    
    public void setDay(int day) {
        this.day = day;
    }
    
    // YEAR
    public int getYear() {
        return year;
    }
    
    public void setYear(int year) {
        this.year = year;
    }
    
    // FULL DATE
    public void setDate(int month, int day, int year) {
        setMonth(month);
        setDay(day);
        setYear(year);
    }
    
    public int[] getDate() {
        return new int[] { month, day, year };
        
    }

}

这是第二类:

public class EmployeeClass {

private int[] dateOfHire;

public void setDateOfHire(int[] dateOfHire) {
    dateOfHire.setDate(dateOfHire);
}

public String[] getDateOfHire() {
    return dateOfHire.getDate(dateOfHire);
}

}

错误说:无法在数组类型 int[] 上调用 setDate(int[])

我怎样才能解决这个问题?谢谢!

标签: javaclassmethodsgetset

解决方案


你需要做一些改变。首先,您EmployeeClass应该有一个DateClass属性,而不是int[]setDateOfHire()方法必须调用具有 3 个参数setDate()的可用方法:DateClass

public class EmployeeClass {
    private DateClass dateOfHire;

    public void setDateOfHire(int[] dateOfHire) {
        this.dateOfHire.setDate(dateOfHire[0], dateOfHire[1], dateOfHire[2]);
    }

    public int[] getDateOfHire() {
        return dateOfHire.getDate();
    }
}

这会起作用,但我建议你检查你的课程设计。让int数组定义日期是一种非常糟糕的做法。


推荐阅读