Форум программистов, компьютерный форум, киберфорум
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
6 / 6 / 1
Регистрация: 01.04.2015
Сообщений: 21
1

Java core - нулевой уровень

26.02.2016, 11:23. Показов 532. Ответов 1
Метки нет (Все метки)

Здравствуйте, уважаемые посетители форума. У меня есть вопросы на которые не смог найти ответов у гугла. Прошу вашей помощи.

1. Изучаю Java по книге "Философия Java 4-е издание" книга представляет собой перевод...очень корявый перевод. В ней встречаются не точности. Вот одна из них:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package begin;
 
class Villain{
    private String name;
    
    protected void set(String nm){
        nm = name;
    }
    public Villain(String name){
        this.name = name;
    }
    public String toString(){
        return "This is object Villain, her name = " + name;
    }
}
 
public class Orc extends Villain {
    private int orcNumber;
    
    public Orc(String name, int orcNumber){
        super(name);
        this.orcNumber = orcNumber;
    }
    public void change(String name, int orcNumber){
        set(name);
        this.orcNumber = orcNumber;
    }
    public String toString(){
        return "Orc" + orcNumber + ": " + super.toString(); 
    }
 
    public static void main(String[] args) {
        Orc orc = new Orc("Limburger", 12);
        System.out.println(orc);
        orc.change("Tom", 19);
        System.out.println(orc);
        
 
    }
 
}
Output:
Orc12: This is object Villain, her name = Limburger
Orc19: This is object Villain, her name = Tom

Код точно соответствует коду из книги стр.186

При запуске кода в Eclipse выходит Output:
Orc12: This is object Villain, her name = Limburger
Orc19: This is object Villain, her name = Limburger

При изменении родительского метода на
protected void set(String name){
this.name= name;
}
Ошибка исправляется, Output:
Orc12: This is object Villain, her name = Limburger
Orc19: This is object Villain, her name = Tom

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

Есть ли альтернатива данной книги в русском переводе по которой реально учиться?(английский язык изучаю параллельно)

Вопрос номер 2.

Для сравнения объектов используют метод equals()
Он выглядит так:
public boolean equals(Object obj) {
return (this == obj);

по сути вместо его можно использовать оператор ==
Чтобы метод equals() работал его нужно переопределить.
Вопрос: Зачем его каждый раз нужно переопределять? Нельзя было сделать, чтобы он сразу был рабочим и без переопределения сравнивал объекты? "Зачем этому чудо велосипеду каждый раз прикручивать педали, чтобы на нем поехать?" Вопрос звучит, как вопрос к компании Oracle или Sun. Но мне вот интересно, может так и задумано, что его нужно переопределять, может в реальном коде это больше плюс, чем минус.

Вопрос номер 3:
Static и final. Знаю, что статические переменные и контейнеры инициализируются в первую очередь, статический значит постоянный. А final значит, что нельзя изменить к примеру переменную. Они похожи, но в каких случаях стоит использовать в реальном коде static, а когда final?

Вопрос номер 4:
В Java запрещено множественное наследование от разных базовых классов.
У нас есть:
class A class B class C

Чтобы провести наследование от всех выше указанных классов, нужно отнаследовать их между собой.
class A -> class B -> class C

Теперь когда я наследую для class F extends C то я получаю доступ ко всему дереву наследования.
Вопрос: Это множественное наследование?

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2016, 11:23
Ответы с готовыми решениями:

Начальный уровень Java, обьясните
Доброго вечера! объясните пожалуйста часть кода: /* У каждого животного должна быть хозяйка....

Мои мысли о Java (уровень - zero)
Здравствуйте дорогие друзья! Хочу поделить с вами своими мыслями и суждениями в области...

Нулевой уровень чернил в Xerox 5325
Закончился картридж на Xerox 5325, распечатываю, ставлю новый. Долго шумит и выдает, что уровень...

Заправка картриджа HP 122 (нулевой уровень чернил после заправки)
Добрый вечер! Сегодня впервые заправил картридж HP 122. Заправлял по инструкции. Вроде он работатет...

1
633 / 525 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
29.02.2016, 22:04 2
1. Хреново распознаный скан это, не иначе.
2. Один, два.
3. final - это константа, static - поле, к которому можно обратиться без создания экземпляра класса, в котором поле объявлено. Когда и что использовать зависит от ситуации. Но, в принципе, static - это либо константа, используемая внутри класса, либо какой-либо утилитарный метод, ввиду того, что в Java нет самостоятельных функций.
4. множественное наследование в Java имеется. Но оно разрешено только для интерфейсов, т.к. интерфейс не содержит конкретной имплементации. В Java 8 интерфейсы с одинаковыми default-методами, при множественном наследовании принудительно заставляют переопределять имплементацию каждого default-метода.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.02.2016, 22:04

Java core. Цикл for
Подскажите, почему бесконечный цикл в типах byte, short при сигнатуре for (byte x=-125;x=125;x++);...

Что входит в Java core?
Хотелось бы все разложить по пунктам

Java Core - Senior. Нидерланды
Back-end Developer (Core Java) Rotterdam, The Netherlands About the client: Dutch based...

Как сделать чтобы уровень змейки и уровень яблока совпадал?
Здравствуйте. Как сделать чтобы уровень змейки и уровень яблока совпадал?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.