
Error null
Publicado por joaquin (5 intervenciones) el 28/11/2022 22:38:59
Buenas muchas gracias de ante mano
Soy nuevo desarrollando en java, estoy realizando un proyecto para un software de un aeropuerto como ejercicio de mi curso en java.
En este caso es sobre POO ya tengo los objetos creados con sus respectivos constructores y getters y sus datos ya completados en el codigo, pero al momento de llamarlos me aparece un error diciendo que estan vacios, por lo que entiendo.
este es el error:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Proyecto_1.Aeropuerto.getNombre()" because "aeropuertos[i]" is null
MAIN CLASS:
package Proyecto_1;
import java.util.Scanner;
public class Principal {
static Scanner entrada = new Scanner(System.in);
final static int num = 4;
static Aeropuerto aeropuertos[] = new Aeropuerto[num];
public static void main(String[] args){
menu();
insertarDatosAeropuerto(aeropuertos);
}
public static void insertarDatosAeropuerto(Aeropuerto aero[]){
aero[0] = new Publicos (10000000, "Aeroparque Internacional Jorge Newbery", "Buenos Aires", "Argentina");
aero[0].insertarCompañia(new Compañia("Fly bondi"));
aero[0].insertarCompañia(new Compañia("Aerolineas Argentinas"));
aero[0].getCompañia("Fly bondi").insertarVuelo(new Vuelo("IB20","Buenos Aires","Puerto Madryn",12000,150));
aero[0].getCompañia("Fly bondi").insertarVuelo(new Vuelo("IB21","Buenos Aires","Trelew",10000,150));
aero[0].getCompañia("Aerolinas Argentinas").insertarVuelo(new Vuelo("FC12","Buenos Aires","Londres",200000,300));
aero[0].getCompañia("fly Bondi").getVuelo("IB20").insertarPasajero(new Pasajeros("Joaquin","20BGHP","Argentina"));
aero[0].getCompañia("fly Bondi").getVuelo("IB20").insertarPasajero(new Pasajeros("Maria","Pjkl20","Argentina"));
aero[0].getCompañia("Aerolinas Argentinas").getVuelo("FC12").insertarPasajero(new Pasajeros("Raul","JHK12","Peruano"));
aero[1] = new Publicos (3000000, "Aeropuerto El Tehuelche", "Puerto Madryn", "Argentina");
aero[1].insertarCompañia(new Compañia("Jet Smart"));
aero[1].insertarCompañia(new Compañia("Lade"));
aero[1].getCompañia("Jet Smart").insertarVuelo(new Vuelo("AE30","Puerto Madryn","Buenos Aires",12000,150));
aero[1].getCompañia("Jet Smart").insertarVuelo(new Vuelo("AE31","Puerto Madryn","Cordoba",9000,150));
aero[1].getCompañia("Lade").insertarVuelo(new Vuelo("HJ51","Puerto Madryn","Eseisa",15000,250));
aero[1].getCompañia("Jet Smart").getVuelo("AE30").insertarPasajero(new Pasajeros("Marcos","4530IB","Argentina"));
aero[1].getCompañia("Jet Smart").getVuelo("AE31").insertarPasajero(new Pasajeros("Mariela","2456OI","Argentina"));
aero[1].getCompañia("Lade").getVuelo("HJ51").insertarPasajero(new Pasajeros("Manuela","124214GH","Peruano"));
aero[2] = new Privado("San Fernando", "San Fernando", "Argentina");
aero[2].insertarCompañia(new Compañia("Copa Airlines"));
aero[2].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("R12","San fernando","Comodoro rivadavia",90000,15));
aero[2].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("E34","San fernando","Neuquen",90000,15));
aero[2].getCompañia("Copa Airlines").getVuelo("R12").insertarPasajero(new Pasajeros("Marcos","42340IB","Argentina"));
aero[2].getCompañia("Copa Airlines").getVuelo("E34").insertarPasajero(new Pasajeros("Mariela","4277OI","Argentina"));
aero[3] = new Privado("ALLEN", "Cordoba", "Argentina");
aero[3].insertarCompañia(new Compañia("Copa Airlines"));
aero[3].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("R120","Cordoba","Comodoro rivadavia",70000,15));
aero[3].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("J34","Cordoba","San fernando",60000,4));
aero[3].getCompañia("Copa Airlines").getVuelo("R120").insertarPasajero(new Pasajeros("Damian","42341735","Argentina"));
aero[3].getCompañia("Copa Airlines").getVuelo("J34").insertarPasajero(new Pasajeros("Martin","42771128","Argentina"));
}
public static void menu(){
int opcion;
do{
System.out.println("\t.:MENU:.");
System.out.println("1. Ver Aeropuertos gestionados (Publico o privados)");
System.out.println("2. Ver empresas(privado) o subvencion(Publicos)");
System.out.println("3. Lista de compañias de un aerpuerto");
System.out.println("4. Lista de vuelos por Compañia");
System.out.println("5. Listar posibles vuelos de Origen a Destino");
System.out.println("6. Salir");
System.out.println("Opcion: ");
opcion = entrada.nextInt();
switch(opcion){
case 1 -> {
System.out.println("");
mostrarDatosAeropuertos(aeropuertos);
break;
}
case 2 -> {
System.out.println("");
mostrarPatrosinio(aeropuertos);
break;
}
case 3 -> {
}
case 4 -> {
}
case 5 -> {
}
case 6 -> {
}
default -> System.out.println("Error opcion no valida...");
}
}while(opcion!=6);
}
public static void mostrarDatosAeropuertos(Aeropuerto aeropuertos[]){
for(int i=0;i<aeropuertos.length;i++){
if(aeropuertos[i] instanceof Privado){
System.out.println("Aeropuerto Privado");
System.out.println("Nombre: "+aeropuertos[i].getNombre());
System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
System.out.println("Pais: "+aeropuertos[i].getPais());
}
else{
System.out.println("Aeropuerto Publico");
System.out.println("Nombre: "+aeropuertos[i].getNombre());
System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
System.out.println("Pais: "+aeropuertos[i].getPais());
}
System.out.println("");
}
}
public static void mostrarPatrosinio(Aeropuerto aeropuertos[]){
String empresas[];
for(int i=0;i<aeropuertos.length;i++){
if(aeropuertos[i] instanceof Privado){
System.out.println("Aeropuerto Privado: "+aeropuertos[i].getNombre());
empresas = ((Privado)aeropuertos[i]).getListaEmpresas();
for(int j=0;j<empresas.length;j++){
System.out.println(empresas[j]);
}
}
else{
System.out.println("Aeropuerto Publico: "+aeropuertos[i].getNombre());
System.out.println("Subvencion: "+((Publicos)aeropuertos[i]).getSubvencio());
}
System.out.println("");
}
}
}
CLASE AEROPUERTO:
package Proyecto_1;
public class Aeropuerto {
private final String nombre;
private final String ciudad;
private final String pais;
private Compañia listaCompañias[] = new Compañia[10];
private int numCompañia;
public Aeropuerto(String nombre, String ciudad, String pais) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
this.numCompañia = 0;
}
public Aeropuerto(String nombre, String ciudad, String pais, Compañia c[]) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
listaCompañias = c;
this.numCompañia = c.length;
}
public void insertarCompañia(Compañia compañia){
listaCompañias[numCompañia] = compañia;
numCompañia++;
}
public String getNombre() {
return nombre;
}
public String getCiudad() {
return ciudad;
}
public String getPais() {
return pais;
}
public Compañia[] getListaCompañias() {
return listaCompañias;
}
public int getNumCompañia() {
return numCompañia;
}
public Compañia getCompañia(int i){
return listaCompañias[i];
}
public Compañia getCompañia(String nombre){
boolean encontrado = false;
int i=0;
Compañia c = null;
while((!encontrado)&&(i<listaCompañias.length)){
if(nombre.equals(listaCompañias[i].getNombre())){
encontrado = true;
c = listaCompañias[i];
}
}
return c;
}
}
CLASE PRIVADO:
package Proyecto_1;
public class Aeropuerto {
private final String nombre;
private final String ciudad;
private final String pais;
private Compañia listaCompañias[] = new Compañia[10];
private int numCompañia;
public Aeropuerto(String nombre, String ciudad, String pais) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
this.numCompañia = 0;
}
public Aeropuerto(String nombre, String ciudad, String pais, Compañia c[]) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
listaCompañias = c;
this.numCompañia = c.length;
}
public void insertarCompañia(Compañia compañia){
listaCompañias[numCompañia] = compañia;
numCompañia++;
}
public String getNombre() {
return nombre;
}
public String getCiudad() {
return ciudad;
}
public String getPais() {
return pais;
}
public Compañia[] getListaCompañias() {
return listaCompañias;
}
public int getNumCompañia() {
return numCompañia;
}
public Compañia getCompañia(int i){
return listaCompañias[i];
}
public Compañia getCompañia(String nombre){
boolean encontrado = false;
int i=0;
Compañia c = null;
while((!encontrado)&&(i<listaCompañias.length)){
if(nombre.equals(listaCompañias[i].getNombre())){
encontrado = true;
c = listaCompañias[i];
}
}
return c;
}
}
CLASE PUBLICO:
package Proyecto_1;
public class Publicos extends Aeropuerto{
private double subvencio;
public Publicos(String nombre, String ciudad, String pais) {
super(nombre, ciudad, pais);
}
public Publicos(double subvencio, String nombre, String ciudad, String pais, Compañia[] c) {
super(nombre, ciudad, pais, c);
this.subvencio = subvencio;
}
public Publicos(double subvencio, String nombre, String ciudad, String pais) {
super(nombre, ciudad, pais);
this.subvencio = subvencio;
}
public double getSubvencio() {
return subvencio;
}
}
Hay mas clases pero no participan en el error
Dejo el proyecto en formato zip
MUCHISIMAS GRACIAS

Soy nuevo desarrollando en java, estoy realizando un proyecto para un software de un aeropuerto como ejercicio de mi curso en java.
En este caso es sobre POO ya tengo los objetos creados con sus respectivos constructores y getters y sus datos ya completados en el codigo, pero al momento de llamarlos me aparece un error diciendo que estan vacios, por lo que entiendo.
este es el error:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Proyecto_1.Aeropuerto.getNombre()" because "aeropuertos[i]" is null
MAIN CLASS:
package Proyecto_1;
import java.util.Scanner;
public class Principal {
static Scanner entrada = new Scanner(System.in);
final static int num = 4;
static Aeropuerto aeropuertos[] = new Aeropuerto[num];
public static void main(String[] args){
menu();
insertarDatosAeropuerto(aeropuertos);
}
public static void insertarDatosAeropuerto(Aeropuerto aero[]){
aero[0] = new Publicos (10000000, "Aeroparque Internacional Jorge Newbery", "Buenos Aires", "Argentina");
aero[0].insertarCompañia(new Compañia("Fly bondi"));
aero[0].insertarCompañia(new Compañia("Aerolineas Argentinas"));
aero[0].getCompañia("Fly bondi").insertarVuelo(new Vuelo("IB20","Buenos Aires","Puerto Madryn",12000,150));
aero[0].getCompañia("Fly bondi").insertarVuelo(new Vuelo("IB21","Buenos Aires","Trelew",10000,150));
aero[0].getCompañia("Aerolinas Argentinas").insertarVuelo(new Vuelo("FC12","Buenos Aires","Londres",200000,300));
aero[0].getCompañia("fly Bondi").getVuelo("IB20").insertarPasajero(new Pasajeros("Joaquin","20BGHP","Argentina"));
aero[0].getCompañia("fly Bondi").getVuelo("IB20").insertarPasajero(new Pasajeros("Maria","Pjkl20","Argentina"));
aero[0].getCompañia("Aerolinas Argentinas").getVuelo("FC12").insertarPasajero(new Pasajeros("Raul","JHK12","Peruano"));
aero[1] = new Publicos (3000000, "Aeropuerto El Tehuelche", "Puerto Madryn", "Argentina");
aero[1].insertarCompañia(new Compañia("Jet Smart"));
aero[1].insertarCompañia(new Compañia("Lade"));
aero[1].getCompañia("Jet Smart").insertarVuelo(new Vuelo("AE30","Puerto Madryn","Buenos Aires",12000,150));
aero[1].getCompañia("Jet Smart").insertarVuelo(new Vuelo("AE31","Puerto Madryn","Cordoba",9000,150));
aero[1].getCompañia("Lade").insertarVuelo(new Vuelo("HJ51","Puerto Madryn","Eseisa",15000,250));
aero[1].getCompañia("Jet Smart").getVuelo("AE30").insertarPasajero(new Pasajeros("Marcos","4530IB","Argentina"));
aero[1].getCompañia("Jet Smart").getVuelo("AE31").insertarPasajero(new Pasajeros("Mariela","2456OI","Argentina"));
aero[1].getCompañia("Lade").getVuelo("HJ51").insertarPasajero(new Pasajeros("Manuela","124214GH","Peruano"));
aero[2] = new Privado("San Fernando", "San Fernando", "Argentina");
aero[2].insertarCompañia(new Compañia("Copa Airlines"));
aero[2].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("R12","San fernando","Comodoro rivadavia",90000,15));
aero[2].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("E34","San fernando","Neuquen",90000,15));
aero[2].getCompañia("Copa Airlines").getVuelo("R12").insertarPasajero(new Pasajeros("Marcos","42340IB","Argentina"));
aero[2].getCompañia("Copa Airlines").getVuelo("E34").insertarPasajero(new Pasajeros("Mariela","4277OI","Argentina"));
aero[3] = new Privado("ALLEN", "Cordoba", "Argentina");
aero[3].insertarCompañia(new Compañia("Copa Airlines"));
aero[3].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("R120","Cordoba","Comodoro rivadavia",70000,15));
aero[3].getCompañia("Copa Airlines").insertarVuelo(new Vuelo("J34","Cordoba","San fernando",60000,4));
aero[3].getCompañia("Copa Airlines").getVuelo("R120").insertarPasajero(new Pasajeros("Damian","42341735","Argentina"));
aero[3].getCompañia("Copa Airlines").getVuelo("J34").insertarPasajero(new Pasajeros("Martin","42771128","Argentina"));
}
public static void menu(){
int opcion;
do{
System.out.println("\t.:MENU:.");
System.out.println("1. Ver Aeropuertos gestionados (Publico o privados)");
System.out.println("2. Ver empresas(privado) o subvencion(Publicos)");
System.out.println("3. Lista de compañias de un aerpuerto");
System.out.println("4. Lista de vuelos por Compañia");
System.out.println("5. Listar posibles vuelos de Origen a Destino");
System.out.println("6. Salir");
System.out.println("Opcion: ");
opcion = entrada.nextInt();
switch(opcion){
case 1 -> {
System.out.println("");
mostrarDatosAeropuertos(aeropuertos);
break;
}
case 2 -> {
System.out.println("");
mostrarPatrosinio(aeropuertos);
break;
}
case 3 -> {
}
case 4 -> {
}
case 5 -> {
}
case 6 -> {
}
default -> System.out.println("Error opcion no valida...");
}
}while(opcion!=6);
}
public static void mostrarDatosAeropuertos(Aeropuerto aeropuertos[]){
for(int i=0;i<aeropuertos.length;i++){
if(aeropuertos[i] instanceof Privado){
System.out.println("Aeropuerto Privado");
System.out.println("Nombre: "+aeropuertos[i].getNombre());
System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
System.out.println("Pais: "+aeropuertos[i].getPais());
}
else{
System.out.println("Aeropuerto Publico");
System.out.println("Nombre: "+aeropuertos[i].getNombre());
System.out.println("Ciudad: "+aeropuertos[i].getCiudad());
System.out.println("Pais: "+aeropuertos[i].getPais());
}
System.out.println("");
}
}
public static void mostrarPatrosinio(Aeropuerto aeropuertos[]){
String empresas[];
for(int i=0;i<aeropuertos.length;i++){
if(aeropuertos[i] instanceof Privado){
System.out.println("Aeropuerto Privado: "+aeropuertos[i].getNombre());
empresas = ((Privado)aeropuertos[i]).getListaEmpresas();
for(int j=0;j<empresas.length;j++){
System.out.println(empresas[j]);
}
}
else{
System.out.println("Aeropuerto Publico: "+aeropuertos[i].getNombre());
System.out.println("Subvencion: "+((Publicos)aeropuertos[i]).getSubvencio());
}
System.out.println("");
}
}
}
CLASE AEROPUERTO:
package Proyecto_1;
public class Aeropuerto {
private final String nombre;
private final String ciudad;
private final String pais;
private Compañia listaCompañias[] = new Compañia[10];
private int numCompañia;
public Aeropuerto(String nombre, String ciudad, String pais) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
this.numCompañia = 0;
}
public Aeropuerto(String nombre, String ciudad, String pais, Compañia c[]) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
listaCompañias = c;
this.numCompañia = c.length;
}
public void insertarCompañia(Compañia compañia){
listaCompañias[numCompañia] = compañia;
numCompañia++;
}
public String getNombre() {
return nombre;
}
public String getCiudad() {
return ciudad;
}
public String getPais() {
return pais;
}
public Compañia[] getListaCompañias() {
return listaCompañias;
}
public int getNumCompañia() {
return numCompañia;
}
public Compañia getCompañia(int i){
return listaCompañias[i];
}
public Compañia getCompañia(String nombre){
boolean encontrado = false;
int i=0;
Compañia c = null;
while((!encontrado)&&(i<listaCompañias.length)){
if(nombre.equals(listaCompañias[i].getNombre())){
encontrado = true;
c = listaCompañias[i];
}
}
return c;
}
}
CLASE PRIVADO:
package Proyecto_1;
public class Aeropuerto {
private final String nombre;
private final String ciudad;
private final String pais;
private Compañia listaCompañias[] = new Compañia[10];
private int numCompañia;
public Aeropuerto(String nombre, String ciudad, String pais) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
this.numCompañia = 0;
}
public Aeropuerto(String nombre, String ciudad, String pais, Compañia c[]) {
this.nombre = nombre;
this.ciudad = ciudad;
this.pais = pais;
listaCompañias = c;
this.numCompañia = c.length;
}
public void insertarCompañia(Compañia compañia){
listaCompañias[numCompañia] = compañia;
numCompañia++;
}
public String getNombre() {
return nombre;
}
public String getCiudad() {
return ciudad;
}
public String getPais() {
return pais;
}
public Compañia[] getListaCompañias() {
return listaCompañias;
}
public int getNumCompañia() {
return numCompañia;
}
public Compañia getCompañia(int i){
return listaCompañias[i];
}
public Compañia getCompañia(String nombre){
boolean encontrado = false;
int i=0;
Compañia c = null;
while((!encontrado)&&(i<listaCompañias.length)){
if(nombre.equals(listaCompañias[i].getNombre())){
encontrado = true;
c = listaCompañias[i];
}
}
return c;
}
}
CLASE PUBLICO:
package Proyecto_1;
public class Publicos extends Aeropuerto{
private double subvencio;
public Publicos(String nombre, String ciudad, String pais) {
super(nombre, ciudad, pais);
}
public Publicos(double subvencio, String nombre, String ciudad, String pais, Compañia[] c) {
super(nombre, ciudad, pais, c);
this.subvencio = subvencio;
}
public Publicos(double subvencio, String nombre, String ciudad, String pais) {
super(nombre, ciudad, pais);
this.subvencio = subvencio;
}
public double getSubvencio() {
return subvencio;
}
}
Hay mas clases pero no participan en el error
Dejo el proyecto en formato zip
MUCHISIMAS GRACIAS
Valora esta pregunta


0