[ Foro de Java ]

problemas con el return

04-Jun-2021 19:04
Invitado (flashdrian)
0 Respuestas

muy buenas  querria saber si hay alguien que me podira ayudar a resolver un problema de returns,este seria el codigo son varios apartados por que es con herencia.
*****************Presupuesto***********************
public class Presupuesto {

   final double COMISION_GESTION = 8.25;

   protected String DNI;
   protected String nombre;
   protected int numPasajeros;
   protected String tipoDeServicio;
   protected double precioBase;

   
   public Presupuesto(){
       
   }
   
   
   public Presupuesto(String DNI, String nombre, int numPasajeros, String tipoDeServicios) {
       this.DNI = DNI;
       this.nombre = nombre;
       this.numPasajeros = numPasajeros;
       this.tipoDeServicio = tipoDeServicios;
   }


   public String getTipoDeServicio() {
       return tipoDeServicio;
   }

   public void setTipoDeServicio(String tipoDeServicio) {
       this.tipoDeServicio = tipoDeServicio;
   }

   public void setDNI(String DNI) {
       this.DNI = DNI;
   }

   public void setNombre(String nombre) {
       this.nombre = nombre;
   }

   public void setNumPasajeros(int numPasajeros) {
       this.numPasajeros = numPasajeros;
   }

   public double getCOMISION_GESTION() {
       return COMISION_GESTION;
   }

   public String getDNI() {
       return DNI;
   }

   public String getNombre() {
       return nombre;
   }

   public int getNumPasajeros() {
       return numPasajeros;
   }
   private void setPrecioBase(){
       this.precioBase=numPasajeros*COMISION_GESTION;
   }
}
************************************************************

***********************EstanciaHotel***********************
public class EstanciaHotel extends Presupuesto {

   final int hotelesCosta = 45;
   final int hotelesInterior = 35;
   final int CapitalesEu = 60;

   final int alojamiento = 0;
   final int mediaPension = 10;
   final int pensionCompleta = 15;

   protected String ciudad;
   protected int numDias;
   protected String tipoLocalizacion;
   protected String tipoDePension;
   protected double precioFinal;

   public EstanciaHotel(String ciudad, int numDias, String tipoLocalizacion, String tipoDePension, double precioFinal, String DNI, String nombre, int numPasajeros, String tipoDeServicios) {
       super(DNI, nombre, numPasajeros, tipoDeServicios);
       this.ciudad = ciudad;
       this.numDias = numDias;
       this.tipoLocalizacion = tipoLocalizacion;
       this.tipoDePension = tipoDePension;
   }

   EstanciaHotel(){
       
   }

   public void calcularPrecio() {

       switch (this.tipoDePension) {
           case "Alojamiento":
               this.precioFinal = alojamiento + numDias * numPasajeros;
               break;
           case "Media Pension":
               this.precioFinal = mediaPension + numDias * numPasajeros;
               break;
           case "Pension Completa":
               this.precioFinal = pensionCompleta + numDias * numPasajeros;
               break;
           default:  //Pongo que por defecto sea el mas barato
               this.precioFinal = mediaPension;
               break;
       }
       this.precioFinal += super.COMISION_GESTION;
   }

   public int getHotelesCosta() {
       return hotelesCosta;
   }

   public int getHotelesInterior() {
       return hotelesInterior;
   }

   public int getCapitalesEu() {
       return CapitalesEu;
   }

   public int getAlojamiento() {
       return alojamiento;
   }

   public int getMediaPension() {
       return mediaPension;
   }

   public int getPensionCompleta() {
       return pensionCompleta;
   }

   public String getCiudad() {
       return ciudad;
   }

   public int getNumDias() {
       return numDias;
   }

   public String getTipoLocalizacion() {
       return tipoLocalizacion;
   }

   public String getTipoDePension() {
       return tipoDePension;
   }

   public double getPrecioFinal() {
       return precioFinal;
   }

   public String toString() {
       return this.getNombre() + "    " + this.getDNI() + "    " + this.getNumPasajeros() + "     " + this.getTipoDeServicio() + "    " + this.getPrecioFinal();
   }

}
*******************************************************

****************************Vuelo**********************
public class Vuelo extends Presupuesto {

   final int tasaPeninsular = 100;
   final int tasaDentroDeEuropa = 150;
   final int tasaFueraDeEuropa = 200;

   protected String ciudadDeSalida;
   protected String ciudadDeDestino;
   protected String tipoDeVuelo;
   protected String idaOvuelta;
   protected double precioFinal;

   public Vuelo(String ciudadDeSalida, String ciudadDeDestino, String tipoDeVuelo, String idaOvuelta, String DNI, String nombre, int numPasajeros, String tipoDeServicios) {
       super(DNI, nombre, numPasajeros, tipoDeServicios);
       this.ciudadDeSalida = ciudadDeSalida;
       this.ciudadDeDestino = ciudadDeDestino;
       this.tipoDeVuelo = tipoDeVuelo;
       this.idaOvuelta = idaOvuelta;
   }

   Vuelo() {

   }

   public void calcularSueldo() {

       switch (this.tipoDeVuelo) {
           case "Peninsular":
               this.precioFinal = tasaPeninsular + COMISION_GESTION;
               break;
           case "Dentro de Europa":
               this.precioFinal = tasaDentroDeEuropa + COMISION_GESTION;
               break;
           case "Fuera de Europa":
               this.precioFinal = tasaFueraDeEuropa + COMISION_GESTION;
               break;
           default:  //Pongo que por defecto sea el mas barato
               this.precioFinal = tasaPeninsular;
               break;
       }
       this.precioFinal += super.COMISION_GESTION;
   }

   public int getTasaPeninsular() {
       return tasaPeninsular;
   }

   public int getTasaDentroDeEuropa() {
       return tasaDentroDeEuropa;
   }

   public int getTasaFueraDeEuropa() {
       return tasaFueraDeEuropa;
   }

   public String getCiudadDeSalida() {
       return ciudadDeSalida;
   }

   public String getCiudadDeDestino() {
       return ciudadDeDestino;
   }

   public String getTipoDeVuelo() {
       return tipoDeVuelo;
   }

   public String getIdaOvuelta() {
       return idaOvuelta;
   }

   public double getPrecioFinal() {
       return precioFinal;
   }

   public String toString() {
       return this.getNombre() + "    " + this.getDNI() + "    " + this.getNumPasajeros() + "     " + this.getTipoDeServicio() + "    " + this.getPrecioFinal();
   }
}
********************************************************************
********************************Test**********************************
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.FileReader;

public class Test {

   static Scanner teclado = new Scanner(System.in);

   public static Presupuesto contratarVacaciones() {
       String hotel_vuelo = "";
       String DNI;
       int numPasajeros;
       int numDias;
       boolean vueloValido = false;
       boolean tipoValido = false;
       while (!vueloValido) {
           System.out.println("¿Que tipo de servicio se le ofrece?(Vuelo o Hotel)");
           hotel_vuelo = teclado.next();
           if (!hotel_vuelo.equalsIgnoreCase("vuelo") && !hotel_vuelo.equalsIgnoreCase("hotel")) {
               System.out.println("Introduzca un servicio valido.");
               System.out.println("-----------------------------------------------");
           } else {
               vueloValido = true;
           }
       }
       System.out.print("Introduzca su DNI: ");
       DNI = teclado.next();
       System.out.print("Introduzca cuantos pasajeros sereis: ");
       numPasajeros = teclado.nextInt();
       System.out.print("Introduzca cuantos dias va a estar: ");
       numDias = teclado.nextInt();

       while (!tipoValido) {
           if (hotel_vuelo.equalsIgnoreCase("hotel")) {
               System.out.println("Introduzca que tipo de pension: (Solo Alojamiento, Media Pension, Pension Completa)");
               String tipoDePension = teclado.nextLine();
               if ((!tipoDePension.equals("Solo Alojamiento") && !tipoDePension.equals("Media Pension")) && !tipoDePension.equals("Pension Completa")) {
                   System.out.println("No ha introducido una opcion valida.");
                   System.out.println("---------------------");
               } else {
                   tipoValido = true;
                   System.out.println("La operacion fue un exito");
               }
           } else {
               System.out.println("Introduzca que tipo de vuelo desea (Dentro de la Peninsula, Europa, Fuera de Europa)");
               String tipoDeVuelo = teclado.nextLine();
               if (!tipoDeVuelo.equals("Dentro de la Peninsula") && !tipoDeVuelo.equals("Europa") && !tipoDeVuelo.equals("Fuera de Europa")) {
                   System.out.println("No ha introducido un tipo valido.");
                   System.out.println("-----------------------------------------------");
               } else {
                   tipoValido = true;
                   System.out.println("La operacion fue un exito");
               }
           }
       }
       /*se que tengo que hacer returns pero me daban fallos*/
   }

   public static void ordenarPorNombres(Presupuesto[] array) {
       Presupuesto aux;
       for (int i = 0; i < array.length - 1; i++) {
           for (int j = 0; j < array.length - i - 1; j++) {
               if (array[j + 1].getNombre().compareTo(array[j].getNombre()) < 0) {
                   aux = array[j + 1];
                   array[j + 1] = array[j];
                   array[j] = aux;
               }
           }
       }
   }


   public static void main(String[] args) {
       Presupuesto[] presupuestos = new Presupuesto[6];
       presupuestos[0] = new EstanciaHotel();
       presupuestos[1] = new EstanciaHotel();
       presupuestos[2] = new EstanciaHotel();
       presupuestos[3] = new Vuelo();
       int hoteles = 0, vuelos = 0;
       for (int i = 0; i < 9; i++) {
           if (presupuestos[i] instanceof EstanciaHotel) {
               hoteles++;
           } else if (presupuestos[i] instanceof Vuelo) {
               vuelos++;
           }
       }
       System.out.println("Vuelos: " + vuelos + "\nHoteles: " + hoteles);
       String texto = "";
       for (int i = 0; i < presupuestos.length; i++) {
           texto += presupuestos[i].toString();
           texto += "\n";
       }
       try {
           File archivo = new File("vacaciones.txt");
           FileWriter lapiz = new FileWriter(archivo, true);
           lapiz.write(texto);
           lapiz.close();
       } catch (Exception e) {
           System.out.println("Error al escribir.");
       }
       try{
           FileReader lector = new FileReader("agenciaViajes.dat");
           BufferedReader contenido = new BufferedReader(lector);
           String textoLeido;
           while((textoLeido=contenido.readLine())!=null){
               System.out.println(textoLeido);
           }
           contenido.close();
       }catch(Exception e){
           System.out.println("Error al leer");
       }

   }
}
*******************************************************************




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)