Java - utilizar variables de una clase en el constructor de otra

 
Vista:
sin imagen de perfil

utilizar variables de una clase en el constructor de otra

Publicado por Alan (2 intervenciones) el 02/04/2017 19:15:47
quisiera saber como hacer que me lea una parte de mi constructor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public Empleado (){
     Scanner s = new Scanner(System.in);
       System.out.println("Dame el nombre del empleado:");
       nombre=s.next();
       System.out.println("Dame el numero de emplado que se le asigno:");
       numeroEmpleado=s.nextInt();
       System.out.println("Dame las horas que trabajo");
       horasTrabajadas=s.nextInt();
       System.out.println("Dame su salario:");
       salario=s.nextDouble();
       System.out.println("Dame su fecha de ingreso:");
       fechaIngreso.darFecha();
       System.out.println("Dame su hora de entrada:");
       horaEntrada.darHora();
es que en todo esto lo tengo bien en el momento de compilarlo pero cuando lo empiezo a correr, me da un erroren la parte de fechaIngreso.darFecha(); no entiendo el porque
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

utilizar variables de una clase en el constructor de otra

Publicado por juanki (131 intervenciones) el 02/04/2017 20:14:00
Pues si tu no lo sabes, ¡¡ imagínate nosotros !!

Para empezar,

¡¡¡ PON EL ERROR QUE TE DA !!!


Eso es básico, si tienes una duda con un error, que menos que ponerlo.

Y luego, tampoco has puesto el código completo ¿qué es fechaingreso?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

utilizar variables de una clase en el constructor de otra

Publicado por Alan (2 intervenciones) el 02/04/2017 21:02:17
tienes razon me olvide por completo de eso

bueno estes es mi programa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public class Empleado {
   private String nombre;
   private int numeroEmpleado;
   private int horasTrabajadas;
   private double salario;
   private double sueldo;
   private Fecha fechaIngreso;
   private Hora horaEntrada;
   //Métodos set y get
   public void setNombre (String nombre){
       this.nombre=nombre;
   }
   public String getNombre (){
       return nombre;
   }
   public void setNumeroEmpleado(int numeroEmpleado){
       this.numeroEmpleado=numeroEmpleado;
   }
   public int getNumeroEmpleado(){
       return numeroEmpleado;
   }
   public void setHorasTrabajadas(int horasTrabajadas){
       this.horasTrabajadas=horasTrabajadas;
   }
   public int getHorasTrabajadas(){
       return horasTrabajadas;
   }
   public void setSalario(double salario){
       this.salario=salario;
   }
   public double getSalario(){
       return salario;
   }
   public void setSueldo(double sueldo){
       this.sueldo=sueldo;
   }
   public double getSueldo(){
       return sueldo;
   }
   public void setFechaIngreso(Fecha fechaIngreso){
       this.fechaIngreso=fechaIngreso;
   }
   public Fecha getFechaIngreso(){
       return fechaIngreso;
   }
   public void setHoraEntrada(Hora horaEntrada){
       this.horaEntrada=horaEntrada;
   }
   public Hora getHoraEntrada(){
       return horaEntrada;
   }
   //Constructor
   public Empleado (){
     Scanner s = new Scanner(System.in);
       System.out.println("Dame el nombre del empleado:");
       nombre=s.next();
       System.out.println("Dame el numero de emplado que se le asigno:");
       numeroEmpleado=s.nextInt();
       System.out.println("Dame las horas que trabajo");
       horasTrabajadas=s.nextInt();
       System.out.println("Dame su salario:");
       salario=s.nextDouble();
       System.out.println("Dame la fecha en la que ingreso:");
       fechaIngreso.darFecha();
       System.out.println("Dame la hora de Entrada:");
       horaEntrada.darHora();
    }
   //Métodos
 
   public void calcularSueldo () {
       this.sueldo=this.salario * this.horasTrabajadas;
       System.out.println ("El sueldo es de "+sueldo);
   }
   public void imprimirFicha (){
       System.out.println("El empleado "+nombre);
       System.out.println ("Con número de trabajador "+numeroEmpleado);
       System.out.println ("Tiene un sueldo de "+sueldo);
       fechaIngreso.imprimirFecha();
       horaEntrada.imprimirHora();
   }
}
y no me aparece un error si no una excepcion es java.lan.nullpointerexception cuando hace fechaIngreso.darFecha();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

utilizar variables de una clase en el constructor de otra

Publicado por juanki (131 intervenciones) el 02/04/2017 21:59:52
Hola

Seguimos a oscuras. ¿qué es Fecha y Hora? Declaras dos variables de ese tipo al principio pero no as adjuntado las cases (no me voy a bajar el archivo que has subido, basta con poner el código relacionado con el error, y como la variable que te da el error es de tipo Fecha, deberías haber adjuntado esa clase).

nullponterexcption es un error que ocurre cuando tratas de usar algo que no has creado, y aquí te estará pasando que has definido la variable de tipo Fecha, pero NO la has creado o inicializado.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

utilizar variables de una clase en el constructor de otra

Publicado por Renzo (232 intervenciones) el 03/04/2017 22:08:03
Hola
aquí algunos ajustes a tu programa. Prueba los cambios y me comentas:

Sugerencia: No usar la letra Ñ cuando programes. En toda tu clase Fecha.java reemplazar "año" por "annio"

///////Empleado.java////////////////////

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import java.util.Scanner;
 
public class Empleado {
   private String nombre;
   private int numeroEmpleado;
   private int horasTrabajadas;
   private double salario;
   private double sueldo;
   private Fecha fechaIngreso;
   private Hora horaEntrada;
   //Métodos set y get
   public void setNombre (String nombre){
       this.nombre=nombre;
   }
   public String getNombre (){
       return nombre;
   }
   public void setNumeroEmpleado(int numeroEmpleado){
       this.numeroEmpleado=numeroEmpleado;
   }
   public int getNumeroEmpleado(){
       return numeroEmpleado;
   }
   public void setHorasTrabajadas(int horasTrabajadas){
       this.horasTrabajadas=horasTrabajadas;
   }
   public int getHorasTrabajadas(){
       return horasTrabajadas;
   }
   public void setSalario(double salario){
       this.salario=salario;
   }
   public double getSalario(){
       return salario;
   }
   public void setSueldo(double sueldo){
       this.sueldo=sueldo;
   }
   public double getSueldo(){
       return sueldo;
   }
   public void setFechaIngreso(Fecha fechaIngreso){
       this.fechaIngreso=fechaIngreso;
   }
   public Fecha getFechaIngreso(){
       return fechaIngreso;
   }
   public void setHoraEntrada(Hora horaEntrada){
       this.horaEntrada=horaEntrada;
   }
   public Hora getHoraEntrada(){
       return horaEntrada;
   }
   //Constructor
   public Empleado (){
     Scanner s = new Scanner(System.in);
       System.out.println("Dame el nombre del empleado:");
       nombre=s.next();
       System.out.println("Dame el numero de emplado que se le asigno:");
       numeroEmpleado=s.nextInt();
       System.out.println("Dame las horas que trabajo");
       horasTrabajadas=s.nextInt();
       System.out.println("Dame su salario:");
       salario=s.nextDouble();
       System.out.println("Dame su fecha de ingreso:");
       fechaIngreso = new Fecha();
       fechaIngreso.darFecha();
       System.out.println("Dame su hora de entrada:");
       horaEntrada = new Hora();
       horaEntrada.darHora();
    }
   //Métodos
 
   public void calcularSueldo () {
       this.sueldo=this.salario * this.horasTrabajadas;
       System.out.println ("El sueldo es de "+sueldo);
   }
   public void imprimirFicha (){
       System.out.println("El empleado "+nombre);
       System.out.println ("Con número de trabajador "+numeroEmpleado);
       System.out.println ("Tiene un sueldo de "+sueldo);
       fechaIngreso.imprimirFecha();
       horaEntrada.imprimirHora();
   }
 
}






//////////////////Hora.java//////////////////////

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.util.Scanner;
 
public class Hora{
  //Atributos
    int horas;
    int minutos;
    int segundos;
  //Constructor
    public Hora(){
 
    }
 
    public Hora (int horas, int minutos, int segundos){
        this.horas=horas;
        this.minutos=minutos;
        this.segundos=segundos;
    }
  //Métodos
    public void inicializarHora (){
        if((horas==0)&&(minutos==0)&&(segundos==0))
            System.out.println("Ya esta en ceros la hora");
        else{
            System.out.println("Convirtiendo...");
            horas=0;
            minutos=0;
            segundos=0;
        }
    }
    public void darHora (){
        Scanner s=new Scanner (System.in);
        System.out.println ("Ingresa la hora");
        horas=s.nextInt();
        System.out.println ("Ingresa los minutos");
        minutos=s.nextInt ();
        System.out.println ("Ingresa los segundos");
        segundos=s.nextInt ();
    }
    public void verificarHora (){
        if ((horas>=0)&&(horas<=23))
            System.out.println("Hora aceptada");
        else{
            System.out.println("Hora invalida, dando hora al azar");
            horas=horas-24;
        }
        if((minutos>=0)&&(minutos<=59))
            System.out.println("Minutos aceptados");
        else{
            System.out.println("Minutos invalidos, dando minutos al azar");
            minutos=minutos-60;
        }
        if((segundos>=0)&&(segundos <=59))
            System.out.println("Segundos aceptados correctamente");
        else{
            System.out.println("Segundos invalidos, dando segundos al azar");
            segundos=segundos-60;
        }
    }
    public void imprimirHora (){
        System.out.println("La hora es:"+horas+":"+minutos+":"+segundos);
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar