Jump to content

ayuda urgente(java)


Recommended Posts

Ayuda porfavor.....

 

no puedo lograr que el ususario solo pueda ingresar tres categorias definidas por mi no se como cresta alguien que me ilumine por favor!!!!!!!!!

 

este es el error: java.lang.nullpointerexception:null

 

el ejercicio que tengo que hacer

 

Ejercicio

 

 

La línea aérea “Alas del Sur” necesita llevar un registro de los tripulantes que viajan en cada vuelo, para eso ha creado una Base de Datos llamada Aerolíneas, con las siguientes clases (todas deben quedar en el package aerolíneas.baseDeDatos):

 

1.- Tripulante

 

 

Atributos:

 

nombre: String (debe venir un nombre y un apellido)

rut: String (largo mínimo 8)

edad: int (rango entre 18 y 45 años)

casado: boolean

categoria: String (solo pueden existir las siguientes categorías: capitán, marino, pasajero)

 

 

Métodos:

 

Constructor sin parámetros

Constructor con parámetros ( que reciba todos los atributos, excepto casado que debe inicializarse en false)

Accesador para cada atributo

Mutador para cada atributo

Método de impresión

Método que permita mostrar(imprimir) la categoría, según el siguiente algoritmo:

Si edad es menor a 22, categoría es aprendiz

Si edad está entre 22 y 30, categoría es auxiliar

Si edad es mayor a 30, categoría es titular

 

 

el codigo ke tengo

 

public class Aerolineas

{

private String nombre;

private String rut;

private int edad;

private boolean casado;

private String categoria;

 

public Aerolineas()

{

}

 

public Aerolineas(String nombre,String rut,int edad,String categoria)

{

this.nombre=nombre;

this.rut=rut;

this.edad=edad;

this.categoria=categoria;

this.casado=false;

}

 

public void Imprimir()

{

System.out.println("Nombre: "+nombre);

System.out.println("Rut: "+rut);

System.out.println("Edad: "+edad);

System.out.println("Casado: "+casado);

ImprCategoria();

}

 

public void ImprCategoria()

{

if(this.edad<22)

{

this.categoria="aprendiz";

System.out.println("Categoria: Aprendiz");

}

if(this.edad>=22&&this.edad<=30)

{

this.categoria="auxiliar";

System.out.println("Categoria: Auxiliar");

}

if(this.edad>30)

{

this.categoria="titular";

System.out.println("Categoria: Titular");

}

}

 

public String getNombre()

{

return nombre;

}

 

public void setNombre(String nombre)

{

this.nombre=nombre;

}

 

public String getRut()

{

return rut;

}

 

public void setRut(String rut)

{

if(rut.trim().length()>8)

this.rut=rut.trim().toUpperCase();

else

System.out.println("Ingerese un rut valido!!!");

}

 

public int getEdad()

{

return edad;

}

 

public void setEdad(int edad)

{

if(edad>=18 && edad<=45)

{

this.edad=edad;

}

else

{

System.out.println("La edad de ve ser entre 18 y 45 años");

}

}

 

public boolean getCasado()

{

return casado;

}

 

public void setCasado(boolean casado)

{

this.casado=casado;

}

 

public String getCategoria()

{

return categoria;

}

 

public void setCategoria(String catergoria)

{

if(this.categoria.trim().toUpperCase()=="CAPITAN"||this.categoria.trim().toUpperCase()=="MARINERO"||

this.categoria.trim().toUpperCase()=="PASAJERO")

{

this.categoria=categoria.trim().toUpperCase();

}

else

{

System.out.println("Solo se permiten estas categorias: CAPITAN,MARINERO,PASAJERO.");

}

}

}

Edited by Dr.Smoke
Link to comment
Share on other sites

Esto lo ejecutas y no pasa nada cierto??...tal vez si en algún lado de tu código pidieras una entrada de datos por pantalla que llenará tus variables, o que verificarás que tus variables no sean null, o usarás un try o un catch, no tendrías problemas de este tipo....donde ingresas los datos???, no veo donde...veo muchos System.out.println pero nada de esto:


InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader (isr);

        try
        {
            System.out.print("Ingrese Rut : ");
            rut = br.readLine();
            System.out.print("Ingrese Categoria : ");
            categoria = br.readLine();
         }
         catch (Exception e)
        {
            rut=" ";
            categoria=" ";
        }

 

O sea en ningun lado llenas tus variables con algo...y mas encima no manejas en ningun lado que tus variables nulas pasen de una funcion a otras siendo nulas y de ahi el error de puntero a null....saludos :notonto:

 

PD: Me explaye :cuentanosmas:....por cierto no sé java, pero soy programador y todo esto es igual, simple sintaxis :tonto:

 

Link to comment
Share on other sites

<_< En el metodo setCategoria(...) estas usando el this... en vez de validar el parametro... (por eso el null)

 

:paco: Otra cosa... Los String (objetos) se comparan con equals(...) no con ==

 

:banana: :banana: :banana: :banana:

 

----- bueno proble ma resuelto esto era al final!!!!!!

 

public void setCategoria(String categoria)

{

if(categoria.trim().toUpperCase().equals("CAPITAN")||

categoria.trim().toUpperCase().equals("MARINERO")||

categoria.trim().toUpperCase().equals("PASAJERO"))

{

this.categoria=categoria.trim().toUpperCase();

}

else

{

System.out.println("Solo se permiten las siguientes categorias capitan,marinero,pasajero");

}

}

 

bueno en la parte roja estaba escrito "String cartergoria" y no "String categoria" por eso daba el error java.lang.nullpointerexception:null

 

y gracias por lo del equals que se me estaba olvidando ya con eso termine :bravo:

Edited by Dr.Smoke
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...