Advertisement
Brandford

Uso de Herencia en Java utilizando buenas practicas

Oct 25th, 2014
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.50 KB | None | 0 0
  1. // Clase EmpleadoPorComision3
  2. // Fig. 9.10: EmpleadoPorComision.java
  3. // EmpleadoPorComision usa los métodos para manipular sus
  4. // variables de instancia private.
  5.  
  6. package Capitulo9; // Linea agregada para identificar esta clase y evitar problemas de duplicidad
  7.  
  8. public class EmpleadoPorComision3
  9. {
  10.    private String primerNombre;
  11.    private String apellidoPaterno;
  12.    private String numeroSeguroSocial;
  13.    private double ventasBrutas; // ventas totales por semana
  14.    private double tarifaComision; // porcentaje de comisión
  15.  
  16.    // constructor con cinco argumentos
  17.    public EmpleadoPorComision3( String nombre, String apellido, String nss,
  18.       double ventas, double tarifa )
  19.    {
  20.       // la llamada implícita al constructor de Object ocurre aquí
  21.       primerNombre = nombre;
  22.       apellidoPaterno = apellido;
  23.       numeroSeguroSocial = nss;
  24.       establecerVentasBrutas( ventas ); // valida y almacena las ventas brutas
  25.       establecerTarifaComision( tarifa ); // valida y almacena la tarifa de comisión
  26.    } // fin del constructor de EmpleadoPorComision con cinco argumentos
  27.  
  28.    // establece el primer nombre
  29.    public void establecerPrimerNombre( String nombre )
  30.    {
  31.       primerNombre = nombre;  // debería validar
  32.    } // fin del método establecerPrimerNombre  
  33.  
  34.    // devuelve el primer nombre
  35.    public String obtenerPrimerNombre()
  36.    {
  37.       return primerNombre;
  38.    } // fin del método obtenerPrimerNombre
  39.  
  40.    // establece el apellido paterno
  41.    public void establecerApellidoPaterno( String apellido )
  42.    {
  43.       apellidoPaterno = apellido;  // debería validar
  44.    } // fin del método establecerApellidoPaterno
  45.  
  46.    // devuelve el apellido paterno
  47.    public String obtenerApellidoPaterno()
  48.    {
  49.       return apellidoPaterno;
  50.    } // fin del método obtenerApellidoPaterno
  51.  
  52.    // establece el número de seguro social
  53.    public void establecerNumeroSeguroSocial( String nss )
  54.    {
  55.       numeroSeguroSocial = nss; // debería validar
  56.    } // fin del método establecerNumeroSeguroSocial
  57.  
  58.    // devuelve el número de seguro social
  59.    public String obtenerNumeroSeguroSocial()
  60.    {
  61.       return numeroSeguroSocial;
  62.    } // fin del método obtenerNumeroSeguroSocial
  63.  
  64.    // establece el monto de ventas brutas
  65.    public void establecerVentasBrutas( double ventas )
  66.    {
  67.       if ( ventas >= 0.0 )
  68.          ventasBrutas = ventas;
  69.       else
  70.          throw new IllegalArgumentException(
  71.             "Las ventas brutas deben ser >= 0.0" );
  72.    } // fin del método establecerVentasBrutas
  73.  
  74.    // devuelve el monto de ventas brutas
  75.    public double obtenerVentasBrutas()
  76.    {
  77.       return ventasBrutas;
  78.    } // fin del método obtenerVentasBrutas
  79.    
  80.    // establece la tarifa de comisión
  81.    public void establecerTarifaComision( double tarifa )
  82.    {
  83.       if (tarifa > 0.0 && tarifa < 1.0 )
  84.          tarifaComision = tarifa;
  85.       else
  86.          throw new IllegalArgumentException(
  87.             "La tarifa de comisión debe ser > 0.0 y < 1.0" );
  88.    } // fin del método establecerTarifaComision
  89.  
  90.    // devuelve la tarifa de comisión
  91.    public double obtenerTarifaComision()
  92.    {
  93.       return tarifaComision;
  94.    } // fin del método obtenerTarifaComision
  95.  
  96.    // calcula los ingresos
  97.    public double ingresos()
  98.    {
  99.       return obtenerTarifaComision() * obtenerVentasBrutas();
  100.    } // fin del método ingresos
  101.  
  102.    // devuelve representación String del objeto EmpleadoPorComision
  103.    @Override // indica que este método sobrescribe el método de la superclase
  104.    public String toString()
  105.    {
  106.       return String.format( "%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f",
  107.          "empleado por comision", obtenerPrimerNombre(), obtenerApellidoPaterno(),
  108.          "numero de seguro social", obtenerNumeroSeguroSocial(),
  109.          "ventas brutas", obtenerVentasBrutas(),
  110.          "tarifa de comision", obtenerTarifaComision() );
  111.    } // fin del método toString
  112. } // fin de la clase EmpleadoPorComision
  113.  
  114.  
  115.  
  116. // Clase EmpleadoBaseMasComision3
  117. // Fig. 9.11: EmpleadoBaseMasComision.java
  118. // La clase EmpleadoBaseMasComision hereda de EmpleadoPorComision y
  119. // accede a los datos private de la superclase a través de los
  120. // métodos public heredados.
  121.  
  122. package Capitulo9; // Linea agregada para identificar esta clase y evitar problemas de duplicidad
  123.  
  124. public class EmpleadoBaseMasComision3 extends EmpleadoPorComision3
  125. {
  126.    private double salarioBase; // salario base por semana
  127.  
  128.    // constructor con seis argumentos
  129.    public EmpleadoBaseMasComision3( String nombre, String apellido,
  130.       String nss, double ventas, double tarifa, double salario )
  131.    {
  132.       super( nombre, apellido, nss, ventas, tarifa );
  133.       establecerSalarioBase( salario ); // valida y almacena el salario base
  134.    } // fin del constructor de EmpleadoBaseMasComision con seis argumentos
  135.    
  136.    // establece el salario base
  137.    public void establecerSalarioBase( double salario )
  138.    {
  139.        if ( salario >= 0.0 )
  140.           salarioBase = salario;
  141.        else
  142.           throw new IllegalArgumentException(
  143.              "El salario base debe ser >= 0.0" );
  144.    } // fin del método establecerSalarioBase
  145.  
  146.    // devuelve el salario base
  147.    public double obtenerSalarioBase()
  148.    {
  149.       return salarioBase;
  150.    } // fin del método obtenerSalarioBase
  151.  
  152.    // calcula los ingresos
  153.    @Override // indica que este método sobrescribe el método de la superclase
  154.    public double ingresos()
  155.    {
  156.       return obtenerSalarioBase() + super.ingresos();
  157.    } // fin del método ingresos
  158.  
  159.    // devuelve representación String de EmpleadoBaseMasComision
  160.    @Override // indica que este método sobrescribe el método de la superclase
  161.    public String toString()
  162.    {
  163.       return String.format( "%s %s\n%s: %.2f", "con sueldo base",
  164.          super.toString(), "sueldo base", obtenerSalarioBase() );
  165.    } // fin del método toString
  166. } // fin de la clase EmpleadoBaseMasComision
  167.  
  168.  
  169. // Clase PruebaEmpleadoBaseMasComision3
  170. // PruebaEmpleadoBaseMasComision.java
  171. // Programa de prueba de EmpleadoBaseMasComision.
  172.  
  173. package Capitulo9; // Linea agregada para identificar esta clase y evitar problemas de duplicidad
  174.  
  175. public class PruebaEmpleadoBaseMasComision3
  176. {
  177.    public static void main( String[] args )
  178.    {
  179.       // crea instancia de objeto EmpleadoBaseMasComision3
  180.       EmpleadoBaseMasComision3 empleado =
  181.          new EmpleadoBaseMasComision3(
  182.          "Bob", "Lewis", "333-33-3333", 5000, .04, 300 );
  183.      
  184.       // obtiene datos del empleado por comisión con sueldo base
  185.       System.out.println(
  186.          "Informacion del empleado obtenida por metodos establecer: \n" );
  187.       System.out.printf( "%s %s\n", "El primer nombre es",
  188.          empleado.obtenerPrimerNombre() );
  189.       System.out.printf( "%s %s\n", "El apellido es",
  190.          empleado.obtenerApellidoPaterno() );
  191.       System.out.printf( "%s %s\n", "El numero de seguro social es",
  192.          empleado.obtenerNumeroSeguroSocial() );
  193.       System.out.printf( "%s %.2f\n", "Las ventas brutas son",
  194.          empleado.obtenerVentasBrutas() );
  195.       System.out.printf( "%s %.2f\n", "La tarifa de comision es",
  196.          empleado.obtenerTarifaComision() );
  197.       System.out.printf( "%s %.2f\n", "El salario base es",
  198.          empleado.obtenerSalarioBase() );
  199.  
  200.       empleado.establecerSalarioBase( 1000 ); // establece el salario base
  201.      
  202.       System.out.printf( "\n%s:\n\n%s\n",
  203.          "Informacion actualizada del empleado, obtenida por toString",
  204.          empleado.toString() );
  205.    } // fin de main
  206. } // fin de la clase PruebaEmpleadoBaseMasComision3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement