Três características básicas e cinco princípios básicos da orientação a objetos
Embora sejam todas questões básicas, quais são as características básicas e princípios básicos que todos podem responder na entrevista? Depois de memorizar o caminho secreto, é bom não ter esquecido, mas em quais aspectos são os detalhes usados e refletidos, eu quero ser fluente Pode ser um pouco difícil dizer e citar alguns exemplos (eu sou assim), então vamos resumir.
Três características básicas
1. Pacote
- Definição: Combine as propriedades e operações (ou serviços) do objeto em um todo independente, ou seja, privatize as propriedades, forneça métodos setter e getter para acessar conforme necessário e oculte os detalhes de implementação interna do objeto tanto quanto possível.
- Características: O usuário não precisa se preocupar com os detalhes de implementação específicos, mas pode acessar os membros da classe apenas por meio da interface externa. A interface USB que usamos normalmente requer periféricos e só precisa conectar o dispositivo à interface USB. O funcionamento da interna não é importante para o usuário. A interface USB é uma interface de acesso externo.
- Objetivo: aumentar a segurança dos dados, impedir que outros usuários acessem e modificar dados à vontade e simplificar a programação.
2. Herança
- Definição: Herança significa que a subclasse herda as características e comportamentos da classe pai, de modo que o objeto da subclasse (instância) tem o domínio da instância e os métodos da classe pai, ou a subclasse herda métodos da classe pai, de modo que a subclasse tem o mesmo comportamento da classe pai.
- Características:
- Apenas a herança única é suportada, ou seja, uma subclasse pode ter apenas uma classe pai, mas a herança de vários níveis pode ser realizada e a subclasse tem uma classe pai exclusiva, e a classe pai também pode herdar novamente.
- As subclasses podem ter as propriedades e métodos da classe pai.
- As subclasses podem ter suas próprias propriedades e métodos.
- A subclasse pode sobrescrever o método da superclasse.
- Objetivo: Alcançar a reutilização de código.
- usar:
-
Quer seja uma variável de membro ou um método de membro, é primeiro pesquisado na classe atual. Caso contrário, é pesquisado para cima na classe pai e nunca será pesquisado para baixo na subclasse.
-
Variável de membro local: uso direto; esta variável de membro de classe: esta variável de membro de classe; variável de membro de classe pai: super. Variável de membro de classe de pai
-
Uso desta e de super palavras-chave
super()关键字的用法: - 子类的成员方法中,访问父类的成员变量。 - 子类的成员方法中,访问父类的成员方法。 - 子类的构造方法中,访问父类的构造方法。 this关键字用法: - 本类成员方法中,访问本类的成员变量。 - 本类成员方法中,访问本类的另一个成员方法。 - 本类的构造方法中,访问本类的另一个构造方法。
-
Construtor No
relacionamento de herança, as características de acesso dos métodos de construção da classe pai e filho:- Há um super (); chamada implícita padrão no método de construção da subclasse, portanto, ele deve primeiro chamar o método de construção da classe pai e, em seguida, chamar o método de construção da subclasse.
- A construção da subclasse pode ser super (); chame a construção de sobrecarga da superclasse. (Carga pesada)
- A classe pai super (); chama o método de construção, que deve ser a primeira linha na construção da subclasse, que é o primeiro elemento terminando com;, e só pode ser chamado uma vez.
-
3. Polimorfismo
- Definição: a mesma entidade possui vários formulários ao mesmo tempo. A manifestação é: a referência da classe base aponta para o objeto da subclasse. Por exemplo: no objeto de transformação, retorno de chamada da interface.
- Características:
1. Elimine a relação de acoplamento entre os tipos para obter baixo acoplamento.
2. Flexibilidade.
3. Escalabilidade.
4. Substituibilidade. - Objetivo: aumentar a flexibilidade do código.
- usar:
- -Se
objeto -Cast A referência do objeto declaração criança é atribuído ao objeto declarado pela classe pai, então o objeto classe pai é o objeto se-cast do objeto de classe criança. Os exemplos específicos são os seguintes:
// 父类名称 对象名 = new 子类名称(); class Animal { void eat() { System.out.println("动物吃饭!"); } } class Dog implements Animal { public void eat(){ System.out.println("小狗吃饭!"); } } 主类:{ Animal animal = new Dog(); animal.eat(); }
- Retorno de chamada de interface
A referência do objeto criado pela classe que implementa a interface é atribuída à variável de interface declarada pela interface. A variável de interface chama o método abstrato declarado pela interface (que foi sobrescrito pela classe de implementação), ou seja, o retorno de chamada da interface. Os exemplos específicos são os seguintes:
// 接口名称 接口变量 = new 实现类名称(); interface Animal { void eat(); } class Dog implements Animal { public void eat(){ System.out.println("小狗吃饭!"); } } 主类:{ Animal animal = new Dog(); animal.eat(); }
- -Se
Cinco características básicas
- Princípio de responsabilidade única
No que diz respeito a uma classe, deve haver apenas um motivo para sua mudança e deve haver apenas uma responsabilidade. Se uma classe tem mais de uma responsabilidade, essas responsabilidades são acopladas e, quando uma responsabilidade muda, outras responsabilidades podem ser afetadas. - O princípio de abertura e fechamento A
imagem (classe, módulo, função, etc.) deve ser aberta para extensão, mas fechada para modificação. Isso significa que uma entidade pode alterar seu comportamento sem alterar seu código-fonte. - O princípio de substituição de Richter
Sempre que uma classe base pode aparecer, uma subclasse deve aparecer. O princípio de substituição de Richter é um suplemento ao princípio "abrir-fechar" .O passo chave para realizar o princípio "abrir-fechar" é a abstração. O relacionamento de herança entre a classe base e as subclasses é a realização concreta da abstração, portanto, o princípio de substituição de Richter é a especificação das etapas concretas para realizar a abstração. - Confie no princípio de inversão Os
programas devem se basear em interfaces abstratas, não em implementações específicas. Simplificando, é necessário programar a abstração, não a implementação, o que reduz o acoplamento entre o cliente e o módulo de implementação. - O princípio do isolamento de interface O
cliente não deve confiar em interfaces de que não precisa. A dependência de uma classe em outra deve ser baseada na menor interface. Se houver um método que não seja usado na interface, você pode extrair a interface de íons. É melhor usar várias interfaces especializadas do que usar uma única interface.
Grave suas próprias anotações de estudo pela primeira vez. Se você encontrar um problema, dê dicas.