Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение методов java и функций delphi / 25 сообщений из 50, страница 1 из 2
20.10.2021, 07:59
    #40105498
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Добрый день.
в делфи, если подумать, функции и процедуры - аналог методов в жава. модуль в дельфи - аналог класса в жава. ну в общем и целом, в простых случаях

в делфи можно сделать так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function DoSomethng(const aParam1, aParam2:Integer; var Output:Integer):boolean;
begin
  Result:=false;
  if(aParam1 + aParam2 > 7) then
  begin
    OutPut := aParam1 + aParam2;
	Result:=true;
  end;
end;

if DoSomethng(4,6, OutPut) then
begin
  ShowMessage(IntToStr(OutPut));
end;


то есть, хотя функция логическая, но результаты работы (числа, строки, записи - все что угодно) все равно можно вывести

Вопрос: в жава такое возможно? если ДА то каким образом

Заранее спасибо за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
20.10.2021, 08:25
    #40105501
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair,
Нельзя простые типы. Только классом.
И считается плохим стилем программирования.
...
Рейтинг: 0 / 0
20.10.2021, 08:30
    #40105502
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair,
Ну и ты out вместо var не поставил)
...
Рейтинг: 0 / 0
20.10.2021, 09:36
    #40105507
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair
Вопрос: в жава такое возможно?


ДА

Pcrepair
если ДА то каким образом


Способов много. Лучший такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public class ResultOfSomething {
  public final boolean flag;
  public final int output;

  ResultOfSomething(boolean flag, int output){
    this.flag = flag;
    this.output = output;
  }
}

public class SomethingCalculator {
  public static ResultOfSomething doSomething(int aParam1, int aParam2) {
    if (aParam1 + aParam2 > 7) {
      return new ResultOfSomething(true, aParam1 + aParam2);
    } else {
      return new ResultOfSomething(false, 0);
    }
  }
}



Тебе это покажится изыточным и многословным. Тут есть две вещи:
1. Да, многсловно - используй kotlin
2. За каждой "лишней" строкой скрывается логика - потому что функция не просто фигнёй страдает, а выполняет некоторую операцию у который есть результат ИМЕЕЮЩИЙ СМЫСЛ. И добавочный класс - он описывает смысл (при хорошем выборе имён всё понятно и. комментарии не нужны). Ну и так далее.
Да, с точки зрения "херак и продакшн" этовсего лишь лишние символы и лишнее время.
...
Рейтинг: 0 / 0
20.10.2021, 09:50
    #40105508
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Alexey Tomin,
Да. Это многословно))).
С другой стороны, дельфи для десктоп. А сабж для веб.
...
Рейтинг: 0 / 0
20.10.2021, 09:52
    #40105509
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
PetroNotC Sharp
Alexey Tomin,
Да. Это многословно))).
С другой стороны, дельфи для десктоп. А сабж для веб.


Не вижу связи.
...
Рейтинг: 0 / 0
20.10.2021, 09:52
    #40105510
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Alexey Tomin,
Кстати, разбить метод с двумя out на два метода, способ лучше чем ваш
...
Рейтинг: 0 / 0
20.10.2021, 09:54
    #40105511
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Alexey Tomin
PetroNotC Sharp
Alexey Tomin,
Да. Это многословно))).
С другой стороны, дельфи для десктоп. А сабж для веб.


Не вижу связи.
связь простая. Все методы должны быть простые для потокобезопасности и масштабирования.
В десктопе это не надо.
...
Рейтинг: 0 / 0
20.10.2021, 10:09
    #40105515
Никанор Кузьмич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
PetroNotC Sharp
Ну и ты out вместо var не поставил)
ЕМНИП, var в Delphi означает что-то вроде "in out". Я уже плохо помню, 15 лет в Delphi не заглядывал, но вроде бы на практике никакой разницы между var и out нет.

PetroNotC Sharp
Нельзя простые типы. Только классом.
И считается плохим стилем программирования.
Опять же, насколько я понимаю, out параметры - это наследие до-ООП времен. И тогда это было единственно возможным стилем программирования. А в джаве этого нет, потому что уже не нужно.

PetroNotC Sharp
Alexey Tomin,
Кстати, разбить метод с двумя out на два метода, способ лучше чем ваш
Я бы поспорил. Там по сути одно вычисление с результатом сложного типа (int + boolean). Если вычисление требует большого количества ресурсов, вы потратите их два раза вместо одного.
...
Рейтинг: 0 / 0
20.10.2021, 10:18
    #40105518
Никанор Кузьмич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair
модуль в дельфи - аналог класса в жава.
Не совсем так. Аналог класса в джава - это класс в делфи. На этом сходства заканчиваются, и начинаются различия. Модуль - это скорее пакет джава, но в котором все классы лежат в одном файле. Но в общем случае, любые аналогии будут хромать на обе ноги.
...
Рейтинг: 0 / 0
20.10.2021, 10:19
    #40105519
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Никанор Кузьмич,
1. Разница большая. Меня задолбало обнулять на входе переменные если нужен только выход. Out это сам делает
...
Рейтинг: 0 / 0
20.10.2021, 10:21
    #40105520
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Никанор Кузьмич
Я бы поспорил.
могу поискать топик мой по приходу с дельфи в java.
Это мнение было java ветки.
Как в дельфи не пишут в java.
"казнить нельзя помиловать"
...
Рейтинг: 0 / 0
20.10.2021, 10:23
    #40105521
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Никанор Кузьмич
Модуль - это скорее пакет джава,
+1
...
Рейтинг: 0 / 0
20.10.2021, 11:49
    #40105542
Roman Osipov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair,

Вот наиболее близкий аналог в Java. Там где необходимо изменять значение в параметре - передаются ссылки на объекты-холдеры
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    static boolean doSomethng(int aParam1, int aParam2, AtomicInteger output) {
        boolean result = false;
        if (aParam1 + aParam2 > 7) {
            output.set(aParam1 + aParam2);
            result = true;
        }
        return result;
    }

    public static void main(String[] args) {
        AtomicInteger output = new AtomicInteger();
        if (doSomethng(4,6, output)) {
            System.out.println(output);
        }
    }



Понятно, что такой код вносит сайд-эффекты и не стоит так делать.
https://en.wikipedia.org/wiki/Side_effect_(computer_science)
...
Рейтинг: 0 / 0
20.10.2021, 12:47
    #40105560
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Никанор Кузьмич
Pcrepair
модуль в дельфи - аналог класса в жава.
Не совсем так. Аналог класса в джава - это класс в делфи. На этом сходства заканчиваются, и начинаются различия. Модуль - это скорее пакет джава, но в котором все классы лежат в одном файле. Но в общем случае, любые аналогии будут хромать на обе ноги.


Кстати, Kotlin ещё ещё лучше там, что ближе к Delphi, чем java:
- есть "просто функции"
- файл может вмещать сколько угодно (в т.ч. публичных) классов - как модуль delphi
- синтаксис "прямой" (var x: Int) а не "обратный" (int x;)
...
Рейтинг: 0 / 0
20.10.2021, 13:01
    #40105565
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Alexey Tomin,
Осталось их туда заманить. Не пойдут ведь:))
...
Рейтинг: 0 / 0
20.10.2021, 13:26
    #40105575
Никанор Кузьмич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Alexey Tomin
- файл может вмещать сколько угодно (в т.ч. публичных) классов - как модуль delphi
Кстати, в джаве же вроде бы можно описывать классы внутри классов? И эти внутренние классы будут видны снаружи? Тоже получается какое-то подобие модуля.
...
Рейтинг: 0 / 0
20.10.2021, 13:45
    #40105587
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Никанор Кузьмич
Alexey Tomin
- файл может вмещать сколько угодно (в т.ч. публичных) классов - как модуль delphi
Кстати, в джаве же вроде бы можно описывать классы внутри классов? И эти внутренние классы будут видны снаружи? Тоже получается какое-то подобие модуля.


Можно. Будут. Но это не модуль, а внутренние классы.
...
Рейтинг: 0 / 0
21.10.2021, 20:01
    #40106011
chron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
это всё игра слов. я бы посоветовал Pcrepair написать транслятор с языка delphi на java.
простые вопросы бы отпали. а настоящие - возникли. и решились.
...
Рейтинг: 0 / 0
21.10.2021, 20:23
    #40106018
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
chron
это всё игра слов. я бы посоветовал Pcrepair написать транслятор с языка delphi на java.
простые вопросы бы отпали. а настоящие - возникли. и решились.


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

и не надо ерундой говорить что делфи - десктоп, жава - веб
на дельфи можно написать что угодно, просто заказчиков нет, и да только под ВЫНь, видимо это базовая проблема
...
Рейтинг: 0 / 0
21.10.2021, 20:33
    #40106019
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair
и не надо ерундой говорить что делфи - десктоп, жава - веб
на дельфи можно написать что угодн

Ага.
Вот так
print("<!DOCTYPE html><html><head><meta charset="utf-8" /><title>HTML Document</title></head><body><p.......

Pcrepair
только под ВЫНь,

Вам сколько лет что вы про лазарус не слышали?
...
Рейтинг: 0 / 0
22.10.2021, 08:20
    #40106085
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
[quot PetroNotC Sharp#22386628]
Pcrepair

Вам сколько лет что вы про лазарус не слышали?


лазерус? аххаха это убогое ... для убогих ...
только .... тратят на это ... личное время
...
Рейтинг: 0 / 0
22.10.2021, 09:12
    #40106091
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair,
Имхо поставь. Бла бла бла
...
Рейтинг: 0 / 0
22.10.2021, 16:27
    #40106183
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
[quot Pcrepair#22386745]
PetroNotC Sharp
пропущено...


лазерус? аххаха это убогое ... для убогих ...
только .... тратят на это ... личное время


Ну как OpenSource проект без поддержки корпораций норм.
В принципе где-то на уровне Delphi 3, правда с VCL не совместима от слова совсем.
Так что это никак не замена Delphi.
...
Рейтинг: 0 / 0
22.10.2021, 17:59
    #40106199
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение методов java и функций delphi
Pcrepair
chron
это всё игра слов. я бы посоветовал Pcrepair написать транслятор с языка delphi на java.
простые вопросы бы отпали. а настоящие - возникли. и решились.


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

и не надо ерундой говорить что делфи - десктоп, жава - веб
на дельфи можно написать что угодно, просто заказчиков нет, и да только под ВЫНь, видимо это базовая проблема

Глупость от которой волосы встают дыбом.
Ява - не вэб. Никаким боком. Ну, разве что чуть-чуть. Делфи тоже не вэб, разве что чуть-чуть. Вы про CGI или про Fast CGI слыхали?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение методов java и функций delphi / 25 сообщений из 50, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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