Spec-Zone .ru
спецификации, руководства, описания, API
|
Новый JavaFX экземпляр class инициализируется в этом порядке:
Следующий раздел покроет, как устанавливаются переменные экземпляра.
Значение переменной экземпляра в конце инициализации может быть установлено любым из нескольких способов: значение, обеспеченное в объектном литерале, начальное значение, определенное в объявлении переменной, initializingExpression на переменном объявлении переопределения, или присвоении в initBlock. Эти авеню обсуждаются ниже.
Экземпляры класса создаются с объектным литералом (newExpression можно рассмотреть в этих целях как эквивалентный объектному литералу, который не устанавливает переменных экземпляра). Например:
var fu = Foo { x: 14 }
Здесь переменная экземпляра x в Foo устанавливается объектным литералом быть 14 (примечание: x, возможно, был объявлен в суперклассе Foo).
Объявление переменной экземпляра явно или неявно устанавливает значение по умолчанию для переменной. Например это могло быть установлено явно:
class Foo { var x = 99; }
Здесь у x есть initializingExpression.
Если никакой initializingExpression не обеспечивается, значение по умолчанию для типа является значением по умолчанию типа переменной экземпляра - см. главу Типов и Значений. Например:
class Answers { var ungulate : Boolean; }
Так как ложь является значением по умолчанию для Булева типа, значение по умолчанию копытного животного является ложью.
variableOverrideDeclaration может переопределить значение по умолчанию. Например:
class Shed { var siding = "aluminum"; } class FancyShed extends Shed { override var siding = "copper"; }
Здесь FancyShed переопределяет значение по умолчанию запасного пути. Отметьте, что variableOverrideDeclaration, у которого нет initializingExpression, не будет переопределять значение по умолчанию.
Точно одно из вышеупомянутого установит начальное значение. Если значение обеспечивается в объектном литерале, который будет использоваться. Иначе, если переопределение для переменной обеспечит initializingExpression, то это будет использоваться. Если это не будет переопределено, то явный initializingExpression предоставит начальное значение. Приводя все к сбою, что, значение по умолчанию для типа будет использоваться.
После того, как одно из вышеупомянутого установило переменную экземпляра, initBlock, если есть выполняется. Этот блок может сбросить переменную экземпляра.