• 0.00

  • 0.00

level27.lessn15.big01

Программа была написана около месяца назад и все работало. Сейчас же, когда я снова решил проверить ее функциональность и запустил класс Restaurant, программа вывела вот это:
С чем это может быть связано? Код я не менял, а программа работать перестала. Помогите пожалуйста разобраться в чем проблема

level31.lesson15.big01

Задание 12


Сегодня мы подготовимся к реализации команды ZipContentCommand. Она будет заниматься получением
содержимого архива. Содержимое архива – это упакованные файлы и папки, но нам было бы интересно
узнать не только имена объектов архива, но и их размер до и после сжатия, степень сжатия и метод
сжатия.
Создадим класс FileProperties, который будет отвечать за свойства каждого файла в архиве. Свойства – это
набор, состоящий из: имя файла, размер файла до и после сжатия, метод сжатия.
1. Создай класс FileProperties
2. Добавь в него приватные переменные класса:
2.1. Имя String name
2.2. Размер в байтах long size
2.3. Размер после сжатия в байтах long compressedSize
2.4. Метод сжатия int compressionMethod
3. Добавь сеттеры и гетеры для них
4. Добавь конструктор FileProperties(String name, long size, long compressedSize, int
compressionMethod)
5. Добавь метод long getCompressionRatio(), который будет считать степень сжатия по формуле:
100 — ((compressedSize * 100) / size)
6. Перегрузи метод String toString(), чтобы он возвращал строку по шаблону: “name size Kb
(compressedSize Kb) сжатие: compressedSize%”, если размер size больше нуля, иначе он должен
вернуть только имя файла. Нулевой размер может быть, например, у директории. Не забудь
перевести байты в килобайты, а их не столько же, сколько граммов в килограмме, и даже не
столько, сколько блинов у меня на столе… Хм, похоже мне пора перекусить…

Нужна помощь! Задание прошел, но не могу понять почему программа не хочет работать:

Выберите операцию:
0 упаковать файлы в архив
1 добавить файл в архив
2 удалить файл из архива
3 распаковать архив
4 просмотреть содержимое архива
5 выход
0
Создание архива.
Введите полный путь файла архива:
D:\user
Введите полное имя файла или директории для архивации:
README.txt
Вы неверно указали имя файла или директории.
Выберите операцию:
0 упаковать файлы в архив
1 добавить файл в архив
2 удалить файл из архива
3 распаковать архив
4 просмотреть содержимое архива
5 выход

level29.lesson15.big01 Задание 12

Задание 12.


12.1. Объединение условных операторов.
12.1.1. Добавь внутренний метод, сообщающий, могут ли быть перевезены пассажиры
boolean canPassengersBeTransferred() в класс Car. Метод должен возвращать true, если
водитель доступен isDriverAvailable и есть топливо fuel.
12.1.2. Перепиши метод getNumberOfPassengersCanBeTransferred(), объединив условные
операторы (используй метод canPassengersBeTransferred()).
12.2. Объединение дублирующихся фрагментов в условных операторах. Перепиши метод
startMoving(), чтобы в нем не было повторяющихся вызовов функций.
12.3. Замена магического числа символьной константой. Замени магические числа в методе
getMaxSpeed() на константные переменные метода: MAX_TRUCK_SPEED,
MAX_SEDAN_SPEED и MAX_CABRIOLET_SPEED.
12.4. Замена условного оператора полиморфизмом.
12.4.1. Переопредели метод getMaxSpeed() в подклассах, избавившись от условного
оператора.
12.4.2. Метод getMaxSpeed() в классе Car сделай абстрактным.

Подскажите что не так, вроде все по условию

public abstract class Car {
    static public final int TRUCK = 0;
    static public final int SEDAN = 1;
    static public final int CABRIOLET = 2;


    double fuel;

    public double summerFuelConsumption;
    public double winterFuelConsumption;
    public double winterWarmingUp;

    private int type;

    private boolean driverAvailable;
    private int numberOfPassengers;

    public Car(int type, int numberOfPassengers) {
        this.type = type;
        this.numberOfPassengers = numberOfPassengers;
    }
    public static Car create(int type, int numberOfPassengers) {
        switch (type){
            case TRUCK : return new Truck(numberOfPassengers);
            case SEDAN : return new Sedan(numberOfPassengers);
            case CABRIOLET : return new Cabriolet(numberOfPassengers);
            default: return null;

        }
    }

    public void fill(double numberOfLiters) throws Exception
    {

            if (numberOfLiters < 0)
            {
                throw new Exception();
            }
                fuel += numberOfLiters;
    }

    private boolean canPassengersBeTransferred() {
        if(isDriverAvailable() && fuel > 0) return true;
        else return false;
    }
    public boolean isSummer(Date date , Date summerStart, Date summerEnd) {
        return date.after(summerStart) && date.before(summerEnd);
    }
    public double getWinterConsumption(int length) {
        return length * winterFuelConsumption + winterWarmingUp;
    }
    public double getSummerConsumption(int length) {
        return length * summerFuelConsumption;
    }

    public double getTripConsumption(Date date, int length, Date SummerStart, Date SummerEnd)
    {
        double consumption;

        if(!isSummer(date, SummerStart, SummerEnd)) {
            consumption = getWinterConsumption(length);
        }
        else {
            consumption = getSummerConsumption(length);
        }
        return consumption;
    }

    public int getNumberOfPassengersCanBeTransferred() {
        if (!canPassengersBeTransferred()) return 0;
        return numberOfPassengers;
    }

    public boolean isDriverAvailable() {
        return driverAvailable;
    }

    public void setDriverAvailable(boolean driverAvailable) {
        this.driverAvailable = driverAvailable;
    }

    public void startMoving() {

        if (numberOfPassengers > 0) {
            fastenPassengersBelts();
        }
        fastenDriverBelt();
    }

    public void fastenPassengersBelts() {
    }

    public void fastenDriverBelt() {
    }

    public abstract int getMaxSpeed();
}


public class Truck extends Car
{

    public Truck(int numberOfPassengers)
    {
        super(Car.TRUCK, numberOfPassengers);
    }

    @Override
    public int getMaxSpeed() {
    final int MAX_TRUCK_SPEED = 80;
    return MAX_TRUCK_SPEED;
}
}


public class Sedan extends Car
{
    protected Sedan(int numberOfPassengers)
    {
        super(Car.SEDAN, numberOfPassengers);
    }

    @Override
    public int getMaxSpeed()
    {
        final int MAX_SEDAN_SPEED = 120;
        return MAX_SEDAN_SPEED;
    }
}


public class Cabriolet extends Car
{
    public Cabriolet(int numberOfPassengers)
    {
        super(Car.CABRIOLET, numberOfPassengers);
    }

    @Override
    public int getMaxSpeed()
    {
        final int MAX_CABRIOLET_SPEED = 90;
        return MAX_CABRIOLET_SPEED;
    }
}

Import в IntelliJ IDEA

Подскажите пожалуйста как импортировать класс в IntelliJ IDEA, если проект не является из курса javarush. Я создал новый проект, создал там классы, но не получается импортировать один класс в другой. Заранее благодарен!

level28.lesson15.big01 Задание 16

Задание 16


Ты молодец, большая работа позади! Теперь тебе легко будет мониторить вакансии для трудоустройства :)
Сейчас Aggregator использует только одну стратегию сбора вакансий — с ХэдХантера.

1. По аналогии с HHStrategy добавь стратегию для Мой круг.
Назови класс MoikrugStrategy, реализуй метод getVacancies.

Вот тебе пример ссылки:
moikrug.ru/vacancies?q=java+Dnepropetrovsk

Пример ссылки на вакансию:
moikrug.ru/vacancies/560164256

2. В методе main создай провайдер для MoikrugStrategy. Передай этот провайдер в конструктор Model.
Это удобно сделать, т.к. модель принимает много провайдеров.
Остальную логику менять не нужно. Видишь, как легко расширять функционал?
От правильной архитектуры зависит многое.

ВНИМАНИЕ: ОСОБЕННОСТИ ТЕСТИРОВАНИЯ!
HTML код странички c вакансиями с Моего круга, как и ХэдХантера, может меняться. Чтобы эта задача прошла тестирование,
при реализации задания воспользуйся закешированной версией страницы: javarush.ru/testdata/big28data2.html
Это необходимо для тестирования данного задания, после его сдачи проверь работу MoikrugStrategy на реальном сайте.

Не проходит тестирование. Вот класс MoikrugStrategy:

public class MoikrugStrategy implements Strategy
{
    private final static String URL_FORMAT = "https://moikrug.ru/vacancies?page=%d&q=java+%s";
    private static final String userAgent = "Chrome/46.0.2490.80 (jsoup)";
    private static final String referrer = "Mozilla/5.0";
    @Override
    public List<Vacancy> getVacancies(String searchString)
    {


        List<Vacancy> list = new ArrayList<>();
        int pages = 0;
        try
        {
            while(true)
            {
                Document document = getDocument(searchString, pages++);
                Elements all = (Elements) document.getElementsByAttributeValue("class", "job");
                if (all.size() == 0) break;

                for (Element element : all)
                {


                    Vacancy vacancy = new Vacancy();
                    vacancy.setTitle(element.select("title").first().text());
                    Element salaryElement = element.select("salary").first(); //Получаем элемент для зарплаты.
                    String salary = "";
                    if (salaryElement != null) {
                        salary = salaryElement.text(); //Если зарплата указана, то получаем ее значение.
                    }
                    vacancy.setSalary(salary);
                    vacancy.setCity(element.select("address").first().text());
                    vacancy.setCompanyName(element.select("/companies/").first().text());
                    vacancy.setSiteName("http://moikrug.ru");
                    vacancy.setUrl(element.select("title").first().attr("href"));
                    list.add(vacancy);
                }
            }


        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

        return list;
    }

    protected Document getDocument(String searchString, int page) throws IOException {
        String url = String.format(URL_FORMAT, searchString, page);

            Document document = Jsoup.connect(url).userAgent(userAgent).referrer(referrer).get();
            return document;
    }
}

level28.lesson15.big01 Задание 6

Задание 6



1. Слева в панеле Project найди снизу External Libraries. В jsoup найди пакет examples, посмотри классы в этом пакете.

2. По аналогии с реализацией в примерах кода jsoup — реализуй коннекшен к урлу ХэдХантера методом GET.
Это нужно сделать в методе getVacancies класса HHStrategy.
Подсказка: получится объект класса Document.

3. Поставь брекпоинт сразу после коннекшена. Запусти программу в дебаг моде.
Скопируй полученное значение document.html() в буффер.

4. Создай файл с расширением html где-то в корне JavaRushHomeWork.
Вставь содержимое буффера в этот файл и отформатируй его Ctrl+Alt+L, IDEA умеет форматировать HTML.
Ура! Это код страницы HTML :)

5. Реализуй в вакансии (Vacancy) методы equals/hashCode
Alt+Enter — equals() and hashCode()

Не понимаю как сделать пункт №3. Помогите пожалуйста! Два дня сижу над этим дебагом

Это класс HHStrategy:

public class HHStrategy implements Strategy
{
    private static final String URL_FORMAT = "http://hh.ua/search/vacancy?text=java+%s&page=%d";

    @Override
    public List<Vacancy> getVacancies(String searchString)
    {
        try
        {
            Document doc = Jsoup.connect(URL_FORMAT).get();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return null;
    }
}