Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: construyendo una nueva aplicación

principal.java

package com.ssi.sisGestionVehicular;

import com.ssi.sisGestionVehicular.modelos.Auto;
import com.ssi.sisGestionVehicular.modelos.Camion;
import com.ssi.sisGestionVehicular.modelos.Moto;

public class Principal {

    public static void main(String[] args) {

        Auto auto = new Auto();

        auto.setMarca("Toyota");
        auto.setModelo("Corolla");
        auto.setAnio(2021);

        System.out.println("\n");
        System.out.println(auto.mostrarInfo());
        System.out.println("-----------------------");
        System.out.println(auto.apagar());
        System.out.println("\n");

        Moto moto = new Moto();

        moto.setMarca("Yamaha");
        moto.setTipo("Deportiva");
        moto.setCilindrada(600);
        System.out.println(moto.mostrarInfo());
        System.out.println("-----------------------");
        System.out.println(moto.encender());
        System.out.println("\n");

        Camion camion = new Camion();

        camion.setMarca("Volvo");
        camion.setCapacidadCarga(10.5);
        System.out.println(camion.mostrarInfo());
        System.out.println("-----------------------");
        System.out.println(camion.apagar());

    }
}

auto.java

package com.ssi.sisGestionVehicular.modelos;

import com.ssi.sisGestionVehicular.interfaz.Vehiculo;

public class Auto implements Vehiculo {

    private String marca;
    private String modelo;
    private int anio;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public int getAnio() {
        return anio;
    }

    public void setAnio(int anio) {
        this.anio = anio;
    }

    @Override
    public String encender() {
        return "El auto " + marca + " está encendido.";
    }

    @Override
    public String apagar() {
        return "El auto \" + marca + \" está apagado.";
    }

    @Override
    public String mostrarInfo() {
        return String.format("El auto tiene las siguientes caracteristicas: " +
                "\n Marca:  %1$s \n Modelo: %2$s \n Año: %3$s", getMarca(), getModelo(), getAnio());
    }

}

moto.java

package com.ssi.sisGestionVehicular.modelos;

import com.ssi.sisGestionVehicular.interfaz.Vehiculo;

public class Moto implements Vehiculo {

    private String marca;
    private String tipo;
    private int cilindrada;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public int getCilindrada() {
        return cilindrada;
    }

    public void setCilindrada(int cilindrada) {
        this.cilindrada = cilindrada;
    }

    @Override
    public String encender() {
        return "La moto " + marca + " está encendida.";
    }

    @Override
    public String apagar() {
        return "La moto " + marca + " está apagada.";
    }

    @Override
    public String mostrarInfo() {
        return String.format("El Camión tiene las siguientes caracteristicas: " +
                "\n Marca:  %1$s \n Tipo: %2$s \n Cilindrada: %3$s", getMarca(), getTipo(), getCilindrada());
    }
}

camion.java

package com.ssi.sisGestionVehicular.modelos;

import com.ssi.sisGestionVehicular.interfaz.Vehiculo;

public class Camion implements Vehiculo {

    private String marca;
    private double capacidadCarga;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public double getCapacidadCarga() {
        return capacidadCarga;
    }

    public void setCapacidadCarga(double capacidadCarga) {
        this.capacidadCarga = capacidadCarga;
    }

    @Override
    public String encender() {
        return "El camión " + marca + " está encendido.";
    }

    @Override
    public String apagar() {
        return "El camión " + marca + " está apagado.";
    }

    @Override
    public String mostrarInfo() {
        return String.format("El Camión tiene las siguientes caracteristicas: " +
                "\n Marca:  %1$s \n Capacidad: %2$s toneladas", getMarca(), getCapacidadCarga());
    }
}
1 respuesta

¡Hola Juan!

Parece que estás trabajando en un proyecto interesante aplicando los conceptos de programación orientada a objetos en Java. He revisado tu código y hay algunas cosas que podrías ajustar para mejorar tu aplicación.

  1. Errores de impresión en Auto y Moto:

    • En tu método apagar() de la clase Auto, parece que hay un pequeño error de concatenación. Debería ser:
      @Override
      public String apagar() {
          return "El auto " + marca + " está apagado.";
      }
      
    • En el método mostrarInfo() de la clase Moto, el texto dice "El Camión tiene las siguientes caracteristicas:". Debería ser "La moto tiene las siguientes características:" para reflejar correctamente el tipo de vehículo.
  2. Consistencia en los mensajes:

    • Asegúrate de que los mensajes de salida sean consistentes y reflejen correctamente el objeto que representan. Esto ayuda a evitar confusiones al leer los resultados.
  3. Práctica de polimorfismo:

    • Si deseas practicar polimorfismo, podrías considerar tener una lista de objetos Vehiculo y recorrerla para llamar a los métodos mostrarInfo(), encender() y apagar(). Esto te permitirá ver cómo el polimorfismo permite tratar diferentes tipos de vehículos de manera uniforme.

Aquí tienes un pequeño ejemplo de cómo podrías implementar esto:

import java.util.ArrayList;
import java.util.List;

public class Principal {

    public static void main(String[] args) {
        List<Vehiculo> vehiculos = new ArrayList<>();

        Auto auto = new Auto();
        auto.setMarca("Toyota");
        auto.setModelo("Corolla");
        auto.setAnio(2021);

        Moto moto = new Moto();
        moto.setMarca("Yamaha");
        moto.setTipo("Deportiva");
        moto.setCilindrada(600);

        Camion camion = new Camion();
        camion.setMarca("Volvo");
        camion.setCapacidadCarga(10.5);

        vehiculos.add(auto);
        vehiculos.add(moto);
        vehiculos.add(camion);

        for (Vehiculo vehiculo : vehiculos) {
            System.out.println(vehiculo.mostrarInfo());
            System.out.println(vehiculo.encender());
            System.out.println(vehiculo.apagar());
            System.out.println("-----------------------");
        }
    }
}

Espero que estas sugerencias te sean útiles y te ayuden a mejorar tu aplicación. ¡Buenos estudios!