Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / JAVA 8 и далее. Самописный класс. вызывать статические методы или объект / 20 сообщений из 20, страница 1 из 1
21.08.2021, 20:52
    #40092434
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Добрый день.

в букварях прописаны два способа использовать методы из сторонних классов
1. сделать метод статическим и вызывать без сборки объекта: ClassName.statMethod("hello");
2. собрать объект из класса ClassGetSomeThing getAnyThing = new ClassGetSomeThing getAnyThing();
и потом все равно использовать методы этого класса тут же, "не отходя от кассы"

в букварях нет точных обоснований в каких случаях использовать тот или другой способ

Вопрос:
- какие принципы выбора того или другого способа использовать методы из сторонних самописных (не из состава java 8) классов?

Заранее спасибо за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
21.08.2021, 21:51
    #40092444
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Pcrepair,

Больше новых топиков не заводи. Закончи со старыми.
...
Рейтинг: 0 / 0
21.08.2021, 22:00
    #40092446
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Есть понятие "состояние" объекта. И если твой метод будет зависеть от этого
состояни (модифицировать, накапливать) то его надо делать методом и создав
экземпляр выполнить операцию для данного экземпляра.

Пример.

Код: java
1.
2.
3.
Balance maytonsBalance = new Balance("1 $");
maytonsBalance.charge("15.30 $");
maytonsBalance.charge("-4.15 $");



Для статического метода обычно никаких состояний не предполагается. Как например
чтобы посчитать синус 30 градусов - тебе не нужен никакой объект. Ты просто считаешь
синус вне любых контекстов. В этом случае обрамляющий объект выступает просто
как пакет. Или как пространство имен которое просто что-то объедияет. В данном
случае слово Math - просто сделано для красоты. Ибо иначе в java нельзя объявить функцию.

Код: java
1.
double val = Math.sin(PI / 6.0)
...
Рейтинг: 0 / 0
22.08.2021, 09:07
    #40092476
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Pcrepair
Заранее спасибо за ответы по ЗАДАННЫМ вопросам
Если бы ещё в вопросе была хотя бы четверть ответа ...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Класс {
  static void МетодРаз() {}
  void МетодДва() {}
}
class Другой {
 Класс.МетодРаз():
 // Класс.МетодДва();  // ЕГГОГ!
 Класс Экземпляр = new Класс();
 Экземпляр.МетодРаз();
 Экземпляр.МетодДва();
}


А после прочтения вашего текста возникает законный вопрос: задлянафига в нём динамические загрузка классов и создание экземпляров класса?
А потом следующий: а если динамика важна, то задлянафига обсуждать разницу статически и нестатических методов, если от способа загрузки класса и создания его экземпляров ничего не зависит?
...
Рейтинг: 0 / 0
22.08.2021, 09:28
    #40092477
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Pcrepair , здесь вопрос не в том что лучше или хуже. Просто есть ситуации:
а) когда во во время компиляции классы не доступны, а во время запуска они есть
б) название класса не известно на момент компиляции

В таких случаях ты не можешь создавать класс через new и нужно прибегать к динамической загрузке (не обязательно через Class.forName()).

Примеры:
1. Некоторые приложения поддерживают разные СУБД и пользователь решает на момент запуска с какой СУБД он работает и какой драйвер подложить.
2. Если ты пишешь библиотеку которая работает с несколькими провайдерами. Например, SLF4J может использовать разную реализацию: logback, log4j, etc.
3. Пишем плагинную архитектуру. Соотвественно классы этого плагина нужно загружать динамически и мы не знаем их заранее.
4. В Java даже есть спецификация SPI (Service Provider Interfaces) как раз для случаев когда реализацию какого-либо интерфейса можно было бы определять на момент запуска. Например, Security Provider типа BouncyCastle так подключается, SAX реализации для обработки XML, etc.

Имей в виду что статически в таких случаях ты работаешь с интерфейсом , он тебе доступен всегда. А динамически загружаешь именно реализацию.

В Maven для таких библиотек есть специальный scope=runtime. Такая библиотека попадет в итоговый артефакт, но не будет доступна на этапе компиляции.
...
Рейтинг: 0 / 0
22.08.2021, 10:31
    #40092482
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Господа, вы много пишите.
Неужели автор 10 лет программируя на дельфи не знает данный вопрос.
Не принижайте ЯП дельфи.
Это не пыха, бейсик и 1С
...
Рейтинг: 0 / 0
22.08.2021, 11:26
    #40092488
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
"Спасибо, ваше мнение очень важно для нас".
...
Рейтинг: 0 / 0
22.08.2021, 11:52
    #40092490
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Basil A. Sidorov,

Да!)) Дельфи в обиду не дам.
Ты же написаль "в вопросе нет даже четверти ответа)"…!
...
Рейтинг: 0 / 0
23.08.2021, 05:56
    #40092572
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Дельфи-то каким боком к кривизне вопроса по Java?

P.S.
"Ты своё плети, а моего - не путай".
...
Рейтинг: 0 / 0
23.08.2021, 10:33
    #40092610
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Basil A. Sidorov,
Не обязательно дельфи. Важно что чел с опытом в 10лет.
Ну и не обслуживает свой топик.
Мы тут вам не SO))
...
Рейтинг: 0 / 0
23.08.2021, 10:36
    #40092612
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
PetroNotC Sharp, прокачиваешь свой акк? Твоих постов всегда больше.
...
Рейтинг: 0 / 0
23.08.2021, 10:44
    #40092615
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
mayton,
Мы разговариваем о фактах. А ты как всегда...
Факты что ТС покинул топик. И факт что вопрос странный для опытного прогера.
Попробуй говорить хоть иногда о фактах.
...
Рейтинг: 0 / 0
23.08.2021, 10:45
    #40092616
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
mayton,
Java 8 и далее. Использовать глобальные переменные или локальные?
...
Рейтинг: 0 / 0
23.08.2021, 10:55
    #40092618
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Не надо придумывать. Ничего ТС не покинул. Он просто 2 дня думает.
...
Рейтинг: 0 / 0
23.08.2021, 11:07
    #40092622
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
mayton
Не надо придумывать. Ничего ТС не покинул. Он просто 2 дня думает.
факт - на текущий день 2 дня отсутствие.
Причина по словам мембера mayton имеющего доп инфу - обдумывает.
))))))) : LOL
...
Рейтинг: 0 / 0
23.08.2021, 11:10
    #40092624
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
mayton,
На вопрос выше ответь, а я пошел "обдумывать".
...
Рейтинг: 0 / 0
23.08.2021, 11:25
    #40092626
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Что-то мне не интересно стало тебе отвечать. Вроде чувствую себя как Паниковский и Балаганов.
Надеюсь понимаешь литературную отсылку.
...
Рейтинг: 0 / 0
23.08.2021, 11:32
    #40092630
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
mayton,
Не понравилось? Мне тоже твой пост на ровном месте.
...
Рейтинг: 0 / 0
23.08.2021, 13:57
    #40092674
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
петро, не волнуйси ты так. Я внимательно наблюдаю за всем тем тролло что ты тут разводишь

и да: Заранее спасибо!!! за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
23.08.2021, 14:10
    #40092683
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JAVA 8 и далее. Самописный класс. вызывать статические методы или объект
Pcrepair
петро, не волнуйси ты так. Я внимательно наблюдаю за всем тем тролло что ты тут разводишь

и да: Заранее спасибо!!! за ответы по ЗАДАННЫМ вопросам
я спокоен как и ты "железные нервы".
От твоего поста вопрос умнее то не стал).
Его новички задают.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JAVA 8 и далее. Самописный класс. вызывать статические методы или объект / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]