Thursday, July 13, 2017

Ejercicio 6

Problema

Suponga que tiene que controlar el acceso a un establecimiento comercial, que tiene limite de 5 personas. Para este propósito contemple dos opciones:
  1. El constructor incrementa un contador.
  2. Static Factory Method (No traduzca) incrementa el contador.

Cree la clase Ingreso con la variable privada num_Personas (entera) tal que se permita el ingreso al establecimiento hasta que num_Personas sea igual a 5. Al ingreso 6, el programa debe sacar un mensaje: "Cupo lleno". Identifique la diferencias.

Solución

Se crean dos clases: Ingreso y Ingreso_Factory. Observar el uso de: variables y metodos estáticos, constructores privados y ArrayList de objetos.

Clase Ingreso


package certification1;

public class Ingreso {
    public static int num_personas = 0;
    
    public Ingreso(){
        if(num_personas < 5){
            num_personas++;
        }else{
            this.Msg();
        }
    }
    
    public void Msg(){
        System.err.println("Cupo Máximo alcanzado");
    }
}

Ingreso Factory

package certification1;

public class Ingreso_Factory {
    public static int num_personas = 0;
    
    private Ingreso_Factory(){
        num_personas++;
    }
    
    private void Msg(){
        System.err.println("Cupo Max alcanzado");
    }
    
    public static Ingreso_Factory factory_Ingreso(){
        if(num_personas < 6){
            return new Ingreso_Factory();
        }else{
            return null;
        }
    }
}

Certification1 (Contiene main)


package certification1;

import java.util.ArrayList;

public class Certification1 {
    
    public static void main(String[] args) {
        // Con Constructor
       ArrayList A1 = new ArrayList(5);
        for (int i = 0; i < 5; i++) {
            A1.add(new Ingreso());
        }
        System.out.println("Número de Personas: " + Ingreso.num_personas);
        
        // Con Factory
        ArrayList A2 = new ArrayList(5);
        for (int i = 0; i < 5; i++) {
            A2.add(Ingreso_Factory.factory_Ingreso());
        }
        System.out.println("Número de Personas: " + Ingreso_Factory.num_personas);
    }
    
}

No comments:

Post a Comment

Earn free bitcoin