Como você que ama programar!
Aprenda cursos práticos SpringBoot https://edu.csdn.net/course/detail/31433
Aprenda cursos introdutórios SpringCloud https://edu.csdn.net/course/detail/31451
Série orientada a objeto:
classe e
encapsulamento de objeto
herdam palavra-chave estática
polimórfica
e interface de modo singleton
e classe interna
Prefácio
Olá a todos. A interface é um tipo importante em Java. No desenvolvimento de projetos reais, um grande número de interfaces será usado, chamado de programação orientada a interface. Este capítulo se concentrará em interfaces e classes internas
interface
Qual é a interface
A interface na vida,
como a interface USB do computador, regula a forma e o tamanho da interface, desde que o dispositivo atenda ao padrão, ele pode ser conectado.
A interface no programa
é um conjunto de especificações, que estipula a definição do método, desde que a classe que implementa a interface seja definida de acordo com a especificação da interface.
Interface de uso
A sintaxe para definir a interface:
public interface 接口名{
静态常量的定义;
方法的定义;
}
Nota ao definir a interface:
- O método é abstrato e não pode ser realizado
- As propriedades definidas serão automaticamente convertidas em constantes estáticas
- O método só pode ser público, o padrão é público
Implementar interface
public class 类名 implements 接口名{
具体方法的实现
}
Preste atenção à implementação da interface:
- Todos os métodos da interface devem ser implementados
- O método deve ser exatamente igual ao definido na interface
- Método deve ser público
- Uma classe pode implementar várias interfaces
- Uma classe pode herdar a classe enquanto implementa a interface
class 类名 extends 父类 implements 接口{
}
- A interface pode herdar a interface, a classe de implementação deve implementar todos os métodos
interface A{
void testA();
}
//接口之间的继承
interface B extends A{
void testB();
}
class C implements B{
public void testA() {
}
public void testB() {
}
}
A importância da interface no desenvolvimento
- Elaborar um conjunto de especificações para a realização da aula
- Projeto e implementação separados
palavra-chave padrão
Um novo recurso do Java 1.8, os métodos definidos por padrão podem ter implementações padrão.
public interface Person {
//给接口方法默认的实现
default void eat(){
System.out.println("在吃饭!!");
}
void walk();
}
A classe de implementação não é obrigatória para implementar métodos com padrão.
Semelhanças e diferenças entre interfaces e classes abstratas
A diferença entre as interfaces e classes abstratas são perguntas da entrevista comuns Semelhanças.
:
- Pode haver métodos não implementados
- Não pode ser instanciado
diferença:
- A classe abstrata é uma herança única, a classe pode implementar várias interfaces
- A interface não pode definir um construtor
- Os métodos na interface só podem ser públicos e as classes abstratas podem ter vários tipos de acesso.
- Apenas constantes estáticas podem ser definidas em interfaces, e variáveis de membros comuns podem ser definidas em classes abstratas.
- Métodos abstratos na interface não precisam ser adicionados, classes abstratas devem ser adicionadas.
Classe interna
A classe interna é a classe definida na classe.
As classes internas do Java incluem:
- Classe interna do membro
- Classe interna estática
- Classe interna local
- Classe interna anônima
Classe interna do membro
Mesmo nível que as variáveis de membro (atributos) e métodos de membro são propriedade de um determinado objeto.
gramática:
class 外部类{
class 内部类{
...
}
}
Características:
- Geralmente usado apenas em aulas externas
- Os atributos e métodos da classe interna e da classe são do mesmo nível.
- Objetos pertencentes à classe são carregados na memória quando cada objeto é criado
Classe interna estática
Adicionar estático à classe interna do membro é a
sintaxe da classe interna estática :
public class 外部类{
static class 内部类{
}
}
A diferença com a classe interna do membro:
- A classe interna do membro pertence ao objeto, a classe interna estática pertence à classe externa
- A classe interna do membro é carregada sempre que um objeto é criado, a classe interna estática e a classe externa são carregadas juntas
- O membro da classe interna pode acessar todos os membros da classe externa, e a classe interna estática pode acessar apenas os membros estáticos da classe externa
Classe interna local
A classe definida no método só pode ser usada no método atual e a classe é carregada na memória quando o método é chamado.
gramática:
class 外部类{
public void test(){
class 内部类{
}
内部类 对象 = new 内部类();
}
}
Classe interna anônima
Uma classe interna sem um nome, um objeto é criado quando a classe é criada.
Aplicação: A classe de implementação da interface ou classe abstrata só precisa ser usada uma vez, e o código é único.
gramática:
new 接口/抽象类()
{
实现方法
};
Implementar capa USB
//Usb接口
interface Usb{
void connect(); //连接
void charge(); //充电
}
//匿名内部类实现接口
Usb usb = new Usb(){
public void connect(){
System.out.println("Test2测试连接");
}
public void charge(){
System.out.println("Test2测试充电");
}
};
usb .connect();
usb .charge();
A diferença da classe geral:
- sem nome
- Só pode ser usado uma vez
- Sem método de construção
- Não é possível definir membros estáticos
Pergunta da entrevista: em? Preencha o que pode ser a saída 30, 20, 10 no console.
class Outer {
public int num = 10;
class Inner {
public int num = 20;
public void show() {
int num = 30;
System.out.println(?); num
System.out.println(?); this.num
System.out.println(?); Outer.this.num
}
}
}
class InnerClassTest {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
oi.show();
}
}
Fim
Ok, todo mundo dominou este artigo? Bem-vindo a deixar uma mensagem para discussão.
Deixe duas tarefas:
- Definir interface do jogador, o método de tocar música; definir interface de console do jogo, o método de jogo de jogo;
definir classe telefone, com atributos de marca e preço, e chamada de método
definir classe telefone celular para telefone herdar e implementar a interface jogador e consola de jogos - Defina a interface aritmética e defina quatro métodos de adição, subtração, multiplicação e divisão.Cada método tem dois parâmetros duplos e o valor de retorno é duplo.
Use classes regulares e classes internas anônimas para implementar interfaces.
Se você precisa aprender outro conhecimento Java, dê uma olhada aqui no conhecimento ultra-detalhado de Java Resumo