Пересечь объект с кривой

Конечные переменные, которые не инициализируются во время объявления, называются пустой конечной переменной и должны быть инициализированы on all constructor either explicitly or by calling this(). В противном случае компилятор будет жаловаться как "final variable (name) might not be initialized".


Согласно Wikipedia

Конечная переменная может быть инициализирована только один раз, либо через инициализатор, либо оператор присваивания. Его не нужно инициализировать в точке объявления: это называется переменной "blank final". Чистая конечная переменная экземпляра класса должна быть обязательно назначена в конце каждого конструктора класса, в котором она объявлена; аналогично, пустая конечная статическая переменная должна быть определенно назначена в статическом инициализаторе класса, в котором она объявлена; в противном случае в обоих случаях возникает ошибка времени компиляции.

Например.

public class Sphere {

    // pi is a universal constant, about as constant as anything can be.
    public static final double PI = 3.141592653589793;  

    public final double radius;
    public final double xPos;
    public final double yPos;
    public final double zPos;

    Sphere(double x, double y, double z, double r) {
         radius = r;
         xPos = x;
         yPos = y;
         zPos = z;
    }

    [...]
}

Подробнее читайте на странице wiki http://en.wikipedia.org/wiki/Final_ (Java)

0
задан Nawid 25 February 2015 в 16:19
поделиться