猿问

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

我接到了一项任务,它对如何完成有很多限制,并且花了一整天的时间试图解决它,感觉除非我寻求帮助,否则我将一事无成。


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


我想要做的就是从控制台输入中获取日期:日月和年(必须在 main 方法中完成),然后将其存储在“日期”对象中(这可以玩转)。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;


}

}



倚天杖
浏览 266回答 1
1回答

jeck猫

由于您已经提到代码必须保持不变。你可以试试这个方法您有 MyCalendar2 构造函数,但尚未创建 MyCalendar2 对象。创建 MyDate 后 date = new MyDate(d, m, y); 对象,您可以使用此“日期”对象创建 MyCalendar2 对象。然后,您可以访问 getDayOfWeek 并打印日期。有一些语法错误,在方法中使用 MyCalendar2 myDate2 对象,并将 getDayOfWeek 的返回类型更改为 void。并且构造函数必须像这样 public MyCalendar2(MyDate x) 而不是 public MyCalendar2(myDate x)。希望能帮助到你。
随时随地看视频慕课网APP

相关分类

Java
我要回答