Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 24 de Junio 2016, 23:54

Título: recomendaciones para programar en Java y reutilizar el código ejemplo CU00907C
Publicado por: DRANXZ88 en 24 de Junio 2016, 23:54
Propuesta de solución para el ejercicio CU00907C del curso de java avanzado:

Clase principal main

Código: [Seleccionar]
package ejercicioscu00907c;

public class EjerciciosCu00907c {

    public static void main(String[] args) {
        Calcular calcular = new Calcular();
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        System.out.println("Por favor introduzca el importe inicial: ");
        entrada.Agregar();
        double ImporteInicial = Double.valueOf(entrada.getEntrada());
        System.out.println("Por favor introduzca el porcentaje de impuestos: ");
        entrada.Agregar();
       double porcentaje = Double.valueOf(entrada.getEntrada());
       calcular.CalcularImporteFinal(ImporteInicial, porcentaje);
    }
   
}


Clase entrada del teclado

Es para gestionar el teclado

Código: [Seleccionar]
package ejercicioscu00907c;

import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

    public String Agregar() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

    public String getEntrada() {
        return entradaTeclado;
    }

}


Clase calcular

Donde esta el método para calcular el ingreso final.

Código: [Seleccionar]
package ejercicioscu00907c;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class Calcular {

    public Calcular() {
    }

    public void CalcularImporteFinal(double importeInicial, double porcentaje) {
        BigDecimal impuesto;
        BigDecimal importeFinal;
        impuesto = BigDecimal.valueOf((importeInicial * porcentaje) / 100);
        impuesto = impuesto.setScale(2, RoundingMode.HALF_UP);
        importeFinal = BigDecimal.valueOf(importeInicial).add(impuesto);
        importeFinal = importeFinal.setScale(2, RoundingMode.HALF_UP);
       
        System.out.println("El impuesto a pagar es: " + impuesto);
        System.out.println("El importe final es: " + importeFinal);
    }
}
Título: Re:Ejercicios de java avanzado I CU00907C
Publicado por: javi in the sky en 29 de Junio 2016, 15:53
Hola me parece bien la solución y como recomendaciones:

Dar nombres adecuados a las clases. En vez de Calcular que no suena bien "crear un objeto Calcular" podría ser "Calculadora" y así decir "crear un objeto Calculadora"

Si los métodos son para realizar un cálculo diseñarlos como función en lugar de como procedimiento. Por ejemplo public void CalcularImporteFinal(double importeInicial, double porcentaje)

Además un método debe encargarse de algo específico, en este caso si se encarga de hacer los cálculos no debería encargarse de mostrar resultados por pantalla, cada método debe encargarse de cosas independientes, así puedes reutilizar el método en otros programas.

Hasta luego
Título: Re:Ejercicios de java avanzado I CU00907C
Publicado por: DRANXZ88 en 29 de Junio 2016, 16:02
Gracia por tu recomendaciones voy a llevarlos en cuenta para mejorar mi código. Si entiendo así voy a poder usar en otra clase o llamarlo cuando quiera para reutilizarlos gracia. :) :)