следующий код, содержащий файл здесь
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
если я вызываю Quart.IN.compute(0.5f) где-то в моем запущенном приложении (например, в функции render(), которая вызывается 60 раз в секунду), создает ли это новый Quart для каждого вызова или просто назначается один раз?
это будет иметь смысл, не так ли?
спасибо, приветствия
По определению конечная переменная может быть назначена только один раз. Статические поля класса инициализируются при загрузке класса. Поэтому, очевидно, экземпляр IN
Quart создается только один раз.
Вы также можете проверить его только один раз, написав вывод, когда экземпляр Quart создан:
public abstract class Quart extends TweenEquation {
public static final Quart IN = new Quart() {
{ System.out.println("created"); }
@Override
public final float compute(float t) {
return t*t*t*t;
}
...
это просто выделено раз
Да, вы вызываете метод compute
всегда на одном и том же объекте.
Только раз. Статическое поле IN инициализируется во время первого доступа к классу Quart.