Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a Finance and Operations Viva Engage Community y elija la comunidad a la que desea unirse.
En este artículo se describen los miembros de clase estáticos en X++. En general, use métodos estáticos para estos casos:
- El método no necesita tener acceso a variables miembro declaradas en la clase .
- El método no necesita llamar a ningún método de instancia (no estático) de la clase .
Declare miembros de clase estática mediante la palabra clave static . La palabra clave static indica al sistema que cree solo una instancia del método, independientemente del número de instancias de la clase. Use esta instancia en toda la sesión.
Métodos estáticos
En esta sección se describe un escenario en el que se usa un tipo de clave de software para ayudar a evitar la piratería. Cada instancia de una clave de software puede tener su propio valor único. Dado que todas las claves de software deben cumplir las reglas de diseño de claves de software, la lógica que prueba la conformidad de la clave de software es la misma para todas las claves de software. Por lo tanto, el método que contiene la lógica de validación de conformidad debe ser estático.
Este es un ejemplo de un método que se declara mediante la palabra clave static .
public class SoftwareKey
{
static public boolean validateSoftwareKey(str _softwareKeyString)
{
// Your code here.
return false;
}
}
En el ejemplo siguiente, no es necesario construir una instancia de la clase SoftwareKey antes de llamar a un método estático en la clase . Cuando desee llamar al método static validateSoftwareKey , la sintaxis comienza con el nombre de la clase que contiene el método . Un par de dos puntos (::) conecta el nombre de clase al nombre del método estático.
boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);
Campos estáticos
Los campos estáticos son variables que se declaran mediante la palabra clave static . Conceptualmente, se aplican a la clase , no a instancias de la clase .
Constructores estáticos
Un constructor estático siempre se ejecuta antes de que se realicen llamadas estáticas o de instancia a la clase . La ejecución del constructor estático es relativa a la sesión del usuario. El constructor estático usa la sintaxis siguiente.
static void TypeNew()
Nunca se llama explícitamente al constructor estático. El compilador genera código para asegurarse de que el constructor se llama exactamente una vez antes de cualquier otro método de la clase . Use un constructor estático para inicializar los datos estáticos o realizar una acción determinada que solo se debe realizar una vez. No puede proporcionar parámetros para el constructor estático y debe marcarlo como estático.
En el ejemplo de código siguiente se muestra cómo crear una instancia singleton mediante un constructor estático.
public class Singleton
{
private static Singleton instance;
private void new()
{
}
static void TypeNew()
{
instance = new Singleton();
}
public static Singleton Instance()
{
return Singleton::instance;
}
}
Singleton garantiza que la clase solo tiene una instancia. En el ejemplo siguiente se muestra cómo crear una instancia del singleton.
Singleton i = Singleton::Instance();
Método estático
Los métodos estáticos, que también se conocen como métodos de clase, pertenecen a una clase y se crean mediante la palabra clave static. No es necesario crear una instancia de un objeto antes de usar métodos estáticos. Use métodos estáticos para trabajar con datos almacenados en tablas. No se pueden usar variables de miembro en un método estático. Use la sintaxis siguiente para llamar a métodos estáticos.
ClassName::methodName();
Métodos estáticos e de instancia
Las palabras clave de descriptor de acceso de los métodos nunca restringen las llamadas entre dos métodos que están en la misma clase, independientemente de qué método sea estático o no estático. En un método estático, las llamadas al nuevo método constructor son válidas incluso si el nuevo método de constructor está decorado con el modificador privado . La sintaxis de estas llamadas requiere que use la palabra clave new . El código de un método estático debe construir un objeto de instancia de su propia clase para poder llamar a cualquier método de instancia de la clase .