Modificadores de acceso – Public

Este sera el comienzo de una serie de posts en los cuales tratare de profundizar en el tema, tratando de abarcar la mayoria de los escenarios posibles.

Comenzare con el modificador de acceso Publico, que por ser menor restrictivo puede ser considerado facil de comprender.

Escenario – Declaracion en la clase

  1. Solo puede existir una clase publica por archivo *.java
  2. ClasePublica.java

    package mipaquete;
    
    public class ClasePublica{
    }
    
    class OtraClase{
    }
    
    class OtraClaseNoPublica{
    }
  3. Puede referenciarse desde clases dentro mismo paquete
  4. OtraClasePublica.java

    package mipaquete;
    
    public class OtraClasePublica {
    	public void invocar(){
    		ClasePublica clase = new ClasePublica();
    	}
    }
  5. Puede heredarse por clases dentro mismo paquete
  6. ClaseHijaPublica.java

    package mipaquete;
    
    public class ClaseHijaPublica extends ClasePublica {
    
    }
  7. Puede referenciarse desde clases de distintos paquetes siempre y cuando la clase sea importada
  8. OtraClasePublica.java

    package otropaquete;
    
    import mipaquete.ClasePublica;
    
    public class OtraClasePublica {
    	public void invocar(){
    		ClasePublica clase = new ClasePublica();
    	}
    }
  9. Puede heredarse por clases de distintos paquetes siempre y cuando la clase sea importada
  10. ClaseHijaPublica.java

    package otropaquete;
    
    import mipaquete.ClasePublica;
    
    public class ClaseHijaPublica{
    	public void invocar(){
    		ClasePublica clase = new ClasePublica();
    	}
    }

Con esto creo cubrir la mayoria de las preguntas que pudiesen surgir acerca de este modificador