Interface

De acordo com o conceito abaixo, alguém pode me dar um exemplo do que é interface.

Ciência da Computação
Em ciência da computação uma Interface é um ‘contrato’ que determina a forma de comunicação entre componentes de software.

Para os usuários comuns de computadores, uma Interface é a forma de apresentação de programas ou sistemas. Com o avanço na capacidade de processamento das máquinas, aconteceu uma mudança profunda na interfaces dos programa e sistemas. A tela (geralmente) preta e baseada em texto, foi trocada por janelas, botões, abas, caixas de texto ou de checagem, ícones, etc. Esta nova apresentação gráfica, também conhecida como “ambiente gráfico”, tornou o uso do computador mais amigável.

Entretanto, a forma da inteface (seja gráfica ou baseada em texto) não pode ser responsabilizada pela facilidade ou dificuldade de interação com um sistema ou programa. Uma interface está diretamente ligada a funcionalidade ou comportamento do sistema. Uma mesma tela, com os mesmos componentes e imagens, pode ter um comportamento diferente sob os mesmos “estímulos” do usuário, ou seja um aperto de botão, um arrastar e soltar.

Olá Paloma,

Interface no Java é uma classe que descreve todas as assinaturas de métodos de outra classe. Logo, vc só precisa conhecer uma interface de uma classe pra saber com acessar seus métodos e “o que” eles retornam. Sendo assim, vc nao precisa conhecer o funcionamento de um método para acessá-lo.

Saudaçoes! ^^

Desculpe :oops: , mas não ficou muito claro pra mim, eu tenho esse exercício, mas não estou entendendo o q o enunciado quer dizer

Descreva as interfaces disponíveis num sistema de som: baixar, aumentar, gravar, adiantar e voltar.

Ao invés de olhar a definição da wikipedia em pt, leia essa definição da versão em inglês:

Não entendi muito bem esse enunciado seu. Mas vou colocar um exemplo bem simples de como seria uma classe e sua respectiva interface em Java.

Aqui vai a classe:

[code]
public class Pessoa implements IPessoa {
private String nome;
private int idade;

public int getIdade() {
	return idade;
}
	
public void setIdade(int idade) {
	this.idade = idade;
}
	
public String getNome() {
	return nome;
}
	
public void setNome(String nome) {
	this.nome = nome;
}

}[/code]

Agora a Interface: [code]
public interface IPessoa {

public abstract int getIdade();

public abstract void setIdade(int idade);

public abstract String getNome();

public abstract void setNome(String nome);

}[/code]

Não sei se vc quer um exemplo em java ou alguma analogia com o mundo real. Mas, vendo esse exemplo aqui vc pode ter uma idéia do q seria uma interface bem trivial no no Java.

Acho que esse exercício está mal elaborado, mas será que dessa forma então estaria correto:

[code]public string baixar();
public string aumentar();
public string gravar();
public string adiantar();
public string voltar();

[/code]

O conceito de interface que tenho aqui, é que é a forma como me comunico com o objeto, mas como estou fazendo isso com esse exemplo?

[quote=paloma]Acho que esse exercício está mal elaborado, mas será que dessa forma então estaria correto:

[code]public string baixar();
public string aumentar();
public string gravar();
public string adiantar();
public string voltar();

[/code]

O conceito de interface que tenho aqui, é que é a forma como me comunico com o objeto, mas como estou fazendo isso com esse exemplo?[/quote]

Eu faria uma interface para a Classe de nome AparelhoSom, aproveitando as funcionalidades descritas por vc, da seguinte maneira:

public interface IAparelhoSom {

public abstract void baixar( int quantidade );

public abstract void gravar( int tempoInicio, int tempoFim );

public abstract void adiantar();

public abstract void voltar();

}

Os dados entre parênteses são os argumentos q devem ser passados para o método descrito. Exemplo: O método baixar recebe a quantidade de volume a ser reduzida, q é do tipo int(numérico). Logo, se vc chamar o método da seguinte forma baixar(2), será reduzida na “altura” do som uma quantia de 2 unidades de medidas.

Entendeu?

Mas o meu exemplo está correto? Ainda não estou visualizando como estou interagindo com o objeto, de acordo com o conceito de interface que eu tenho aqui :cry:

acho que o conteito de interface que foi usado como primeiro exemplo está mais para interface homem-maquina ou homem-software do que interface java que vc usa o implements…

Po, interface é a parte externa de uma parada, o que tá por dentro não importa. Foi?

[quote=TiagoFoil]Não entendi muito bem esse enunciado seu. Mas vou colocar um exemplo bem simples de como seria uma classe e sua respectiva interface em Java.

Aqui vai a classe:

[code]
public class Pessoa implements IPessoa {
private String nome;
private int idade;

public int getIdade() {
	return idade;
}
	
public void setIdade(int idade) {
	this.idade = idade;
}
	
public String getNome() {
	return nome;
}
	
public void setNome(String nome) {
	this.nome = nome;
}

}[/code]

Agora a Interface: [code]
public interface IPessoa {

public abstract int getIdade();

public abstract void setIdade(int idade);

public abstract String getNome();

public abstract void setNome(String nome);

}[/code]

Não sei se vc quer um exemplo em java ou alguma analogia com o mundo real. Mas, vendo esse exemplo aqui vc pode ter uma idéia do q seria uma interface bem trivial no no Java.[/quote]

Resumindo:

A interface obriga a classe ter os metódos que compõem a interface no conceito de JAVA

O que foi postado significa a interface(design de telas) com o usuário o que num tem relação a linguagem…

Olá Paloma,

O texto que você colou aqui não é a mesma coisa que o keyword interface do Java, mas sim é relacionado com interfaces de usuário. As interfaces de usuário são os meios que o usuário tem para entrar dados num sistema e obter uma resposta, tanto faz se esse meio é via texto ou gráfico com o uso do mouse, ou ainda via painel ou controle remoto.

O controle remoto da sua TV é uma “interface de usuário”, e pode ter sido bem ou mal projetada, dependendo da disposição dos botões ou do que é necessário saber para usá-lo minimamente.

Existem livros para esse tópico, sugiro a você dar uma pesquisada sobre isso caso deseje saber mais sobre design de interfaces de usuário.

Quanto às interfaces em Java, elas são usadas para vários objetivos, não existe um objetivo único e uma forma única de se ver isso. E é um conceito puramente abstrato que apenas o desenvolvedor precisa saber, não há indicação visual para o usuário final do sistema.

Geralmente quem vem de um background de C++ e não gosta de Java prefere vê-lo como “uma forma de contornar a falta de herança múltipla”, o que é falso.

Um desenvolvedor Java sabe que interfaces são úteis para diminuir o acoplamento entre partes diferentes de um sistema ou entre vários sistemas, pois a interface estabelece o mínimo que uma classe deve ter para ser chamada de uma determinada forma, ou seja, não importa quem a implemente, o que importa é que precisa ter esses métodos específicos.

Fora a questão do acoplamento, interfaces são usadas também para Tagging, ou seja, como uma “etiqueta” anexada a uma classe que diz o que ela é, sem especificar método algum. Por exemplo:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/EventListener.html

Eu gosto de usar interfaces:

  • Em primeiro lugar para “Tagging”;
  • Em segundo para diminuir acoplamento entre módulos distintos de um mesmo sistema;
  • Em terceiro para estabelecer contratos entre produtor e consumidor de um determinado dado;