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

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

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

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

17.11.2014, 00:57. Просмотров 259. Ответов 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     Не изменяется поле, наследуемое от родительского класса
Посмотрите здесь:

Не изменяется стиль текста Android
Стандартное поисковое поле Android
Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Android
Android Реализация отправки данных из EditText приложения Android в поле таблицы БД под СУБД Oracle 11g и в поле БД под СУБД MSSQL
Android Вызов класса из класса
Android Нужна программа по типу родительского контроля
Static поле у внутреннего класса Android
Android Фрагмент и статическое поле
Android Цвет шрифта изменяется не только у нажатого дочернего элемента но и у др. доч. элементов в соседних группах
Не изменяется текст в TextView Android
Значение в БД не изменяется Android
Иконка приложения не изменяется Android

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

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

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