Разработка java | SEclub.org
Разработка java
Все новые
Malcolm, a что такое ссылочная переменная и где и как она используется. А классам тоже можно назначать public, private, protected, static?

Ссылка на пост
Всего сообщений: 7795
*
Malcolm
21 авг 2008 в 09:36
FunAT92, напрямую никак нельзя получить, поля, объявленные как private доступны только внутри самого класса. Можно, однако, сделать в классе a метод
public int getM() {
return m;
}
Это называется getter, и такой прием очень часто используется.
Без 7 и 8 главы (которые, как я понимаю, описывают классы), конечно, непросто придется, потому что, например, перегрузка методов обязательно используется в классе MIDlet. Можно, как вариант, продолжать изучать примеры, а уже потом вернуться к 7 и 8 главе. Но в любом случае их вряд ли получится опустить, ведь Java - это не С++, здесь не получится обойтись без объектно-ориентированных средств. Да и неудобно это, ООП - очень мощный механизм, который значительно упрощает программирование более-менее серьезых проектов при грамотном использовании.
21 авг 2008 в 09:45 / Malcolm (2)
*
Nasferatus
21 авг 2008 в 22:53
Может кому то пригодится JGame- ява движок для 2D игр
*
FunAT92
22 авг 2008 в 06:54
Malcolm, спасибо за ответ. У меня тут еще вопросы: зачем надо наследование, если можно проста создать объект класса и получить его копию, зачем нужны абстрактные классы, зачем надо переопредиление методов, и что такое класс object и зачем он нужен. Спасибо!
*
Malcolm
22 авг 2008 в 20:24
FunAT92, да, объект класса ты можешь создать, но что если нужно, чтобы он работал как-то немного по-другому, при этом сохраняя большинство свойств? Пример самого простого абстрактного класса - Canvas из MIDP. Java-машина знает, как работать с этим классом, однако, когда требуется отобразить его на экране, вызывается абстрактный метод paint(), не определенный в самом классе. Ты его должен написать сам, чтобы в твоем классе, наследующем от Canvas, рисовалось то, что тебе нужно, а остальное Canvas (суперкласс) сделает за тебя: тебе не потребуется никакого кода, чтобы отслеживать нажатия клавиш, прикосновения стилуса, переключать полноэкранный режим и так далее. Поскольку Java-машина работает с классом Canvas, она знает, что в любом классе-наследнике paint() будет, и поэтому может его вызывать, хотя заранее и не знает, что именно он будет делать.
Object - это класс, от которого автоматически наследуются все остальные классы.
*
FunAT92
23 авг 2008 в 06:49
Malcolm, a что такое ссылочная переменная и где и как она используется. А классам тоже можно назначать public, private, protected, static?
*
Malcolm
23 авг 2008 в 08:54
FunAT92, на самом деле, любая переменная не элементарного типа - ссылочная. Когда создается объект оператором new, он хранится где-то в памяти, а напрямую с ним ты никогда не работаешь. Вместо этого ты получаешь ссылку на объект, значение которой можно присовить любой ссылочной переменной. По сути, ссылочная перменная говорит, где искать объект. При передаче объекта методу на самом деле передается ссылочная переменная, а не сам объект. На один и тот же бъект могут ссылаться и несколько переменных. Если метод что-то изменит в объекте, то через какую переменную ни обращайся, изменения будут заметны при обращении через любую переменную, которая ссылается на объект.
О втором вопросе: да, можно, обычно классам дается модификатор public, но не всегда.
*
aNNiMON
23 авг 2008 в 10:38
Чё за фигня! Создал я в форме менюшку, повесил 2 функции - ok и выход! Поставил так - Command ok = new Command("Ok",Command.OK,1); и Command Exit = new Command("Выход",Command.EXIT,2) На эмульке все нормально - ok справа, выход слева! Кидаю собранную прогу в тело w200, и облом - добавляется какая-то фигня ("Выбрать") на левый софт, которая не реагирует вообще! А мои функции кинулись все на правый софт! Че делать? Эта фигня тормозит производство!!
23 авг 2008 в 10:38 / aNNiMON (1)
*
FunAT92
23 авг 2008 в 16:29
Malcolm, a методы класса оbject можно использовать визде, или только в наследовании? И как скомпилировать код? Как я понимаю, надо скачать jdk, wtk (netbeans), создать проект в втк (нетбинсе), куда-то положить исходники, и откомпилировать? Но как это сделать, я не знаю, даже в втк, не то чтоб в нетбинсе? Помоги, пожалуйста.
*
DDDENISSS
23 авг 2008 в 18:10
aNNiMON, выбрать появляется в List, если это в форме то страно.
Command ok = new Command("Ok",Comm and.OK,1 ); для софтов помоему всегда должно быть ок. На какие кнопки ставит exit, back, cansol и др. мне и сомому интересно и я всегда "1" писал. Блок прослушивания писал для формы? Метод commandAction писал?
23 авг 2008 в 18:11 / DDDENISSS (1)
*
aNNiMON
23 авг 2008 в 18:56
DDDEN!SSS, я ж не новик! Писал я все, и блок прослушки и commandAction! У меня как раз в List и появляется это, а в остальном норм! Типо так и должно быть? Я просто все проги делал либо в canvas и кидал в тело, либо с формой, но в тело не кидал, а на эмуле открывал!
*
DDDENISSS
23 авг 2008 в 18:59
aNNiMON, попробуй и команду exit создать как и другую тоесть ок или 1. А может так и должно.
23 авг 2008 в 19:01 / DDDENISSS (1)
*
aNNiMON
23 авг 2008 в 19:06
DDDEN!SSS, та я по-разному пытался, всеравно не получается - все на правый софт вешается,или наверное так и должно быть или у меня тело форму не так понимает (что наврядли)!
Для полноценного использования разделов сайта войдите или зарегистрируйтесь.
Общие вопросы | Загрузки Seclub | Форум | Главная
18+ © Seclub.org 2003-2026