2016-11-29 2 views
-2

• Добавить код, который создает новый объект Date с именем birthday. Новый объект должен содержать дату рождения. Вы можете использовать любой конструктор. Добавьте код, чтобы распечатать дату, чтобы проверить его.Почему мои новые объекты не работают в моем основном методе?

• Добавить код в начало, который создает новый объект Date, названный сегодня. Новый объект должен содержать вашу сегодняшнюю дату. Вы должны использовать другой конструктор. Добавьте код, чтобы распечатать дату, чтобы проверить его.

Я сделал все это, и я не уверен, почему, но мой основной метод не работает? Как мне отформатировать мой код в основном, чтобы создать новый объект?

class Date { 

    int year;//the next three lines are for the second bullet point 
    int month; 
    int day; 
    int birthday; 
    int today; 

    public Date() {//this is the constructor that takes no parameters 
    this.year = 0; 
    this.month = 0; 
    this.day = 0; 
    } 

    public Date(int year, int month, int day, int birthday, int today) { //this is for the thirs bullet point on assignment 
    this.year = year; 
    this.month = month; 
    this.day = day; 
    this.birthday = birthday; 
    this.today = today; 
    } 

    public class MoreDates { 

    public void printDate(Date date) {//this is for the fourth bullet point. 
     System.out.println(date.year); 
     System.out.println(date.month); 
     System.out.println(date.day); 
     System.out.println(date.birthday); 
     System.out.println(date.today); 
    } 

    public void main(String[] args) { 
     this.birthday = 17; 
     this.today = 29; 
    } 
    } 
} 
+0

Ваш 'метод main' ничего не делает, но назначить' birthday' и 'today'. Кроме того, главная ** должна быть «публичной статической пустотой» - твой - нет. –

+0

Добро пожаловать в переполнение стека. Пожалуйста, уменьшите это до [mcve] - в настоящее время вы включили загрузку кода и загрузку нерелевантных деталей о своем назначении, но действительно важный бит, в котором вы говорите, что не так, просто «мой основной метод не работает». Прочтите https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/, а также учтите, что целью Stack Overflow является создание хранилища высококачественных вопросов и ответов , –

+0

Вы сказали, что «сделали все это», но вы не создали «Date'' Objects »в основном методе. – badjr

ответ

0

Вы главный метод не static. Следовательно, JVM не запускает его при попытке выполнить вашу программу.

+0

Когда я добавляю статическую информацию, он говорит, что метод некорректен? – Lexi

+0

@Lexi yes, потому что статический метод не может иметь ссылок на нестатический контент. У вас есть немного больше рефакторинга, помимо того, что метод статичен, но нестатический метод 'main' является причиной того, что он не будет работать. – nasukkin

1

В Java вы создаете новый объект, используя ключевое слово «новый» и ваш он должен выглядеть как этого

Date birthday=new Date(); 

Key ошибка в коде: Вы сделали основной метод как часть вложенного класса. В Java имя файла должно совпадать с именем класса, которое имеет основной метод. Пример. Если ваш основной метод присутствует в классе с именем moreDates, имя файла должно быть больше.

JVM определяет основной метод, с помощью синтаксиса это и ожидаемый синтаксис

public static void main(String[] args) { 
} 
1

решить мою проблему:

class Date { 

int year;//the next three lines are for the second bullet point 
int month; 
int day; 
int birthday; 
int today; 

public Date() {//this is the constructor that takes no parameters 
    this.year = 0; 
    this.month = 0; 
    this.day = 0; 

} 

public Date(int year, int month, int day) { //this is for the thirs bullet point on assignment 
    this.year = year; 
    this.month = month; 
    this.day = day; 
} 
} 

public class MoreDates { 

    public static void printDate(Date date) {//this is for the fourth bullet point. 
     System.out.println(date.year); 
     System.out.println(date.month); 
     System.out.println(date.day); 
     System.out.println(date.birthday); 
     System.out.println(date.today); 
    } 

    public static void main(String[] args) { 
     Date birthday = new Date(1998,11,17); 
     Date today = new Date(2016,11,29); 
     printDate(birthday); 
     printDate(today); 

    } 
} 
Смежные вопросы