Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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
Java:构造函数和传递变量时出错_Java_Date_Variables_Constructor - Fatal编程技术网

Java:构造函数和传递变量时出错

Java:构造函数和传递变量时出错,java,date,variables,constructor,Java,Date,Variables,Constructor,我试图以dd-mm-yyyy格式输入日期,并且必须以e格式返回。g9月29日星期二。我是Java新手,不确定我的day、month、year类的值是否返回到main。Date-date1=new-Date(day1,month1,year1)有一个错误,表示它未定义,并使其成为构造函数。如果我让它成为一个构造函数并运行程序,我会得到像lab2一样的值。Day@659e0bfd。不知道从这里到哪里去 package lab2; public class Calendar { //assume

我试图以
dd-mm-yyyy
格式输入日期,并且必须以e格式返回。g<代码>9月29日星期二。我是Java新手,不确定我的day、month、year类的值是否返回到main。
Date-date1=new-Date(day1,month1,year1)
有一个错误,表示它未定义,并使其成为构造函数。如果我让它成为一个构造函数并运行程序,我会得到像
lab2一样的值。Day@659e0bfd
。不知道从这里到哪里去

package lab2;

public class Calendar {

//assume all months have 30 days and that 1 January is a Monday;

public static void main(String[] args) { // e.g. input: 29 09 2015

    int in1 = Integer.parseInt(args[0]);
    int in2 = Integer.parseInt(args[1]);
    int in3 = Integer.parseInt(args[2]);

    Day day1 = new Day(in1, in2); // string
    Month month1 = new Month(in2); // string
    Year year1 = new Year(in3); // integer


     Date date1 = new Date(day1, month1, year1); //

    date1.printName(); // e.g. "The date is Tuesday, 29th of September, 2015

}
}




“Date date1=新日期(day1,month1,year1)”有错误 说它是未定义的,并使它成为构造函数

因为在
Date
类中没有像
Date(d天,m月,y年)
这样的参数化构造函数。它具有构造函数
Date(字符串temp1、字符串temp2、int temp3)
。所以参数类型是不同的

而不是

Date date1 = new Date(day1, month1, year1);
使用

“Date date1=新日期(day1,month1, 第1年)“说它是未定义的,并使其成为构造函数。如果我 它是一个构造函数并运行程序,我得到的值如下 “lab2。Day@659e0bfd". 不知道从这里到哪里去

你得到了lab2。Day@659e0bfd因为您还没有实现toString()方法。在Day、Month和Year类中实现toString()方法,您将获得所需的结果。请检查下面的代码-

 public class Day {
    private int day;
    private int month;
    private int code;
    private String name; //e.g. Tuesday 

    public Day(int dy, int mth ){
        day = dy;
        month = mth;
        code = ((day*month) % 7);


        // Assigning the day variable number to text //
        switch (code) {
        case 0: name = "Monday";
                break;
        case 1: name = "Tuesday";
                break;
        case 2: name = "Wednesday";
                break;
        case 3: name = "Thursday";
                break;
        case 4: name = "Friday";
                break;
        case 5: name = "Saturday";
                break;
        case 6: name = "Sunday";
                break;
        default: System.out.println("Incorrect Day Entered");}

        }
        @Override
        public String toString() {
            return name;
        }

    }
类似地,可以将toString()方法放在Month类中

public class Month {

private int month1;
private String monthName;




public Month(int temp1){
    month1=temp1;


switch (month1) {
case 1: monthName = "January";
        break;
case 2: monthName = "February";
        break;
case 3: monthName = "March";
        break;
case 4: monthName = "April";
        break;
case 5: monthName = "May";
        break;
case 6: monthName = "June";
        break;
case 7: monthName = "July";
        break;
case 8: monthName = "August";
        break;
case 9: monthName = "September";
        break;
case 10: monthName = "October";
        break;
case 11: monthName = "November";
        break;
case 12: monthName = "December";
        break;
default: System.out.println("Incorrect Month Error");

        @Override
        public String toString() {
            return monthName;
        }

}
你的年班-

public class Year {

private int yearNumber;

public Year(int temp2)
{
    yearNumber=temp2;


}

        @Override
        public String toString() {
            return yearNumber;
        }
}

我投票结束这个问题,因为这个问题属于主题。
Date date1 = new Date(day1, month1, year1);
Date date1 = new Date(day1.name, month1.monthName, year1.yearNumber); 
 public class Day {
    private int day;
    private int month;
    private int code;
    private String name; //e.g. Tuesday 

    public Day(int dy, int mth ){
        day = dy;
        month = mth;
        code = ((day*month) % 7);


        // Assigning the day variable number to text //
        switch (code) {
        case 0: name = "Monday";
                break;
        case 1: name = "Tuesday";
                break;
        case 2: name = "Wednesday";
                break;
        case 3: name = "Thursday";
                break;
        case 4: name = "Friday";
                break;
        case 5: name = "Saturday";
                break;
        case 6: name = "Sunday";
                break;
        default: System.out.println("Incorrect Day Entered");}

        }
        @Override
        public String toString() {
            return name;
        }

    }
public class Month {

private int month1;
private String monthName;




public Month(int temp1){
    month1=temp1;


switch (month1) {
case 1: monthName = "January";
        break;
case 2: monthName = "February";
        break;
case 3: monthName = "March";
        break;
case 4: monthName = "April";
        break;
case 5: monthName = "May";
        break;
case 6: monthName = "June";
        break;
case 7: monthName = "July";
        break;
case 8: monthName = "August";
        break;
case 9: monthName = "September";
        break;
case 10: monthName = "October";
        break;
case 11: monthName = "November";
        break;
case 12: monthName = "December";
        break;
default: System.out.println("Incorrect Month Error");

        @Override
        public String toString() {
            return monthName;
        }

}
public class Year {

private int yearNumber;

public Year(int temp2)
{
    yearNumber=temp2;


}

        @Override
        public String toString() {
            return yearNumber;
        }
}