Смотритель: hubert
  • ,

Проблемы наследования

в одной из задач понял, что не полностью понимаю принципов наследования

package ua.org.gostroy.test;

import java.io.IOException;

    class A {
        String name = "A";

        public A(String name) {
            this.name += name;
        }

        @Override
        public String toString() {
            return name;
        }
    }

    class B extends A {
        String name = "B";

        public B(String name) {
            super(name);
            this.name += name;
        }

//        @Override
//        public String toString() {
//            return name;
//        }
    }

    public class Example {

        public static void main(String[] args) throws IOException {
            B b1 = new B("_test");
            System.out.println(b1);
        }
    }


A_test


хотя я ожидал увидеть

B_test


согласно насследованию считал что у класса B, есть неявный метод toString() с реализацией из ближайшего родителя(то есть, A). но почему тогда был вызван toString() из A, обьект же типа B?
  • ,

Вопросы типа : Почему вывод отличается от задуманного?

1. Вопрос про табуляторы
Код с табуляторами — вывод кривой, почему? Подскажите, почему при запуске моего кода ширина колонок в первой и второй строке не соответствуют друг другу? Как исправить?

public class Tabulator {
    public static void main(String[] args) {

        boolean a, b;
        System.out.println ("A \t B \t UND \t ODER \t XOR \t NOT ");

        a = true; b = true;
        System.out.print (a + "\t" + b + "\t");
        System.out.print ((a&b)+"\t"+(a|b)+"\t");
        System.out.println ((a^b)+"\t"+(!a));

    }
}
  • ,

Сообщения об ошибках в Java

java: class SomeClass is public, should be declared in a file named SomeClass.java
Вот такая вот у меня ошибка. Подскажите что это означает?

В коде:
public class SomeClass {
     
    private static SomeClass c;
    public static void main(String[] args) {
    print5();
    }
     
    static void print5() {
    System.out.println("blablabla");
    }
  • ,

Сомнения в верности решения

Задача была принята сервером, но у меня трудности с пониманием пункта 4 задания, а особенно метода public static Drink getDeliciousDrink(). Т.е. решить-решил, а что решил — не понял.

package com.javarush.test.level14.lesson08.home02;

/* Дегустация вин
1. Создать абстрактный класс Drink с реализованным методом public void taste(), который выводит в консоль «Вкусно»
2. Создать класс Wine, который наследуется от Drink, с реализованным методом public String getHolidayName(), который возвращает строку «День рождения»
3. Создать класс BubblyWine, который наследуется от Wine, с реализованным методом public String getHolidayName(), который возвращает строку «Новый год»
4. Написать реализацию методов getDeliciousDrink, getWine, getBubblyWine
5. Каждый класс и интерфейс должны быть в отдельных файлах
6. Метод main менять нельзя!
*/

public class Solution {
public static void main(String[] args) {
getDeliciousDrink().taste();
System.out.println(getWine().getHolidayName());
System.out.println(getBubblyWine().getHolidayName());
System.out.println(getWine().getHolidayName());
}

public static Drink getDeliciousDrink() {
return new BubblyWine();
}

public static Wine getWine() {
return new Wine();
}

public static Wine getBubblyWine() {
return new BubblyWine();
}
}

Вопросы про Уровень 07.

Уровень 07 — тема 5 — ArrayList. Отличие от Array.

Вопрос: Зачем вообще существует list.set если есть list.add?

Вроде бы list.add может тоже что и list.set и плюс ещё много больше других возможностей имеет. В чём между ними разница, если она есть?
  • ,

Обнуление прогресса

Здравствуйте, не знаю где спросить, поэтому пока здесь. Можно ли обнулить прогресс обучения? Если да, то как это сделать? Был большой перерыв в обучении, хочется пройти все задания по новой, но доступа к ним нет, везде зеленые галочки и все.

Тестовое задание

Всем привет!
Получил вчера тестовое задание от работодателя.
Нужно сделать консольное приложение для хранения контактной информации, которое будет:
— вносить контакт
— выводить все контакты
— искать контакт(по имени)
— удаленять контакта

Хранить данные в форматах (XML, CSV и т.д.).
Проблем написать такое приложение нет, но возникают вопросы:
-Какую структуру сделать?(Сделать один класс Notebook и методы к нему или еще сильнее разбить)
-Во время работы хранить данные в файле, или в программе, периодически сохраняя данные в файл.
Посоветуйте пжл!