1. Clase Potencia.java
package operaciones;
public class OperMat {
public int Atributo1; package operaciones;
public OperMat()
{ public class Potencia extends OperMat //Aquí
Atributo1=5; HEREDA la clase Potencia de OperMat
} {
public double suma(double a, double b) public Potencia()
{ { }
return a+b; public double cuadrado(double a)
} {
public double resta(double a, double b) return potenciaN(a,2);
{ }
return a-b; public double cubo(double a)
} {
public double multiplicacion(double a, double return potenciaN(a,3);
b) }
{ public double potenciaN(double a, int b)
return a*b; {
} double res;
public double division(double a, double b) res=a;
{ for(int i=1;i<=b;i++)
return a/b; {
} res=res*a;
public double modulo(double a, double b) }//for i
{ return res;
return a%b; }
} }
}//class
Clase OperMat.java
2. Clase Operaciones.java
Contiene en método Main
package operaciones;
public class Operaciones {
public static void main(String[] args) {
// TODO code application logic here
Potencia Pot= new Potencia();//Cremos o instanciamos un Objeto tipo
//Potencia
/*Aqui ejecutamos métodos de la propia clase: Potencia a^2,a^3
* y a^b con el Objeto Pot*/
System.out.println("*** HERENCIA EN JAVA ***");
System.out.println(" ");
System.out.println("Realizado por: Alumnos de Segundo"+ "Grupo");
System.out.println("El Cuadrado es: "+Pot.cuadrado(2));
System.out.println("El Cubo es: "+Pot.cubo(3));
System.out.println("El Cubo es: "+Pot.potenciaN(2, 8));
System.out.println("El atributo vale: "+Pot.Atributo1);
/* Aqui accedemos a través de Pot a los metodos de la clase OperMat que NO
* estan dentro de la clase Potenciacion, ya que son el objeto Pot de tipo
* Potencia Hereda sus propiedades de OperMat sus atributos y metodos a
* través de Extend*/
System.out.println("La Suma es: "+Pot.suma(8, 5));
System.out.println("La Resta es: "+Pot.resta(8, 5));
System.out.println("La Multiplicación es: "+Pot.multiplicacion(8, 5));
System.out.println("La División es: "+Pot.division(8, 5));
System.out.println("El Modulo es: "+Pot.resta(8, 5));
}
}
3. ¿Se podrán automatizar las actividades que desarrolla el vigilante a través de un
programa informático?
Para resolver esta situación, utilizar dos clases: una a la que llamada LogisticaAlmacen,
que permite la creación de una estructura de datos almacén y sus métodos de
accesonecesarios.
Posteriormente crear la clase ControlContenedores (método main) que utilizando la
primera implementa la lógica de control expuesta en la pregunta generadora.
Primeramente se realiza la clase LogísticaAlmacén. El estado del almacén puede
definirse con dos propiedades: capacidad y númeroDeHuecos. En este caso se
declararan las variables de tipo byte, por lo que la capacidad máxima de estos
almacenes es de 256 elementos.
Para la clase ControlContenedores se declararan e instanciaran los almacenes:
Almacen1, Almacen2 y almacen3. Se utilizará un bucle que normalmente seria infinito:
While (true), a un que se programara para terminar cuando se teclee la literal “Salir”.
En este bucle se esta esperando a que el primer camionero que llegue puse el botón
“m” o el botón “s”, en nuestro caso que puse la tecla “m” o cualquier otra tecla. Si se
pulsa la tecla “m”, con significado “meter contenedor”, en primer lugar se pregunta si
hay hueco en el Almacén1, si es así se le indicara al camionero que se dirija al primer
almacén y se actualiza el estado del almacén invocando al método meteContenedor.
Si no hay hueco en el primer almacén, se “prueba” suerte con Almacen2; en el caso de
que haya hueco se mete el contenedor en este almacén. Si no hay hueco en el
almacen2 se intenta en el tercer y último almacén.
4. Los siguientes métodos no realizan ninguna comprobación de si el almacén esta lleno
(en el primer caso) o vacio (en el segundo). Esta comprobación la deberá realizar el
programador que utilice la clase, invocando a todos los métodos hayHueco y
hayContenedor respectivamente. El código para la clase LogísticaAlmacén, puede
quedar de la siguiente manera:
public class LogisticaAlmacen {
private byte capacidad;
private byte numeroDeHuecos;
//Constructor
LogisticaAlmacen(byte capacidad){
this.capacidad=capacidad;
numeroDeHuecos=capacidad;
}
public byte dimeNumeroDeHuecos(){
return numeroDeHuecos;
}
public byte dimeCapacidad(){
return this.capacidad;
}
public boolean hayHueco(){
return (numeroDeHuecos!=0);
//El valor es diferente de cero
}
public boolean hayContenedor(){
return (numeroDeHuecos!=this.capacidad);
}
public void meteContenedor(){
numeroDeHuecos--;
}
public void sacaContenedor(){
numeroDeHuecos++;
}
}//LogisticaAlmacen