![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Добрый день,
Решил переписать все разбить на много классов и сразу столкнулся с проблемой. Христоматийный пример. Есть 3 класса. Майн, второй и третий. В майне делаю объект второго класса, во втором классе определяю переменную, в третьем классе через объект(определенный в майне) пытаюсь вызвать переменную из второго класса - НЕ ВИДИТ. Как правильно оформить, куда копать? ЧТО делать?!
|
|||
|
||||
| revenforv |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 6.8.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Сделать в Main static SecondClass testOb = new SecondClass(); тогда будет работать.
В третьем классе не видит переменную, потому что переменная существует только в рамках объекта класса Main, а их нет ни одного.
Или тогда в третий класс ссылку на объекта Main'а, если по логике должно быть обращение именно к полю объекта (а не класса). Это сообщение отредактировал(а) revenforv - 20.8.2009, 20:32 |
|||
|
||||
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
спасибо, но не получилось!
вот, чуть чуть сделал код осмысленнее
Вот, что пишет компилятор: java.lang.ExceptionInInitializerError Caused by: java.lang.RuntimeException: Uncompilable source code - package testOb does not exist at test1.ThirdClass.<init>(Main.java:24) at test1.Main.<clinit>(Main.java:9) Could not find the main class: test1.Main. Program will exit. Exception in thread "main" Java Result: 1 |
|||
|
||||
| revenforv |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 6.8.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Еще раз.
Во-первых, заменяем testOb.i = 25 на Main.testOb.i = 25 Во-вторых, делаем вот так:
Добавлено через 9 минут и 35 секунд В общем должно получиться что-то вроде этого:
Хотя если честно это похоже на то, как если бы я хотел удалить себе гланды через задний проход. Вроде бы и рука и гланды мои и результат тот, который нужно, но процесс выглядит по меньшей мере странно. Это сообщение отредактировал(а) revenforv - 20.8.2009, 20:46 |
||||||
|
|||||||
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
спасибо!
пример я составил специально легкий для понимания, программа у меня чуть чуть другая будет, но думаю и там тоже будет все криво, но я просто начал недавно изучать =) |
|||
|
||||
| goodday1941 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: 1 Всего: 9 |
что за статик объекты?
отвыкайте от такого сразу... используют иногда но в 99% случаев не используют ) ааааааааа.... сей класс вообще из разряда "изатерического" программирования:
собственно и сам автор это понимает )) если нужен вызов чего-либо с класса B в классе C то это должно выглядеть как-то так (не проверял, возможны ошибки):
-------------------- SCJP 6 |
||||
|
|||||
| revenforv |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 6.8.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Ну это понятно.. просто автор попросил - я предложил вариант. А вот про static объекты это вы зря. Кстати очень полезно бывает и весьма элегантное решение получается, например System.out ;) Хотя и правда, это бывает полезно весьма редко. |
|||
|
||||
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
goodday1941, попробовал твой код - не получился, хотя вроде поправил, но ладно
Скажите, а где есть документация с поиском? например тут http://java.sun.com/javase/6/docs/api/ как-то все громоздко, я не сильно пока разбираюсь, а мне надо быстро найти метод setLayout |
|||
|
||||
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
Помогите, почему не запускается??
Пишет, что BoxLayout не "shared". Я не хочу все в конструктор запихивать, а то он разростается неимоверно со временем, хотел методами все сделать, а тут такое, как правильно поступить? Код весь! Можете попробовать, убрав package.
|
|||
|
||||
| Farsong |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.8.2009 Репутация: нет Всего: нет |
извиняюсь, сам BoxLayout криво сделал
|
|||
|
||||
![]()
|
| Правила форума "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. |