Notas orientadas a objetos Java (atualização contínua a ser concluída)

Classe e objeto

Um objeto é uma instância de uma classe. Um
objeto é um tipo específico de dados.
Atributos: as várias
classes de características estáticas do objeto .
Do ponto de vista da estrutura de dados, uma classe cria um novo tipo de dados por si mesma.
As aulas também são chamadas de "tipos personalizados".
O mesmo nome não é permitido em um programa java.

//类名必须和文件名相同
public class Merchandise {
    
    
    String name;
    String id;
    int count;
    double price;
} 

Use variáveis ​​de membro

publi static void main(String[] args){
    
    
Merchandise m1=new Merchandise();
m1.name="茉莉花茶";
m1.id="1115";
m1.count=100;
m1.price=99.9;
}

Operador ponto O operador
ponto é usado para acessar / manipular os atributos da entidade anterior, semelhante a "o"
Merchandise.name pode ser lido como o nome da mercadoria.

Tipos de dados de referência Os tipos de dados em
java são divididos em tipos de dados básicos e tipos de dados de referência

m1是一个Merchandise类型的引用,只能指向Merchandise类型的实例;
引用数据类型变量包含两部分信息:类型和实例。
每一个引用数据类型的变量(简称引用),都是指向某个类(class/自定义类型)
的一个实例/对象(instance/object)。不同类型的引用在java的世界但是引用。
引用的类型信息在创建时就已经确定,可以通过给引用赋值,让其指向不同的实例。

Merchandise m1;
m1=new Merchandise();

-Declarar o objeto Merchandise m1 -Instanciar
o objeto m1 = new Merchandise ();
Use o novo operador para criar uma instância de uma determinada classe. Quando o programa java está em execução, todas essas instâncias criadas são armazenadas por java em um local denominado heap, que é semelhante a um quadro de anúncios.
Criar uma instância é fazer um livro baseado na definição da classe e no "papel" necessário para o ponto, e pendurá-lo no quadro de avisos.A própria instância pode ser considerada um pequeno livro.
Armazenado na referência equivale ao endereço do quadro de avisos onde um determinado livro está localizado.
O relacionamento entre uma classe e um objeto Uma
classe é um modelo de um objeto e um objeto é uma instância de
uma classe. Só pode haver uma classe com o mesmo nome de classe em um programa java, ou seja, o tipo não têm o mesmo nome.
Uma classe pode ter muitos objetos e
um objeto só pode ser baseado em uma classe para criar

A relação entre referências e classes e objetos. As
referências devem ser, e só podem ser, referências a uma classe. As referências
só podem apontar para objetos da classe a que pertencem
. Referências do mesmo tipo podem ter valores atribuídos.
Apenas referências a um objeto pode ser usado para manipular um objeto, como acessar uma variável de membro

Pacotes e modificadores de acesso
em JAVA Para evitar confusão de classes, as classes podem ser colocadas em pastas. Neste momento, você precisa usar a instrução do pacote para informar ao java em qual pacote a classe está. A instrução do pacote deve corresponder exatamente ao diretório do arquivo de origem e o caso deve ser o mesmo.
pacote é lido como um pacote. De modo geral, a classe estará no pacote, e não diretamente no diretório raiz.
Pacotes diferentes podem ter classes com o mesmo nome.
Uma classe pode ter apenas uma instrução de pacote. Se houver uma instrução de pacote, ela deve ser a primeira linha do código válido da classe.

import import package
Ao usar uma classe em outro pacote, você precisa trazer o nome do pacote.
É muito complicado trazer o nome do pacote toda vez que você usá-lo. Você pode usar a instrução import na classe usada para resolver o problema uma vez e, em seguida, pode usar a classe diretamente. É como a classe Scanner.
Pode haver várias instruções de importação.
Se você precisar importar muitas classes em um pacote, poderá usar o caractere curinga *.
A ordem das classes de carregamento não tem nada a ver com a posição da instrução de importação

   import包名.*; 只能访问指定包名下的类,无法访问子包下的类。


Atributos públicos modificados por public podem ser acessados ​​por classes em qualquer pacote.
Atributos sem modificadores de acesso são chamados de modificadores de acesso padrão, que podem ser usados ​​por outras classes neste pacote e seus próprios objetos.
O modificador de acesso é um modificador que restringe ou permite o acesso ao atributo.

O nome totalmente qualificado do nome do
pacote da classe + nome da classe = o nome totalmente qualificado da classe. Também pode ser referido como a classe de todo o povo.
O nome totalmente qualificado não pode ser repetido no mesmo programa java.

Sobrecarga de função
Uma classe pode ter vários construtores, desde que suas listas de parâmetros sejam diferentes.
Dados diferentes valores de parâmetro ao criar um objeto, diferentes construtores serão chamados automaticamente.
Você também pode chamar outros construtores por meio de this ().
Funções com o mesmo nome, mas listas de parâmetros diferentes em uma classe constituem um relacionamento de sobrecarga.

Princípio de responsabilidade única
Existe uma e apenas uma causa de mudanças funcionais

Este
acessa os métodos membro da
classe de corrente. Acede as propriedades do membro da
classe de corrente. Acede ao método de construção da classe de corrente. Ele
não pode ser utilizado em métodos estáticos.

Encapsulamento

Oculte algumas informações da classe dentro da classe e não permita que programas externos a acessem diretamente.
Use os métodos fornecidos por esta classe para realizar a operação e acessar as informações ocultas. As informações do
objeto oculto são
reservadas. O acesso interface está reservada.

Características:
1. Você só pode acessar os dados através do método especificado
2. Ocultar os detalhes da instância da classe, o que é conveniente para modificação e implementação

Etapa
1. Modificar o atributo visibilidade-limite privado só pode ser acessado dentro da classe atual
2. Criar método get / set
Adicionar o limite de atributo no método get / set

palavra-chave estática

Membros estáticos estáticos
compartilham o mesmo espaço de armazenamento
1. Compartilhamento de objetos de classe.
2. Gerado quando a classe é carregada e liberada quando é destruída, com um longo ciclo de vida.
Método de acesso de membro estático:
1. Objeto. Membro
2. Classe. Membro

métodos static +. Métodos de classe, métodos estáticos e
métodos estáticos não podem acessar diretamente membros não estáticos na mesma classe, mas podem chamar diretamente membros estáticos na mesma classe.
Membros não estáticos só podem ser acessados ​​por meio do método object depois que o objeto é instanciado.

No método, o objeto é utilizado como parâmetro, e sua referência é passada, e todas as informações do objeto podem ser obtidas por referência.

herdar

Uma relação entre classes.
Use a definição de uma classe existente como base para criar uma nova classe.
A definição de uma nova classe pode adicionar novos dados ou novas funções e também pode usar as funções da classe pai, mas não pode herdar seletivamente a classe pai.

estende

class Dog extends Animal{
    
    
}
class Cat extends Animal{
    
    
}

A construção da classe pai não pode ser herdada ou reescrita, mas afetará a
reescrita do método do processo de instanciação do objeto da subclasse .
Regra de sintaxe:
tipo de valor de retorno O nome do método e a lista
de
parâmetros das subclasses com relação de continuação são os mesmos (parâmetros Tipo, ordem, número,), o valor de retorno do método pode ser um tipo de subclasse.
Modificador de acesso, o intervalo de acesso precisa ser maior ou igual ao intervalo de acesso da classe pai. Não
tem nada a ver com o nome do parâmetro do método

Modificador de acesso
privado: permitir acesso apenas nesta classe
public: permitir acesso em qualquer local
protegido: permitir na classe atual, a mesma subclasse / não subclasse de pacote, chamada de subclasse de pacote cruzado, subclasse de pacote cruzado não permitido,
padrão : É permitido chamar na classe atual, a mesma subclasse / não subclasse de pacote; subclasse / não subclasse de pacote cruzado não tem permissão para chamar

super
super em nome da classe pai
acesso de referência ao método do membro da classe pai super.print ();
acesso ao atributo da classe pai super.name;
acesso ao método de construção da classe pai super ();
padrão de construção da subclasse para chamar o pai método de construção de classe sem argumento
por meio de super () Chamar outros construtores que podem ser acessados ​​pela classe pai
super () deve ser colocado na primeira linha do código válido do construtor de subclasse

Após a sequência de inicialização, herde
a classe pai membro
estático membro
subestático construtor de objeto pai
subclasse construtor de objeto

Classe de objeto A classe de
objeto é a classe pai de todas as classes. Se
uma classe não usar a palavra-chave extends para identificar claramente o relacionamento de herança, ela herdará a classe de objeto (incluindo matrizes) por padrão
. Cada classe em java pode usar os métodos definidos no objeto.


classe final final: não pode ser herdada.
Método final: este método não pode ser substituído por subclasses, mas pode ser herdado e usado normalmente por subclasses.
Variáveis ​​locais da classe de método final: principalmente atribuem valores antes de serem especificamente usados.Uma vez atribuídos, eles não podem ser modificados.
Variáveis ​​de membro na classe: Processo de atribuição: 1. Definir inicialização direta 2. Método de construção 3. Bloco de código de construção

A variável modificada significa que não é permitido modificar
a variável do tipo de dados básico - ela não pode ser alterada após a atribuição inicial
. A variável do tipo de referência - ela não pode apontar para outro objeto após a inicialização, mas o conteúdo do objeto é variável

Pode ser usado com
a modificação final de uso estático pode melhorar o desempenho, mas reduzirá a escalabilidade.

As anotações
podem ser declaradas na frente de pacotes, classes, atributos, métodos, variáveis ​​locais, parâmetros de método, etc., para explicar, anotar e

Padrões de design

Soluções para problemas gerais enfrentados por desenvolvedores de software no processo de desenvolvimento de software.

Modo Singleton
Objetivo: Tornar um objeto de uma classe a única instância no sistema.
Definição: Uma classe tem uma e apenas uma instância, e auto-instanciar fornece todo o sistema.
Pontos
1. Uma classe pode ter apenas uma instância
2. Você deve criar uma instância você mesmo
3. Você deve fornecer esta instância para todo o sistema sozinho
Implementação
1. Forneça apenas métodos de construção privados
2. Contém um objeto privado estático desta classe
3. Fornece um método público estático para criar e obter objetos privados estáticos

Vantagens
1. Há apenas um objeto na memória, economizando espaço na memória
2. Evite a criação e destruição frequente de objetos, melhore o desempenho
3. Evite a ocupação múltipla de recursos compartilhados
Desvantagens
1. A expansão é mais difícil
2. Se o objeto instanciado não é propício por um longo tempo, o sistema assumirá como padrão o lixo para reciclagem, resultando na perda do estado do objeto.
Cenário
1. Muitos recursos são ocupados ao criar um objeto, mas ao mesmo tempo esse tipo de objeto precisa ser usado
2. Uniforme requisitos de leitura e gravação para recursos no sistema, como leitura e gravação de informações de configuração
3. Quando existem várias instâncias, isso pode causar erros de lógica de programa, como gerador de número

Polimorfismo

Diferentes tipos de objetos podem responder de maneira diferente à mesma mensagem.
Polimorfismo em tempo de compilação Polimorfismo em tempo de
design
Sobrecarga de método Polimorfismo em tempo de
execução O
programa decide dinamicamente qual método chamar quando o programa está em execução
Condições necessárias
satisfazem o relacionamento de herança
Pontos de referência da classe pai para o objeto da classe filho

Acima da
referência da classe pai de transformação para a instância da subclasse, você pode chamar o método da subclasse da classe pai e substituir a classe pai derivada, não pode ser chamado de
subcategorias de método exclusivo da subclasse transformadas em categorias
Nota: os métodos estáticos da classe pai não podem colcha Reescrita de classe, portanto, após a atualização, você só pode chamar o método estático original da classe pai

Animal one=new Animal();
        Animal two=new Cat();
        Animal three=new Dog();

Down-casting Os
pontos de referência da subclasse para o objeto da classe pai, aqui deve ser forçado a
converter , você pode chamar o método exclusivo da subclasse deve atender às condições de conversão para ser forçado a converter
operador instanceof: return true / false

     
        if(two instanceof Cat)
        Cat temp=(Cat)two; 
        

A classe abstrata abstract
não pode ser instanciada e pode apontar para instâncias de subclasse por meio de up-casting

Cenário de aplicação: uma
classe pai sabe apenas quais métodos suas subclasses devem conter, mas é impossível saber exatamente como essas subclasses implementam esses métodos.
Métodos abstratos: corpos de método não são permitidos; subclasses precisam substituir os métodos abstratos da classe pai. Caso contrário, a subclasse também é uma classe abstrata.
Private final estático não pode coexistir com abstract.
Regras
1. Abstract define classes
abstratas 2. Classes abstratas não pode ser instanciado diretamente Ele só pode ser herdado Instâncias de objeto podem ser concluídas por meio de transformação para cima
3. Abstract define métodos abstratos sem implementação específica
4. Classes contendo métodos abstratos são classes
abstratas 5. Classes abstratas não podem ter métodos abstratos.

Interface A
interface define as especificações que um determinado lote de classes deve cumprir. A
interface não se preocupa com os dados internos dessas classes ou com os detalhes de implementação dos métodos nessas classes. Ela apenas estipula que certos métodos devem ser fornecidos em essas classes.

O método abstrato na interface não precisa escrever a palavra-chave abstrata. O
modificador de acesso é padronizado como público.
Quando uma classe implementa uma interface, você precisa implementar todos os métodos abstratos na interface, caso contrário, você precisa definir a classe como um classe abstrata.

A interface também pode implementar herança e pode herdar várias interfaces pai

Classe
interna Membro da classe interna
1. Quando a classe interna é usada externamente, ela não pode ser instanciada diretamente, e a instanciação pode ser completada pelas informações da classe externa
2. O modificador de acesso da classe interna pode ser arbitrário, mas o o escopo de acesso será afetado
. 3. Interno A classe pode acessar diretamente os membros da classe externa. Se o atributo com o mesmo nome aparecer, a prioridade é dada à classe interna.
4. Você pode usar a classe externa. membro para acessar as informações de mesmo nome na classe externa
5. Acesso da classe externa = informações da classe interna, Precisa passar a instância da classe interna, não pode acessar diretamente
6. Depois que a classe interna é compilada. Nomenclatura do arquivo da classe: externo class $ internal class.class

Classe interna estática
1. Na classe interna estática, você só pode acessar diretamente os membros estáticos da classe externa. Se precisar chamar o membro não estático, você pode usar a instância do objeto
2. Quando a instância do objeto da classe interna estática , você não pode confiar no objeto de classe externa
3. Sim Acesse os membros estáticos na classe interna por meio da classe externa, classe interna e membros estáticos
. 4. Quando o atributo de classe interna tem o mesmo nome que o atributo de classe externa, o membro da classe interna é chamado diretamente por padrão.
Se precisar acessar o atributo estático na classe externa, você pode usar classes externas. Atributos.
Se precisar acessar propriedades não estáticas em classes externas, você pode usar novos classes externas (). Atributos.

Classe interna do método / classe interna local
1. Definida no método, e o escopo também está no método
2. Igual às regras para o uso de membros internos do método, público, privado, protegido, estático não pode ser adicionado antes a classe
3. Membros estáticos não podem ser incluídos na classe
4. A classe pode conter membros modificados finais e abstratos

Classe interna anônima
1. A classe interna anônima não tem nome de tipo, nome de objeto de instância
2. Nome do arquivo compilado: classe externa $ math.class
3. Não é possível usar modificação privada, pública, protegida, abstrata, estática
4. Não é possível escrever o método de construção, Você pode adicionar estrutura ao bloco de código
5. Membros estáticos não podem aparecer
6. Classes internas anônimas podem implementar interfaces ou herdar classes pai, mas não podem ter ambas

Acho que você gosta

Origin blog.csdn.net/weixin_42403632/article/details/105849644
Recomendado
Clasificación