En Java, ¿cuál es la diferencia entre clase pública y clase?


Mejor respuesta

Si una clase no tiene ningún modificador de acceso, será tratada bajo el modificador de acceso predeterminado.

Modificador de acceso predeterminado significa que no declaramos explícitamente un modificador de acceso para una clase, campo, método, etc.

Una variable o método declarado sin ningún modificador de control de acceso está disponible para cualquier otra clase en el mismo paquete. Los campos de una interfaz son implícitamente públicos estáticos finales y los métodos de una interfaz son públicos por defecto.

Público: se puede acceder a una clase, método, constructor, interfaz, etc. declarada pública desde cualquier otra clase . Por lo tanto, se puede acceder a los campos, métodos, bloques declarados dentro de una clase pública desde cualquier clase que pertenezca al Universo Java.

Sin embargo, si la clase pública a la que estamos intentando acceder está en un paquete diferente, entonces el La clase pública todavía necesita ser importada. Debido a la herencia de clases, todos los métodos públicos y variables de una clase son heredados por sus subclases.

Ejemplo

Public static void main (string [] args)

{

// …………………………………

}

El método main () de una aplicación tiene que ser público. De lo contrario, un intérprete de Java (como java) no podría llamarlo para ejecutar la clase.

Respuesta

Un archivo Java no puede tener ninguna definición de clase. cuando compilamos el archivo java, entonces el compilador genera archivos .class independientes para cada definición de clase.

Si su archivo java tiene una única clase principal, entonces no es necesario definirlo como público.

Si su archivo Java tiene varias clases, no puede hacer que todas las clases sean públicas porque solo se permite una clase pública en cualquier archivo Java. aquí, el nombre de la clase pública y el nombre del archivo Java deben ser el mismo.

//filename: Main6.java

class Demo2

{

public void Demo2()

{

System.out.println("Hello world");

}

}

class Main6

{

public static void main(String[] args)

{

Demo2 d=new Demo2();

d.Demo2();

}

}

output

Hello world

En el ejemplo anterior, no he declarado la clase principal como pública, pero todavía funciona porque di el nombre de la clase principal como nombre de archivo.

//filename: Main6.java

public class Demo2

{

public void Demo2()

{

System.out.println("Hello world");

}

}

class Main6

{

public static void main(String[] args)

{

Demo2 d=new Demo2();

d.Demo2();

}

}

output:

Main6.java:1: error: class Demo2 is public, should be declared in a file named Demo2.java

Mira, esta vez me está dando un error. por lo tanto, es una buena práctica definir su clase principal como pública si tiene varias clases en un archivo java. Como sabemos, la ejecución del programa comienza desde el método principal.

Espero que tengas la respuesta

Deja una respuesta

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