Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 596
#1

Не изменяется поле, наследуемое от родительского класса - Программирование Android

17.11.2014, 00:57. Просмотров 266. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Не пойму ошибку.
Имеется класс:
Кликните здесь для просмотра всего текста
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
 * Abstract class to build collections
 * @param <T>
 */
public class EasyCollection<T> {
    /**
     * Inner class for storing the node collection.
     * @param <T>
     */
    protected static class Node<T> {
        public Node<T> prev;
        public Node<T> next;
        public T value;
 
        /**
         * Constructor 1
         * @param value - Item value which will be push into the collection.
         */
        public Node(T value) {
            this(null, value, null);
        }
 
        /**
         * Constructor 2
         * @param prev - Pointer to the previous item of the collection.
         * @param value - Item value which will be push into the collection.
         * @param next - Pointer to the next item of the collection.
         */
        public Node(Node<T> prev, T value, Node<T> next) {
            this.prev = prev;
            this.value = value;
            this.next = next;
        }
    }
 
    protected Node<T> items;
    protected long size;
 
    public EasyCollection() {
        this.items = null;
        this.size = 0;
    }
 
    /**
     * Check whether the collection is empty
     * @return Check result
     */
    public boolean isEmpty() {
        return items == null;
    }
 
    /**
     * Remove all items in the collection
     */
    public void clear() {
        size = 0;
        items = null;
    }
 
    /**
     * Get the number of items in the collection.
     * @return - Item count.
     */
    public long count() {
        return size;
    }
}


И собственно код самого списка:
Кликните здесь для просмотра всего текста
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
42
43
/**
 * Collection for storing pointers to objects in a list.
 * @param <T>
 */
public class EasyList<T> extends EasyCollection<T> {
    private long size;
    private Node<T> top;
 
    /**
     * Constructor 1
     */
    public EasyList() {
        super();
        top = null;
    }
 
    /**
     * Constructor 2
     * @param value - Item value which will be push into the collection.
     */
    public EasyList(T value) {
        this();
        add(value);
    }
 
    /**
     * Add a new item to the list.
     * @param value
     */
    public void add(T value) {
        ++size;
 
        if(items == null) {
            top = items = new Node<T>(value);
            return;
        }
 
        while(items.next != null)
            items = items.next;
 
        items.next = new Node<T>(items, value, null);
    }
}


При вызове второго конструктора EasyList count равно 0.
Java
1
2
EasyList<Integer> l = new EasyList<Integer>(2);
l.count() //=0, должно быть 1
У меня чувство, что я что-то упустил по ООП, может кто-нибудь объяснить, почему так происходит?

Добавлено через 23 минуты
Сейчас попробовал переопределить функцию count() базового класса, и все стало работать, но не понятно, почему не работает без переопределения, почему count() класса EasyCollection всегда возвращает ноль?

Добавлено через 4 минуты

Не по теме:

Уже, блин, спать похоже пора


Прошу прощения, поле в потомке тоже самое переопределил)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 00:57     Не изменяется поле, наследуемое от родительского класса
Посмотрите здесь:

Static поле у внутреннего класса - Программирование Android
Есть класс, скажем Building, в нем есть еще один класс, скажем Floor. И вот этот Building хранит несколько экземпляров класса Floor. Что...

Значение в БД не изменяется - Программирование Android
При клике по кнопке должны вноситься изменения в локальную БД, что сразу должно отразиться на экране. package...

Нужна программа по типу родительского контроля - Программирование Android
Подскажите если ктото что то знает найти таковую программу..... Есть смартфон на андроиде, нужна такая программа которая бы ограничилабы...

Не изменяется стиль текста - Программирование Android
Здравствуйте. Хочу спросить, может кто сталкивался с таким. Есть два вот таких кода 1. if (mCheckI.isChecked()) { ...

Иконка приложения не изменяется - Программирование Android
Добрый день! Хотел бы поставить свою иконку вместо стандартной. смотрел данную тему: ...

Доступ к методу родительского класса из метода свойства родительского класса - C#
Не знаю правильно ли написал тему, ну суть такая, есть класс который описывает допустим шарик, а есть класс который описывает массив этих...

Обращение к одному дочернему полю родительского класса через другое дочернее поле - C# WPF
Здравствуйте, пишу на форумы первый раз, потому, пожалуйста, не горите, если что не так, но идентичную проблему я не нашел. Суть проблемы:...

Найти каким триггером изменяется поле - Oracle
Добрый день! Имеется таблица, поле в которой изменяется триггерами других таблиц. Можно ли как-то узнать какими именно? Может в...

Приведение родительского класса к дочернему? - Java
Здравствуйте. Прошу помочь. Вопрос в заголовке темы. Есть 3 класса: public class A { public String str() { ...

Конструктор родительского класса с аргументом - Java SE
abstract class Animal { private String name; public String getName() { return name; } public Animal (String...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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