Возврат метода с ошибкой и конструктор с нулевыми аргументами выполнен неправильно - PullRequest
0 голосов
/ 23 апреля 2020

Я пишу эту небольшую программу как задание, и я застрял в двух вещах, во-первых, я не так хорош с конструкторами с нулевыми аргументами, поскольку это новая концепция для меня на данный момент, 2-й в последнем методе «Проверка» возврата выдает ошибку: «Синтаксическая ошибка на токене« возврат », ожидается недействительное». Если вы можете помочь с конструктором с нулевыми аргументами, исправив его, и возвратом, указав ошибку, это было бы очень полезно.

import java.util.Scanner;
public class Zeller {
   Scanner input = new Scanner (System.in);
private int year ;
private int month;
private int day;
private float weekDay;
  int countLeapYears;


        public Zeller() {
            year = 0;
            month = -1;
            day = -1;
        }
        public static int setYear( int year ){
            if(year > 0){
                return year;
            }
            else return year;
        }
        public static int setMonth( int month ){
            if( month >= 1 && month <= 12){
                return month;
            }
            else return -1;
        }
        public static int setDay( int day ){
            if( day >=1 && day <= 31){
                return day;
            }
            else return -1;
        }
        public static void Check ( int year, int month, int day ){
            year = setYear(year);
            month = setMonth(month);
            day = setDay(day);
            return year, month, day;
        } 
    public static void main(final String[] args) {
       Zeller ex1 = new Zeller();
    }
}

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020
  1. Вы можете добавить методы getter в свой класс для раздельного получения членов данных.
  2. Внутри вашего метода Check вместо примитивного типа int вы можете использовать целочисленные ссылки для получения значений одновременно. время, если вам действительно это нужно.
0 голосов
/ 23 апреля 2020

В вашем конструкторе нет ничего плохого. Я не понимаю вашу путаницу с конструкторами с нулевым аргументом.

Как отмечается в комментарии, вы пытаетесь вернуть значение, когда в объявлении вашего метода указано, что оно ничего не возвращает (void). Кроме того, возвращаемое значение с запятыми не работает. Вы можете вернуть только одну вещь, хотя эта вещь может быть массивом или объектом, который имеет несколько значений. Массив будет выглядеть примерно так: new int[] {year, month, day};.

. Вы не упоминаете об этом, но вы также можете пытаться получить доступ к переменным-членам из метода stati c. Методы Stati c не являются методами экземпляра объекта. Если вы намеревались Check() ссылаться на закрытые переменные-члены в начале класса, тогда это не должно быть stati c. Кроме того, если вы намереваетесь получить доступ к переменным-членам, поскольку вы перегружаете имена переменных year, month и day, вам нужно будет использовать this.year, et c., Чтобы ссылаться на переменные-члены вместо ваших формальных параметров.

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