можно ли использовать функции в поле класса (java)

Если у меня есть абстрактный класс, правильно ли помещать функцию в одно из полей? или это вызовет проблемы?

пример:

public abstract class A{

   private double x = z+w/y;

....

person dumpstercake    schedule 20.10.2011    source источник
comment
Если это помогает сделать код более читабельным, это хорошая идея.   -  person Philipp Reichart    schedule 20.10.2011


Ответы (2)


Ведь в качестве инициализатора вы ставите не функцию, а просто выражение. В его использовании нет ничего плохого.

Однако имейте в виду, что если ваше выражение зависит от других полей, значение зависит от порядка инициализации. (См. этот ответ для получения дополнительной информации и пример)

person Vlad    schedule 20.10.2011
comment
да, это то, что я имел в виду, выражение. Спасибо - person dumpstercake; 20.10.2011

Короче говоря, это зависит.

Вы можете сделать это с технической точки зрения, да, и если очень ясно, что происходит, и при чтении кода не происходит ничего неожиданного (т. е. он не превращается в очередную головоломку Java), тогда все в порядке. Имейте в виду, однако, что если вы доведете подобные вещи до крайности, это может превратиться в настоящую головоломку (например, это может зависеть от инициализации полей порядка), и тогда этого следует избегать!

person Michael Berry    schedule 20.10.2011