Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: hefesto en 14 de Mayo 2020, 23:08

Título: Java falla al importar paquetes con clases abstract no funciona no logro import
Publicado por: hefesto en 14 de Mayo 2020, 23:08
Hola, tengo el siguiente problema, en código JAVA

Son tres paquetes:

1) paqueteA (contiene una superclase abstracta con tres subclases, gerentes, operativos, temporales) 

2) paqueteB (clase consultar empleados; esta clase importa el paquete A y todos sus clases, también contiene el método main, ejecuta el método setDatos para definir el texto a mostrar. Resultado en pantalla tendría que ser:
El grupo de empleados es: Gerentes
El grupo de empleados es: Operativos
El grupo de empleados es: Temporales

3) paqueteC (contiene un archivo interfaz y una clase conexionMySQL) el archivo interfaz contiene métodos i. establecer conexión ii. Insertar, iii. Cerrar conexión tipo boolean
La clase conexionMySQL implementa la interfaz donde; “establecer conexión” imprime mensaje conexión establecida, “insertar” imprime mensaje “inserta registro MySQL” , en “cerrar conexión” contiene manejo excepciones, se valida parámetro statusConexion, si es true indica “conexión finalizada” si es false muestra excepción “error cerrar conexión”

Gracias por su ayuda

Hefesto
Título: Re:Clases abstractas, importar paquetes con clases abstract y archivo interfaz Java
Publicado por: Kabuto en 14 de Mayo 2020, 23:59
Disculpa, pero no me queda claro cuál es el problema que te ha surgido.
Si pudieras concretarlo, a ver si podemos echarte una mano.

Un saludo.
Título: Re:Clases abstractas, importar paquetes con clases abstract y archivo interfaz Java
Publicado por: hefesto en 15 de Mayo 2020, 22:13
El problema es que ya están formados los paquetes en el primero (paquete1) donde están las clases abstractas padre e hijas, en el segundo (paquete2) en el que elaboro la clase Main, pero cuando intento importar el paquete 1 desde paquete 2 no logro hacerlo.
Intente importar clase por clase, y el paquete completo pero me marca error.

PAQUETE 1 incluye clase abstracta padre (Empleados) y clase hija (Gerentes)

Código: [Seleccionar]
package abstacto.empleados;


public abstract class Empleados {
   
    String grupoEmpleados;
 
   
 
   
    public Empleados(String grupoEmpleados) {
        this.grupoEmpleados = grupoEmpleados;
     
    }
   
  public abstract void getDatosEmpleado();
 
 
    public void setDatos(String grupoEmpleados) {
       
    }


   
}

Código: [Seleccionar]
package abstacto.empleados;


public class Gerentes extends Empleados{


 
           
    public Gerentes(String Gerentes) {
        super(Gerentes);
    }

    @Override
    public void getDatosEmpleado() {
        System.out.println("El grupo de empleados es:  Gerentes");
    }
   

   
   
   

}




PAQUETE 2. En este incluye la clase MAIN desde donde quiero correr las clases del paquete 1 mediante importación es donde tengo el problema

Código: [Seleccionar]
package consulta.empleados;

import abstacto.empleados.*;



public class consultarEmpleados {
    public static void main (String[]args){
   
 
   

}

    public void setDatos(String grupoEmpleados, String Gerentes) {
        grupoEmpleados= Gerentes;
        System.out.println("El grupo de empleados es: Gerentes");
    }


     
    }
   
   

Título: Re:Clases abstractas, importar paquetes con clases abstract y archivo interfaz Java
Publicado por: Kabuto en 16 de Mayo 2020, 18:28
Con ese import, ha de funcionar, lo acabo de probar y puedo crear un objeto Gerente sin problemas:
Código: [Seleccionar]
package consulta.empleados;

import abstacto.empleados.*;

public class consultarEmpleados {


public static void main (String[]args){

Gerentes ger = new Gerentes("");

}

}

¿Qué error te marca? ¿Qué dice exactamente?

Por cierto, si tiene algo que ver con este método que has puesto:
Código: [Seleccionar]
    public void setDatos(String grupoEmpleados, String Gerentes) {
        grupoEmpleados= Gerentes;
        System.out.println("El grupo de empleados es: Gerentes");
    }

Ahí no estás trabajando con esas clases. Lo de ese método son Strings
Título: Re:Clases abstractas, importar paquetes con clases abstract y archivo interfaz Java
Publicado por: hefesto en 16 de Mayo 2020, 22:46
¡Gracias Kabuto! Me ayudaste a solventar este paso.

En realidad me di cuenta que el main (como mencionas) no estaba instanciando los objetos de las clases, por tanto generé objetos de forma similar a como muestras, pero también en las clases abstractas padre e hijas deje los constructores vacíos.

Código: [Seleccionar]
package consulta.empleados;

import abstacto.empleados.*;


public class consultarEmpleados {
    public static void main (String[]args){
   
     
        Gerentes gerentes = new Gerentes();
        Operativos operativos = new Operativos();
        Temporales temporales = new Temporales ();

       
        gerentes.setDatos("Gerentes");
        gerentes.getDatosEmpleado();

Y en la clase gerentes asi quedo:
Código: [Seleccionar]
package abstacto.empleados;



public class Gerentes extends Empleados{

    public Gerentes (){}
   
    @Override
    public void getDatosEmpleado() {
        System.out.println("El grupo de empleados es: " + grupoEmpleados);
    }
   

   


}

En cuanto a la clase abstracta padre:
Código: [Seleccionar]
package abstacto.empleados;



public abstract class Empleados {
   
     protected String grupoEmpleados;
 

    public Empleados() {
   
    }
   
  public abstract void getDatosEmpleado();
 
 
    public void setDatos(String grupoEmpleados) {
      this.grupoEmpleados=grupoEmpleados;
       
   
       
    }


   
}

Por tanto, lo del import, no tuve inconveniente.
Gracias de nueva cuenta, muy amable por tu aporte.
Saludos