Esta segunda entrega es cortita en extensión, habla del uso de clases y objetos en JavaFX y cómo se relacionan con clases Java. También menciona la particularidad de que las clases JavaFX pueden extender múltiples clases. Quiero dejar en este post también el enlace hacia lo que hasta ahora es la mejor compilación de documentación relativa al compilador y SDK preview de JavaFX. Se trata de un CHM que contiene tanto el API como la referencia más aceptada al lenguaje, así como algunos ejemplos y la documentación relativa al compilador de JavaFX. Se puede encontrar en esta página de GeekyCoder.
Importando Clases
Las sentencias import se comportan de igual modo que en Java. La sintaxis es:
import PackageName.ClassName;import PackageName.*; Si las sentencias import están presentes, deben aparecer antes que cualquier otro código de aplicación (no de la definición package). El lenguaje JavaFX define su propio espacio de trabajo para su librería de clases propias (packages javafx.*), pero las clases de Java también se pueden importar:
import javafx.application.*;import java.lang.System; ... Definiendo Clases
La sintaxis para especificar una clase es la palabra class seguida del nombre de la clase, opcionalmente la palabra clave extends, y una lista separada por comas de las clases base, una llave abierta, una lista de atributos y funciones que acaban todos en punto y coma y una llave cerrada.
JavaFX soporta herencia múltiple y define alguna terminología y reglas nuevas:
- Una clase plana es cualquier clase que extiende directa o indirectamente una clase escrita en Java.
- Una clase de componente es cualquier clase que no es una clase plana.
- Por defecto, las clases escritas en JavaFX son clases de componente.
- Las clases pueden extender, como máximo una clase plana. Si extiende una clase plana, será una clase plana. Una clase puede también extender cualquier número de clases componente o interfaces Java.
Nota: Una clase plana es realmente traducida a una clase Java, mientras que una clase componente es traducida a una clase Java y a una interfaz Java.
Es posible declarar una clase como pública, lo que significa que se puede acceder desde cualquier script. De otro modo, la clase sólo será accesible desde el contenedor del script (esta es la opción por defecto).
JavaFX no soporta constructores, debes usar literales de objeto en su lugar. Para imitar el comportamiento de un constructor, define la función estática que devuelva un nuevo objeto e invoca esa función.
Definiendo Objetos
Como se describió en la anterior entrada, la forma preferible de instanciar una clase es con un objeto literal. Esta forma de emplazamiento de objeto usa una sintaxis declarativa que consiste en el nombre de la clase seguida de una lista delimitada con llaves de inicializadores de atributos. Cada inicializador consiste en el nombre del atributo seguido de una coma, seguida de una expresión que define su valor. Sin embargo, es también posible usar la palabra new cuando se crea un objeto:
import java.io.File; var tmpPath = "/home/users/docs/tmp.txt"var myFile = new File("tmp.txt");(http://javafx.com/releases/preview1/docs/reference/JavaFX-Language.html)