Java: llamar a miembros no estáticos directamente desde el constructor sin usar el nombre del objeto

Java es un lenguaje de Programación Orientada a Objetos (POO). Necesitamos crear objetos para acceder a métodos y variables dentro de una clase. Sin embargo, esto no siempre es cierto. Mientras discutíamos las palabras clave estáticas en Java, aprendimos que los miembros estáticos son de nivel de clase y se puede acceder a ellos directamente sin ninguna instancia. Aquí discutiremos cómo podemos acceder a los miembros de datos no estáticos sin usar el nombre del objeto, para lo cual compararemos los miembros de datos estáticos y los miembros de datos no estáticos que se proporcionan en la siguiente tabla de la siguiente manera:

Miembros de datos estáticos Miembros de datos no estáticos
Se declaran utilizando la palabra clave ‘static’. Cada miembro en Java tiene un valor predeterminado no estático sin una palabra clave ‘estática’ que lo preceda.
Todos los objetos de una clase comparten la misma copia de miembros de datos estáticos. Cada objeto de la clase obtiene su propia copia de miembros de datos no estáticos.
Se puede acceder a ellos usando el nombre de la clase o el objeto. Generalmente se accede a ellos a través de un objeto de la clase.
Los métodos estáticos se pueden llamar sin la instancia u objeto de esa clase.  Los métodos no estáticos pueden acceder a cualquier método estático y variable estática, sin crear una instancia del objeto.

Ejemplo 1: llamar a miembros de datos estáticos sin la instancia u objeto de esa clase. 

Java

// Java program Illustrating Calling Static Data Members
// Without the Instance or object of that class
 
// Main class
public class GFG {
 
    // Static variable
    static int a = 5;
 
    // Method 1
    // Static method
    static void f()
    {
        // Print statement whenever static method is called
        System.out.println("I am static method");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Calling static data members without the
        // instance or object of that class.
        System.out.println(GFG.a);
 
        // Calling method 1
        GFG.f();
    }
}
Producción

5
I am static method

Ejemplo 2: llamar a miembros de datos no estáticos.

Java

// Java Program Illustrating Calling Non-static Data Members
 
// Main class
public class GFG {
 
    // Non-static variable
    int a = 5;
 
    // Method 1
    // Non-static method
    void f()
    {
 
        // Print statement whenever non static method is
        // called
        System.out.println("I am Non-static method");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Creating object of class inside main()
        GFG obj = new GFG();
 
        System.out.println(obj.a);
        // Calling non static data members
        obj.f();
    }
}
Producción

5
I am Non-static method

Ejemplo 3: llamar directamente a miembros de datos no estáticos sin usar nombres de objetos.

Java

// Java program Illustrating Calling Non-static Method
// Without using Object Name
 
// Main class
class GFG {
 
    // Calling non-static method
    // through constructor
    GFG()
    {
        int a = 5;
        System.out.println(a);
        display();
    }
 
    // Method 1
    // Non static method
    void display()
    {
 
        // Print statement whenever non-static method is
        // called
        System.out.println(
            "Non static method is called using constructor.");
    }
 
    // Method 2
    // Main driver method
    public static void main(String[] a) { new GFG(); }
}
Producción

5
Non static method is called using constructor.

Publicación traducida automáticamente

Artículo escrito por dattabikash505 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *