java创建一个类的方法,该方法调用另一类的方法

时间:2018-10-11 07:09:33

标签: java class methods

被赋予了一项任务,该任务在完成方式上有很多限制,并且整整一整天都在尝试解决该问题,感觉我对此一无所获除非我寻求帮助。

我将首先提到以下代码必须保持不变。可以添加更多方法,但是当前方法和属性必须保持不变。

我要做的只是从控制台输入日期(每年必须在主方法中完成):日期,月份和年份,然后将其存储在“日期”对象中(可以一起使用)。 Date对象然后调用get Day()方法,该方法将返回0-6之间的整数。现在,我想创建一个名为getDayOfWeek()的方法,该方法将使用0-6之间的整数值并返回实际的一周中的某一天(例如星期六)。我不需要帮助来创建getDayOfWeek()方法的功能。.我只是在解决如何将整数值解析为函数的问题。我已经尝试了无数种方法。例如,我正在尝试对这种方法进行成像:

getDayOfWeek(){

switch(date.getDay())等。

错误显示为“找不到符号:可变日期,位置:MyCalendar2”
我尝试过尽可能详细地描述这种情况。感谢任何可以提供帮助的人。

package mycalendar2;
import java.util.Scanner;

public class MyCalendar2 {

private MyDate myDate2;
static Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {

    System.out.print("Enter the date as day month year: ");
    int d = scanner.nextInt();
    int m = scanner.nextInt();
    int y = scanner.nextInt();

    MyDate date = new MyDate(d, m, y);
}

public MyCalendar2(myDate x){
    this.myDate2 = x;
}

  public int getDayOfWeek(){
   switch(date.getDay()) {
        case 0:
            System.out.println("Day is a Sunday");
        break;
        case 1:
            System.out.println("Day is a Monday");
            break;
        case 2:
            System.out.println("Day is a Tuesday");
            break;
        case 3:
            System.out.println("Day is a Wednesday");
            break;
        case 4:
            System.out.println("Day is a Thursday");
            break;
        case 5:
            System.out.println("Day is a Friday");
            break;
        case 6:
            System.out.println("Day is a Saturday");
            break;
        default:
            break;
         }
       }
      }


class MyDate{

private int day;
private int month;
private int year;

public MyDate(int d, int m, int y){
    this.day = d;
    this.month = m;
    this.year = y;
}

public int getDay(){
    int y0 = year - (14 - month) / 12;
    int x = y0 + y0 / 4 - y0 / 100 + y0 / 400;
    int m0 = month + 12 * ((14 - month) / 12) - 2;
    int d0 = (day + x + (31 * m0) / 12) % 7;

    return d0;

}
}

1 个答案:

答案 0 :(得分:0)

由于您已经提到过,代码必须保持不变。

您可以尝试这种方法,

  1. 您具有MyCalendar2构造函数,但尚未创建MyCalendar2对象。
  2. 创建MyDate之后,日期= new MyDate(d,m,y);对象,则可以使用此“日期”对象创建MyCalendar2对象。
  3. 然后,您可以访问getDayOfWeek并打印日期。
  4. 存在一些语法错误,请在方法内使用MyCalendar2 myDate2对象,并将getDayOfWeek的返回类型更改为void。
  5. 构造函数必须像这样的公共MyCalendar2(MyDate x)而不是公共MyCalendar2(myDate x)。

希望有帮助。