Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что лучше static или экземпляр класса!? 
V
    Опции темы
freshAngel
  Дата 1.8.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Привет.
Вот я создал класс, который оперирует с фреймом.
Вызываю его стандартным методом:
Код

public static void main(String[] args) { 
JFrame frame = new JFrame();
MyClass classvariable = new MyClass(frame);
}


В этом случае необходимо создавать экземпляр класса, и все методы вызывать типа:
Код

classvariable.method();


Или все - же лучше работать  со статистическими классами, методами и полями!?
Что - бы удобнее было вызывать методы не создавая экземпляр класса.
Код

package mypackage;
classvariable.method();

PM MAIL   Вверх
duk
Дата 1.8.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: 4
Всего: 4



Это зависит от того, какая задача решается. Где-то удобно использовать статические методы (есть куча классов-утилит), где-то статические поля как константы. 



Цитата(freshAngel @  1.8.2009,  16:04 Найти цитируемый пост)
Или все - же лучше работать  со статистическими классами, методами и полями!?
Что - бы удобнее было вызывать методы не создавая экземпляр класса.
Выделить всёкод Java
1:
2:
    
package mypackage;
classvariable.method();


Что значит статический класс? Есть внутренние классы которые помечаются как static название статические к ним не совсем подходит.
В примере вы вызываете метод как нестатический.

И вообще опишите конкретнее задачу и что Вам нужно.
PM MAIL   Вверх
freshAngel
  Дата 1.8.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Цитата(duk @ 1.8.2009,  16:37)
И вообще опишите конкретнее задачу и что Вам нужно.

Написал класс, которому в конструктор передается фрейм, далее на этот фрейм вешает лисинер сворачивания в трей ну и еще пара полезных функций.

- Есть внутренние классы которые помечаются как static название статические к ним не совсем подходит.

Да, их я и имел в виду.
Как вариант сделать вложенный "статистический" (а что это тогда за класс со static), а во все остальных классах, вызывать без создания экземпляра....

Или как лучше сделать!?
PM MAIL   Вверх
duk
Дата 1.8.2009, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 19.7.2007

Репутация: 4
Всего: 4



Цитата(freshAngel @  1.8.2009,  16:47 Найти цитируемый пост)
Как вариант сделать вложенный "статистический" (а что это тогда за класс со static)

Есть внутренние классы, экземпляры которых можно создать исключительно из объектов класса который содержит в себе внутренний класс. 
В свою очередь экземпляры внутренних классов, помеченных static можно создавать где угодно и когда угодно. Они очень похожи на внутренние классы С++.

Что касается статических методов, то я бы их использовал для выполнения простых операций. Передали, к примеру значение какого-то примитивного типа - получили результат. 

Вашу задачу, лично я решил бы без использования статики + Вам будет необходимо изменить код, так как определенный конструктор уже не понадобится (при использовании статических методов). Хотя, тут дело вкуса. Возможно Вам будет удобнее использовать, в данном случае, статические методы. Не знаю. Но самое главное - не стоит этим злоупотреблять.

Это сообщение отредактировал(а) duk - 1.8.2009, 17:27
PM MAIL   Вверх
freshAngel
  Дата 2.8.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 1.10.2008

Репутация: нет
Всего: нет



Спасибо большое!
Понял!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.