публичный статический конечный объект Java

1

следующий код, содержащий файл здесь

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 для каждого вызова или просто назначается один раз?

это будет иметь смысл, не так ли?

спасибо, приветствия

Теги:
static
final

4 ответа

4
Лучший ответ

По определению конечная переменная может быть назначена только один раз. Статические поля класса инициализируются при загрузке класса. Поэтому, очевидно, экземпляр IN Quart создается только один раз.

0

Вы также можете проверить его только один раз, написав вывод, когда экземпляр 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;
        }
    ...
0

это просто выделено раз

Да, вы вызываете метод compute всегда на одном и том же объекте.

0

Только раз. Статическое поле IN инициализируется во время первого доступа к классу Quart.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню