JavaRush /Blogue Java /Random-PT /Interface em Java
vinsler
Nível 35

Interface em Java

Publicado no grupo Random-PT
Sou um péssimo contador de histórias se não tenho o objetivo de explicar algo incompreensível para alguém com um pedido específico, então entendo as coisas simples e, para começar, escreverei sobre isso aqui. Não sigo o exemplo de ensino do JavaRush de primeiro fazer uma pergunta e depois dizer como fazê-la. Sou um defensor de primeiro contar e depois perguntar, como acontece com contar, primeiro mostrar e depois explicar.
Interface em Java - 1
BS: Ações == comportamento, tome-as como sinônimos, as ações são simplesmente entendidas de forma mais correta, é sempre algo ativo, e o comportamento pode não mostrar nada.

interface - interface

O que é isso? Listagem de interface de exemplo (com genéricos):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Interface crud comum (de CRUD: Criar, Ler, Atualizar, Excluir). Não se assuste, tudo é bem simples. Esta interface significa que trabalhar com vários bancos de dados é baseado no seguinte princípio: você precisa adicionar um registro, atualizar um registro, excluir e localizar todos os registros. Você encontrará isso mais 100 vezes e escreverá quase a mesma interface pelo mesmo número de vezes. É designado público porque deve ser implementado pela classe. O que significa ser implementado por uma classe ? Tudo é muito simples: deve descrever todos os métodos da interface. O exemplo mais simples de implementação em uma classe:
void add (T t) {
	bookstore.add(t);
}
Em vez de T t, um determinado genérico será substituído. Resumindo, este é o TIPO de uma variável, e é por isso que é mais frequentemente denotado como T = Tipo. Em nosso exemplo, digamos que poderia ser assim:
void add (Book book) {
	bookstore.add(book);
}
Naturalmente, no lugar de Book book você pode substituir qualquer variável necessária para sua implementação. Para entender, você pode teoricamente imaginar que T = Object, e como tudo em Java é Object, você também pode definir qualquer uma de suas classes/variáveis ​​lá. O único problema surgirá mais tarde - exceções se a classe for zero, etc. Em suas próprias palavras, é uma certa estrutura de programa que define as relações entre objetos, dividindo-os em certas partes comportamentais. O objetivo de uma interface é definir funcionalidades para implementação por uma classe. Ou seja, uma descrição das assinaturas dos métodos. Dentro da interface existem nomes de métodos que retornam e inserem valores, e é isso. Bem, você ainda pode designar algumas variáveis ​​lá, mas elas imediatamente se tornam implicitamente public static final e podem ser acessadas de qualquer parte do programa. A interface descreve ações e, portanto, essas mesmas ações estão contidas nela, ou seja, funções ou métodos. Por que isso é necessário? O que isso simplifica ou que vantagens oferece? Simplificando a descrição de ações e comportamentos. Dizemos o que fazer, mas cada classe implementa como fazer sozinha. Economize tempo em grandes projetos. As interfaces são criadas em situações em que sabemos que precisamos realizar alguma tarefa, mas a forma de fazê-lo pode variar. A interface descreve os nomes das ações - esta é simplesmente a direção de alguma abstração. Embora também possa haver interfaces sem métodos e campos, como marcadores como Cloneable, Remote, etc. Vejamos o exemplo de carro favorito de todos. A interface nele descreverá as possíveis ações do carro, girando o volante ou direção do movimento, ganho de velocidade, gasolina restante, etc. Ou seja, as mesmas ações que absolutamente qualquer carro pode ter. Em outras palavras, descemos à selva da degradação até o nível mais baixo de criação do primeiro carro e com nossos próprios cérebros descobrimos como ele foi criado e o que tinha. Naturalmente, descrevemos isso de forma abstrata e apenas para ações. O que o primeiro carro tinha? Havia um volante? Era, o que significa que estava girando em algum lugar, a direção do volante/movimento. Havia rodas? Sim, isso significa que eu estava dirigindo em alguma velocidade, uma mudança de velocidade. Essa é toda a interface. Mas, em geral, as interfaces são criadas para alguma implementação de determinadas ações. Aqueles. escrevemos um programa para programas mais específicos do que para qualquer outra coisa que você possa imaginar. Portanto, as próprias interfaces conterão métodos mais claros e específicos. Claro que serão tão abstratos quanto possível. As interfaces podem ser herdadas umas das outras como classes.
interface MyInterface extends NotMyinterface;
As interfaces são implementadas em classes. Você pode implementar quantas interfaces desejar. Ao contrário da herança, herde de apenas um.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Aqueles. criamos algumas ações, demos nomes a elas, inserimos dados, retornamos dados, escrevemos tudo isso na interface, então criamos uma classe e adicionamos nossa interface a esta classe, ou seja, implementou nossa interface nesta classe. Além disso, todos os métodos/funções descritos na interface devem ter uma implementação. Isso pode ser feito diretamente na própria interface adicionando a palavra default antes do método e escrevendo a implementação diretamente no método, como uma classe. Isso se tornou possível com a versão 8 do Java. Também pode ser feito em uma classe que irá implementar esta interface. Bem, escrevemos a interface, implementamos na classe, implementamos a implementação na classe, podemos executá-la e testá-la. Você também pode ler nas interfaces sobre:
  • Métodos estáticos.
  • Métodos privados. (repetição de código)
  • Variáveis/Constantes.
  • Interfaces aninhadas.
Mas é melhor fazer isso mais tarde, e também é prejudicial encher a cabeça com muita coisa. Pergunta interessante, o que é um Volvo? Classe ou Interface?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Além das interfaces, vale continuar sobre Classes Abstratas e Classes. Talvez mais tarde, quando eu tiver mais algumas horas livres. ))) PS: Pessoal, peço todas as críticas no post ou no PM, entendo perfeitamente que todo mundo tem))) e estou sempre interessado em ouvir, porque esse é um motivo para ficar um pouco melhor e novamente continue avançando. Com isso, muito obrigado a todos e boa sorte na programação. )))
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION