Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2) Teríamos as ações que comumente toda televisão executa, mas que cada modelo pode executar de
forma diferente. Como geralmente toda ação da TV é executada pelo controle remoto, então chamaremos
esta interface de controle remoto.
http://www.tiexpert.net/ver.php?page=160 Página 1
www.tiexpert.net – O ponto de encontro do estudante de TI
public interface ControleRemoto {
/*
* Perceba que apenas a assinatura dos métodos estão aqui.
* E cada método termina com um ponto-e-vírgula (;)
*/
void mudarCanal(int canal);
void aumentarVolume (int taxa);
void diminuirVolume (int taxa);
boolean ligar();
boolean desligar();
}
3) Agora que temos nossa interface e a definição do que é a TV, vamos desenvolver duas TVs diferentes,
imaginando que fossem duas marcas completamente distintas e que uma não tem nenhuma relação com a
outra.
Como ambas as TVs irão implementar a interface ControleRemoto, então, no corpo das duas classes devem
conter todos os métodos da interface. No exemplo usado abaixo, apenas implementaremos os métodos ligar
e desligar.
A TV modelo 001 é uma TV simples, sem muitos recursos que quando acionarmos o comando desligar irá
simplesmente desligar.
public class ModeloTV001 extends TV implements ControleRemoto {
public final String MODELO = "TV001";
O modelo SDX é uma TV mais moderna, que quando acionarmos o comando desligar irá apresentar uma
mensagem dizendo "tchau!".
public class ModeloSDX extends TV implements ControleRemoto {
public final String MODELO = "TV-SDX";
http://www.tiexpert.net/ver.php?page=160 Página 2
www.tiexpert.net – O ponto de encontro do estudante de TI
public void aumentarVolume(int taxa) { }
public void diminuirVolume(int taxa) { }
public void mudarCanal(int canal) { }
}
Como pode ser visto, ambos possuem a mesma ação que é desligar, porém cada um executa de forma
diferente.
public class ExemploInterfaceamento {
public static void main(String[] args) {
ModeloTV001 tv1 = new ModeloTV001(21);
ModeloSDX tv2 = new ModeloSDX (42);
tv1.ligar();
tv2.ligar();
Se prestarmos atenção, apenas a TV2 mostrará uma mensagem quando for desligada.
Para visualizar melhor este exemplo, baixe o código exemplo e implemente os métodos que faltam.
http://www.tiexpert.net/ver.php?page=160 Página 3