Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向我的Employee类java添加生日_Java_Calendar - Fatal编程技术网

向我的Employee类java添加生日

向我的Employee类java添加生日,java,calendar,Java,Calendar,我敢肯定,当你第一次学习编程时,我们会创建一些程序,教我们接口、抽象和多态性。这就是我现在要做的 我正在用Java编写代码,并试图创建一个抽象的employee类。不过我遇到了一个小问题。我想为员工添加生日,但我不确定如何使用日历 我希望能够像存储员工姓名一样存储生日,即公共字符串employeeName。将其创建为变量将允许我对其使用getter和setter employee构造函数将如下所示: public Employee(String name, int idNumber, Strin

我敢肯定,当你第一次学习编程时,我们会创建一些程序,教我们接口、抽象和多态性。这就是我现在要做的

我正在用Java编写代码,并试图创建一个抽象的employee类。不过我遇到了一个小问题。我想为员工添加生日,但我不确定如何使用日历

我希望能够像存储员工姓名一样存储生日,即
公共字符串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
,但是当前您应该使用
日历
类之一来创建日期(与当前日期/时间不同)。