Вопрос №175 от пользователя user-2ef819a3e9c40b40 в уроке «Модуль 2. Урок 3. Работа с экземплярами в Java.», курс «Введение в Java»

user-2ef819a3e9c40b40

Помогите не могу пройти урок. Во-первых, что значит "создайте метод"? Про методы не было ни слова.

Далее - оба варианта компилятся, но первый запускается с ошибкой, второй нормально, но ни один не подходит как успешный. Покажите что не так. Спасибо.

1

public class Main {

    public static House createHouse(){
        // BEGIN
    House house = new House();
    house.address = "str1";
    house.countOfFloors = 5;
    house.appartmentsCount = 1;
    house.owner = "Max";
        // END
        return house;
    }

}

2

class Main {

  public static void main(String... args) {
    House house = new House();
    house.address = "str1";
    house.countOfFloors = 5;
    house.appartmentsCount = 1;
    house.owner = "Max";
  }
}
10 0

user-2ef819a3e9c40b40

Помогите не могу дальше сдвинуться принципиально не понимаю в чем дело

0

Вячеслав Ковалевский

Добрый день, я сегодня гляну, сейчас в дороге. Заодно если можно добавьте меня в Skype (b0noii).

0

Вячеслав Ковалевский

Первое Ваше решение практически верное на 100 процентов с небольшим замечанием:

House house = new House();
house.address = "str1";
house.countOfFloors = 5;
house.appartmentsCount = 10;
house.owner = "Max";

appartmentsCount не 1 а 10ть.

Плюс класс House в коде не реализован, для прохождения задачи его так же нужно реализовать (взгляните на файл House.java).

0

user-2ef819a3e9c40b40

Спасибо всем, двигаемся дальше )

0

user-2ef819a3e9c40b40

Решение система приняла, однако осталось пара вопросов.

1) Что такое return house; (если это будет в следующих уроках, то ладно) 2) После успешной компиляции ввожу java Main, и получаю следующее:

root@d196e1c9db17:/usr/src/app# java Main
Error: Main method not found in class Main, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

Спасибо!

0

Роман Черепанов

1) ключевое слово return возвращает ссылку на созданный в методе объект house 2) описанная вами ошибка говорит, что в вашем классе Main нет метода main, который используется при запуске программы виртуальной машиной (команда java). Но для проверки программы на правильность вы не должны запускать ваш класс с помощью команды java. Когда вы нажимаете кнопку Run, выполняются следующие команды: javac Test.java; java Test (смотрите файл Makefile). Т.е. происходит компиляция Test.java, а потом выполнение класса Test. А в классе Test.java есть метод main, с которого и начинается выполнение программы.

4

user-8265a65438e007d2

Роман, у Вас один исполняемый файл. В котором прописан void. Вячеслав про это еще не рассказывал но думаю ждать осталось не долго.

0

Stanislav Yechshenko

Никак не пойму, что же делаю не так. В класс main.java пропечатал это:

public class Main {

    public static House createHouse();
      House house = new house();
      house.address = "str1";
      house.countOfFloors = 5;
      house.appartmentsCount = 10;
      house.owner = "Max";
        return house;
    }

}

Потом взял класс house.java впечатал это:

public class House {

    public static House createHouse();
      House house = new house();
      house.address = "str1";
      house.countOfFloors = 5;
      house.appartmentsCount = 10;
      house.owner = "Max";
        return house;
    }

}

Компиляция с пачкой ошибок. Где что не так подскажите плиз?

0

Dmitry Protopopov

Доброе утро, Станислав. Скинули бы лог того, что пишет компилятор. Так точнее можно ответить. Но вообще часть ошибок можно и так назвать:

  1. Вы указали, что файлы с исходными кодами называются main.java и house.java . Имена файлов должны полностью совпадать с именами открытых( public ) классов, описываемых в этих файлах( Main и House соответственно). Регистр важен.
  2. Вы вызываете конструктор (new house()) для класса House. Имя конструктора должно полностью совпадать с именем класса, в котором этот конструктор находится. Регистр важен.
  3. Вы пытаетесь в классе Main обратиться к полям экземпляра класса House , которых в Вашем коде не существует. Это всё не будет работать, пока Вы не опишете класс House в соответствии с заданием. Как это делается описывается в лекции.

По факту, в данном задании класс Human только описательный класс. У него будет ряд свойств(полей address , countOfFloors , appartmentsCount , owner ), но никаких методов не нужно. Вам нужно его переписать полностью. Класс Main в общем реализован правильно. Только исправьте то, что я написал в первых двух пунктах.

1

Stanislav Yechshenko

Спасибо, все ок, заработало.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 декабря 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 декабря 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 декабря 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 декабря 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
1 декабря 5 месяцев