martes, 3 de septiembre de 2019

Crear una interfaz U

Crear una interfaz U con tres métodos. Crear una clase A con un método que produce una referencia a U construyendo una clase interna anónima. Crear una segunda clase B que contenga un array de U. B debería tener un método que acepte y almacene una referencia a U en el array, un segundo método que establece una referencia dentro del array (especificada por el parámetro del método) a null, y un tercer método que se mueve a través del array e invoca a los métodos de U. En el método main(), crear un grupo de objetos A y un único B. Rellenar el B con referencias U producidas por los objetos A. Utilizar el B para invocar de nuevo a todos los objetos A. Eliminar algunas de las referencias U de B.


CODIGO JAVA

A.java
public class A {
public U Libro() {
return new U() {
public void dibujar() {
 System.out.println("Se esta dibujando");
}
public void pintar() {
 System.out.println("Se esta pintando");
}
public void recortar() {
 System.out.println("Se esta recortando");
}
};
}
}
B.java
public class B {
U[] arregloA = new U[10];

public void reference (U ref, int i) {
arregloA[i]=ref;
}
public U Dreference(int i) {
arregloA[i]=null;
 return arregloA[i];
}
public void RegresarMetU() {
for (int i=0; i<5; i++) {
arregloA[i].dibujar();
arregloA[i].pintar();
arregloA[i].recortar();
}
 }
}
U.java
public interface U {
 void dibujar();
 void pintar();
 void recortar();

}
U_Main.java
public class U_Main {
public static void main(String[] args) {
A a = new A();
A a1 = new A();
A a2 = new A();
A a3 = new A();
A a4 = new A();
B b = new B();
b.reference(a.Libro(), 0);
b.reference(a1.Libro(), 1);
b.reference(a2.Libro(), 2);
b.reference(a3.Libro(), 3);
b.reference(a4.Libro(), 4);
b.RegresarMetU();
System.out.println(b.Dreference(3));
System.out.println(b.Dreference(0));
}
}

Modificar Secuencia.java

DEFINICION DEL PROBLEMA

Modificar Secuencia.java añadiendo un método obtenerRSelector() que produce una implementación diferente de la interfaz Selector que se mueve hacia atrás de la secuencia desde el final al principio. 

CODIGO JAVA

Secuence.java
public class Sequence {
private Object[] o;
private int next = 0;
public Sequence(int size) {
o = new Object[size];
}
public void add(Object x) {
if(next < o.length) {
o[next] = x;
next++;
}
}
private class SSelector implements Selector {
int i = 0;
public boolean end() {
return i == o.length;
}
public Object current() {
return o[i];
}
public void next() {
if(i < o.length) i++;
}
} // fin de SSelector
private class RSelector implements Selector{
 int i=o.length-1;
public boolean end() {
return i==-1;
}
public Object current() {
return o[i];
}
public void next() {
if (i>=0)i--;
}
}
public Selector getSelector() {
return new SSelector();
}
public RSelector getRSelector() {
return new RSelector();
}
public static void main(String args[]) {
Sequence s = new Sequence(10);
for(int i = 0; i < 10; i++)
s.add(Integer.toString(i));
Selector sl = s.getSelector();
 Sequence r = new Sequence(10);
 for (int i=0; i < 10; i++)
 r.add(Integer.toString(i));
 Selector rs = r.getRSelector();

 System.out.println("Método SSlector");
 while(!sl.end()) {
System.out.println((String)sl.current());
sl.next();
 }//Fin de While

 System.out.println("Método RSelector");

while (!rs.end()) {
System.out.println((String)rs.current());
rs.next();
}//Fin de while
}
} // fin de main


Selector.java
public interface Selector {
boolean end();
Object current();
void next();
}

Crear una interfaz U

Crear una interfaz U con tres métodos. Crear una clase A con un método que produce una referencia a U construyendo una clase interna anónima...