Autor Tema: Java falla al importar paquetes con clases abstract no funciona no logro import  (Leído 950 veces)

hefesto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
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
« Última modificación: 27 de Octubre 2020, 10:23 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 724
    • Ver Perfil
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.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

hefesto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
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");
    }


     
    }
   
   

« Última modificación: 15 de Mayo 2020, 23:09 por hefesto »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 724
    • Ver Perfil
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
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

hefesto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
¡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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".