Salida del programa Java | Conjunto 15 (Clases internas)

Requisito previo: clases internas locales, clases internas anónimas

1) ¿Cuál es el resultado del siguiente programa java?

public class Outer 
{
    public static int temp1 = 1;
    private static int temp2 = 2;
    public int temp3 = 3;
    private int temp4 = 4;
      
    public static class Inner
    {
        private static int temp5 = 5;
          
        private static int getSum()
        {
            return (temp1 + temp2 + temp3 + temp4 + temp5);
        }
    }
      
    public static void main(String[] args)
    {
        Outer.Inner obj = new Outer.Inner();
        System.out.println(obj.getSum());
    }
      
}

a) 15
b) 9
c) 5
d) Error de compilación

Respuesta (d)
Explicación: las clases internas estáticas no pueden acceder a los campos no estáticos de la clase externa.

2) ¿Cuál es la salida del siguiente programa?

public class Outer 
{
    private static int data = 10;
    private static int LocalClass()
    {
        class Inner
        {
            public int data = 20;
            private int getData()
            {
                return data;
            }
        };
        Inner inner = new Inner();
        return inner.getData();
    }
      
    public static void main(String[] args)
    {
        System.out.println(data * LocalClass());
    }
}

a) Error de compilación
b) Error de tiempo de ejecución
c) 200
d) Ninguno de los anteriores

Respuesta (c)
Explicación: el método LocalClass() define una clase interna local. Este método crea un objeto de clase Inner y devuelve el valor de los datos variables que residen en él.

3) ¿Cuál es la salida del siguiente programa?

interface Anonymous
{
    public int getValue();
}
public class Outer 
{
    private int data = 15;
    public static void main(String[] args)
    {
        Anonymous inner = new Anonymous()
                {
                    int data = 5;
                    public int getValue()
                    {
                        return data;
                    }
                    public int getData()
                    {
                        return data;
                    }
                };
        Outer outer = new Outer();
        System.out.println(inner.getValue() + inner.getData() + outer.data);
    }
}

a) 25
b) Error de compilación
c) 20
d) Error de ejecución

Respuesta (b)
Explicación: el método getData() no está definido en la clase Anónimo, lo que provoca el error de compilación.

4) ¿Cuál es el resultado del siguiente programa java?

public class Outer
{
    private int data = 10;
      
    class Inner
    {
        private int data = 20;
        private int getData()
        {
            return data;
        }
        public void main(String[] args)
        {
            Inner inner = new Inner();
            System.out.println(inner.getData());
              
        }
    }
    private int getData()
    {
        return data;
    }
    public static void main(String[] args)
    {
        Outer outer = new Outer();
        Outer.Inner inner = outer.new Inner();
        System.out.printf("%d", outer.getData());
        inner.main(args);
    }
}

a) 2010
b) 1020
c) Error de compilación
d) Ninguno de estos

Respuesta (b)
Explicación: Sin embargo, la clase interna definida anteriormente tiene acceso a los datos de variables privadas de la clase externa, pero declarar una variable de datos dentro de una clase interna la hace específica para la clase interna sin conflictos en términos de declaración de variables. Para obtener más información, consulte Sombreado

5) ¿Cuál es la salida del siguiente programa?

interface OuterInterface
{
    public void InnerMethod();
    public interface InnerInterface
    {
        public void InnerMethod();
    }
}
public class Outer implements OuterInterface.InnerInterface, OuterInterface
{
    public void InnerMethod()
    {
        System.out.println(100);
    }
      
      
    public static void main(String[] args)
    {
        Outer obj = new Outer();
        obj.InnerMethod();
    }
}

a) 100
b) Error de compilación
c) Error de tiempo de ejecución
d) Ninguno de los anteriores

Respuesta (a)
Explicación: Las interfaces anidadas se definen en java. Como ambas interfaces tienen declaración de InnerMethod(), implementarlo una vez funciona tanto para InnerInterface como para OuterInterface.

Este artículo es una contribución de Mayank Kumar . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *