向我的Employee类java添加生日
我敢肯定,当你第一次学习编程时,我们会创建一些程序,教我们接口、抽象和多态性。这就是我现在要做的 我正在用Java编写代码,并试图创建一个抽象的employee类。不过我遇到了一个小问题。我想为员工添加生日,但我不确定如何使用日历 我希望能够像存储员工姓名一样存储生日,即向我的Employee类java添加生日,java,calendar,Java,Calendar,我敢肯定,当你第一次学习编程时,我们会创建一些程序,教我们接口、抽象和多态性。这就是我现在要做的 我正在用Java编写代码,并试图创建一个抽象的employee类。不过我遇到了一个小问题。我想为员工添加生日,但我不确定如何使用日历 我希望能够像存储员工姓名一样存储生日,即公共字符串employeeName。将其创建为变量将允许我对其使用getter和setter employee构造函数将如下所示: public Employee(String name, int idNumber, Strin
公共字符串employeeName代码>。将其创建为变量将允许我对其使用getter和setter
employee构造函数将如下所示:
public Employee(String name, int idNumber, String Gender,
int year, int month, int day)
public class Employee {
private Date Birthday;
public Employe(Date birthday) {}
}
总结一下如何使用日历创建生日变量,如果我想获得生日日期(无论它设置为什么),我将如何做?谢谢。私人日期生日日期。。。getter将只返回birtdayDay或private Calendar birthDate,getter将返回Return birthday.getDate()您可以使用。因此,您的Employee
类将如下所示:
public Employee(String name, int idNumber, String Gender,
int year, int month, int day)
public class Employee {
private Date Birthday;
public Employe(Date birthday) {}
}
这就是想法。不应该使用3个不同的变量,而应该使用java.util.Date(不推荐使用)或java.util.Calendar。java提供了java.util包中可用的日期类,该类封装了当前日期和时间
同时在员工的构造函数中传递出生日期参数:
import java.util.*;
public Employee(String name, int idNumber, String Gender,
int year, int month, int day, Date dob)
也许这是一条路要走:
// declare birthday as Date:
private Date birthday;
public Employee(String name, int idNumber, String gender,
int year, int month, int day) {
this.name = name;
this.idNumber = idNumber;
this.gender = gender;
initBirthday(year, month, day);
}
private void initBirthday(int year, int month, int day) {
// all int should be greater than 0
if (year > 0 && month > 0 && day > 0) {
Calendar cal = Calendar.getInstance();
cal.set(year, month-1 , day, 0, 0, 0);
// OR the explicit way
// cal.set(Calendar.YEAR, year);
// cal.set(Calendar.MONTH, month - 1); // january == 0 !!!!
// cal.set(Calendar.DAY_OF_MONTH, day);
// cal.set(Calendar.HOUR,0);
// cal.set(Calendar.MINUTE,0);
// cal.set(Calendar.SECOND,0);
birthday = cal.getTime(); // this returns a Date
} else {
// set birthday to a default value...
}
}
我认为不应该在构造函数中创建任意长的参数。您最好使用日历
实例,并复制该信息,因为日历
实例是可变的。请注意,并不是每个人的生日都是已知的。我曾想过做类似的事情,但我不确定这是否正确。我有这样的public Employee(String Name,int-IDNumber,String-Gender,int-Month,int-Day,int-Year){this.employeeName=Name;this.IDNumber=IDNumber;this.Gender=Gender;calendar.set(Year,Month,Day);}
但是我该如何返回存储的日期呢?@Jadex1,它可能会从更高版本的Java中删除,尽管删除日期会使许多程序不受欢迎Date
但是它不是不推荐使用的,您可以存储Date
,但是当前您应该使用日历
类之一来创建日期(与当前日期/时间不同)。