Java создание метода одного класса, который вызывает метод другого класса - PullRequest
0 голосов
/ 11 октября 2018

Мне дали задание, которое имеет множество ограничений на то, как оно выполнено, и потратил целый день на его решение, и мне кажется, что я ничего не добьюсь, если толькоЯ обращаюсь за помощью.

Сначала я упомяну, что следующий код ДОЛЖЕН оставаться прежним.Можно добавить больше методов, но текущие методы и атрибуты должны остаться прежними.

Все, что я хочу сделать, это взять дату: день, месяц и год из консольного ввода (должно быть сделано в основном методе), который затем будет сохранен в объекте «дата» (это можно воспроизвестис).Затем объект 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 голосов
/ 11 октября 2018

Так как вы упомянули код должен остаться прежним.

Вы можете попробовать этот подход,

  1. У вас есть конструктор MyCalendar2, но вы не создали объект MyCalendar2.
  2. После создания даты MyDate = new MyDate (д, м, у);объект, вы можете создать объект MyCalendar2 с этим объектом «дата».
  3. Затем вы можете получить доступ к getDayOfWeek и распечатать день.
  4. Есть некоторые синтаксические ошибки, используйте объект MyCalendar2 myDate2 внутри метода, а также измените тип возвращаемого значения getDayOfWeek на void.
  5. И конструктор должен быть таким же общедоступным MyCalendar2 (MyDate x) не общедоступный MyCalendar2 (myDate x).

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...