Me sale el error java.lang.NullPointerException , pero no entiendo el por que , cuando puse el metodo en static ya no me salia el error pero no me aumentaba el % igualmente , no acabo de enterder cual es el error si es la inicializacion o otra cosa y "me refiero al Metodo subeSueldo de la clase Empleado"
public static void main(String arg[]) {
Empleado [] misEmpleados = new Empleado[3];
String nombre;
String sueldo = null;
String año,mes,dia;
String Empleado ;
String porcentaje;
for (Empleado e:misEmpleados ) {
Empleado = JOptionPane.showInputDialog("Empleado o Jefe : \n Jefe : J \n Empleado : E");
nombre = JOptionPane.showInputDialog("Ingrese el nombre del empleado : ");
sueldo = JOptionPane.showInputDialog("Ingrese el Sueldo : ");
año = JOptionPane.showInputDialog("El año");
mes = JOptionPane.showInputDialog("El mes");
dia = JOptionPane.showInputDialog("El dia");
porcentaje = JOptionPane.showInputDialog("Ingrese el % del sueldo que desea Incrimentar : ");
double sueld = Double.parseDouble(sueldo);
int añoInt= Integer.parseInt(año);
int mesInt = Integer.parseInt(mes);
int diaInt = Integer.parseInt(dia);
double porc = Double.parseDouble(porcentaje);
e.subeSueldo(porc);// Error <---------------------------
if (Empleado.equalsIgnoreCase("E"))
{
e = new Empleado(nombre,sueld,añoInt,mesInt,diaInt);
System.out.println(e.dameDatosEmpleado());
}
if (Empleado.equalsIgnoreCase("J"))
{
e = new Jefatura(nombre,sueld,añoInt,mesInt,diaInt);
Jefatura.asignarIncentivo(2570);
System.out.println("El nombre del Jefe es : "+ e.dameNombre() + "\n" +
"El sueldo el Jefe es : " + e.dameSueldo() + "\n" +
"Alta es : " + e.dameFechaContrato()
);
}
}
}
//Clase Padre Empleado
private String nombre;
private double sueldo;
private Date altaContrato;
private static int ID =100;
public Empleado(String nom, double sue,int agno,int mes, int dia){
nombre = nom;
sueldo = sue;
GregorianCalendar calendario = new GregorianCalendar(agno, mes-1,dia);
altaContrato = calendario.getTime();
}
public void subeSueldo(double porcen ){
sueldo *=(porcen/100)+1;
}
public String dameDatosEmpleado(){
ID++;
return "Nombre del Empleado : " + nombre + "\n" + "Sueldo del Empleado : " + sueldo + "\n"+"Fecha de Alta : " + altaContrato + "\n" + "ID del Empelado : " + "E" +ID;
}
public String dameNombre(){
return nombre;
}
public Date dameFechaContrato(){
return altaContrato;
}
public double dameSueldo(){
return sueldo;
}
//Clase Hija Jefatura
private static double incentivo;
private static int ID=100;
public Jefatura(String nombre,double sueldo,int año, int mes , int dia){
super(nombre,sueldo,año,mes,dia);
}
public static void asignarIncentivo(double b){
incentivo = b;
}
public double dameSueldo(){
double sueldoJefe = super.dameSueldo();
return sueldoJefe+incentivo;
}
public String dameNombre(){
ID++;
String nombreJefe = super.dameNombre();
return nombreJefe + "\n" + "ID del Jefe : "+ "J"+ID;
}
introducir el código aquí
introducir el código aquí