![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
FrenchCheese |
|
||||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 8.9.2010 Репутация: нет Всего: нет |
Только начал изучение Java, столкнулся с проблемой...
вот есть такой простенький класс и мне надо написать к нему методы начал с тестов попроще.. почему такой код не работает?
|
||||
|
|||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
Много почему.
Например, строка 18. Вызывается метод add без указания экземпляра класса. Кроме того надо бы членам класса digit (а лучше переименовать его в Digit) установить спецификаторы доступа. -------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
FrenchCheese |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 8.9.2010 Репутация: нет Всего: нет |
это как? и для чего добавлять спецификаторы доступа? зачем они здесь? |
|||
|
||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
вы вызываете add(a, b). Как компилятор догадается в каком классе искать этот метод?
-------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
FrenchCheese |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 8.9.2010 Репутация: нет Всего: нет |
ага, мысль понял, но запутался... как таки ему дать понять где искать? что загуглить? что прочитать? |
|||
|
||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
У вас есть класс digit. В общем случае вы можете обращаться к методам класса через экземпляры данного класса.
Экземплярами класса digit в вашем примере будут как раз a и b. То есть вы можете написать:
Но тогда получается масло масляное. Ведь из метода add мы итак можем обратиться к значению члена a. Так что один параметр можно будет из метода add убрать, немного изменив его тело. Вобщем почитайте самые основы. Что такое классы и как именно они работают. И про ключевое слово this заодно. Почитать можно например на ИНТУИТе -------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
FrenchCheese |
|
||||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 8.9.2010 Репутация: нет Всего: нет |
огромное спасибо! |
||||
|
|||||
duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: 4 Всего: 4 |
Что-то похожее, на Ваш код:
|
|||
|
||||
Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
@duk
Ну вот, все испортили. А человек уже почти сам разобрался ) -------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
nc30 |
|
|||
![]() Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
FrenchCheese,
IMHO, Nofate, указал вам правильное направление. От себя добавлю пару слов. Не стоит без знания самых основ пытаться создавать свои примеры. Иначе с самого начала вы научитесь неправильно мыслить и плохо излагать свои идеи в коде. Переучиваться будет гораздо сложнее + потеряете время. Из хороших книг для обучения могу порекомендовать классический труд Кея Хорстманна и Гари Корнелла "Java 2. Том 1. Основы." (8-е издание). Для себя я охарактеризовал ее, как "продвинутый букварь". Кто-то рекомендует книгу Шилдта "Java. Руководство для начинающих". Лично я считаю, что лучше Хорстманн, т. к. Шилдт менее внятен и не так живо и полно излагает материал. После книги Шилдта я читал Хорстманна с гораздо большим удовольствием и пользой. Также считаю, что приведенный вами пример лучше оставить в покое (без попыток какой-либо модернизации): неоправданное использование вложенных классов, отсутствие какой-либо системы доступа к данным, нарушение уровней взаимодействия объектов (экземпляр класса (== объект) Digit не должен иметь возможности производить операцию сложения объектов Digit: это функциональность более высокого уровня) и т. п. Слишком много потребуется исправлений - это будет уже другой код ![]() Резюмируя: лучше начать с основ и начать правильно. Удачи ![]() Это сообщение отредактировал(а) nc30 - 20.11.2010, 11:16 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |