Dr.Smoke Posted April 11, 2011 Report Share Posted April 11, 2011 (edited) 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 April 12, 2011 by Dr.Smoke Link to comment Share on other sites More sharing options...
AshWilliams Posted April 12, 2011 Report Share Posted April 12, 2011 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 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 More sharing options...
rvega77 Posted April 12, 2011 Report Share Posted April 12, 2011 <_< 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: Link to comment Share on other sites More sharing options...
Dr.Smoke Posted April 12, 2011 Author Report Share Posted April 12, 2011 (edited) <_< 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 April 12, 2011 by Dr.Smoke Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now