| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Доступность объектов из других классов |
| Автор: Farsong 20.8.2009, 20:20 | ||
| Добрый день, Решил переписать все разбить на много классов и сразу столкнулся с проблемой. Христоматийный пример. Есть 3 класса. Майн, второй и третий. В майне делаю объект второго класса, во втором классе определяю переменную, в третьем классе через объект(определенный в майне) пытаюсь вызвать переменную из второго класса - НЕ ВИДИТ. Как правильно оформить, куда копать? ЧТО делать?!
|
| Автор: revenforv 20.8.2009, 20:24 | ||
| Сделать в Main static SecondClass testOb = new SecondClass(); тогда будет работать. В третьем классе не видит переменную, потому что переменная существует только в рамках объекта класса Main, а их нет ни одного.
Или тогда в третий класс ссылку на объекта Main'а, если по логике должно быть обращение именно к полю объекта (а не класса). |
| Автор: Farsong 20.8.2009, 20:38 | ||
| спасибо, но не получилось! вот, чуть чуть сделал код осмысленнее
Вот, что пишет компилятор: 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 20.8.2009, 20:44 | ||||||
Еще раз.
Во-первых, заменяем testOb.i = 25 на Main.testOb.i = 25 Во-вторых, делаем вот так:
Добавлено через 9 минут и 35 секунд В общем должно получиться что-то вроде этого:
Хотя если честно это похоже на то, как если бы я хотел удалить себе гланды через задний проход. Вроде бы и рука и гланды мои и результат тот, который нужно, но процесс выглядит по меньшей мере странно. |
| Автор: Farsong 20.8.2009, 22:40 |
| спасибо! пример я составил специально легкий для понимания, программа у меня чуть чуть другая будет, но думаю и там тоже будет все криво, но я просто начал недавно изучать =) |
| Автор: revenforv 21.8.2009, 00:15 | ||
Ну это понятно.. просто автор попросил - я предложил вариант. А вот про static объекты это вы зря. Кстати очень полезно бывает и весьма элегантное решение получается, например System.out ;) Хотя и правда, это бывает полезно весьма редко. |
| Автор: Farsong 21.8.2009, 14:45 |
| goodday1941, попробовал твой код - не получился, хотя вроде поправил, но ладно Скажите, а где есть документация с поиском? например тут http://java.sun.com/javase/6/docs/api/ как-то все громоздко, я не сильно пока разбираюсь, а мне надо быстро найти метод setLayout |
| Автор: Farsong 21.8.2009, 16:09 | ||
| Помогите, почему не запускается?? Пишет, что BoxLayout не "shared". Я не хочу все в конструктор запихивать, а то он разростается неимоверно со временем, хотел методами все сделать, а тут такое, как правильно поступить? Код весь! Можете попробовать, убрав package.
|
| Автор: Farsong 21.8.2009, 18:29 |
| извиняюсь, сам BoxLayout криво сделал |