In [4]:
public class CA {
public String toString() {
return "primeiro";
}
}
public class CB {
private CA referencia;
public CB(CA referencia) {
this.referencia = referencia;
}
public String toString() {
return referencia + " segundo";
}
}
In [5]:
System.out.println(new CB(new CA()));
In [19]:
public class C {
protected int valor;
public C(int valor) {
this.valor = valor;
}
public void operacao(int novoValor) {
valor = novoValor;
}
public String toString() {
return Integer.toString(valor);
}
}
public class CMaior extends C {
public CMaior(int valor) {
super(valor);
}
public void operacao(int novoValor) {
if (novoValor > valor)
valor = novoValor;
}
}
public class CMenor extends C {
public CMenor(int valor) {
super(valor);
}
public void operacao(int novoValor) {
if (novoValor < valor)
valor = novoValor;
}
}
C maior = new CMaior(12);
maior.operacao(30);
maior.operacao(15);
maior.operacao(9);
System.out.println("maior: " + maior);
C menor = new CMenor(12);
menor.operacao(30);
maior.operacao(15);
menor.operacao(9);
System.out.println("menor: " + menor);
In [ ]:
public class CVetor {
C referencia;
public CVetor(C referencia) {
this.referencia = referencia;
}
public void operacao(int valores[]) {
for (int s = 0; s < valores.length; s++)
referencia.operacao(valores[s]);
}
public String toString() {
return referencia.toString();
}
}
In [16]:
int valores[] = {30, 15, 9};
CVetor vetorMaior = new CVetor(new CMaior(12));
vetorMaior.operacao(valores);
System.out.println("maior: " + vetorMaior);
CVetor vetorMenor = new CVetor(new CMenor(12));
vetorMenor.operacao(valores);
System.out.println("maior: " + vetorMenor);