06-Classes e objetos Java

Base Orientada a Objetos

A Programação Orientada a Objetos é centrada no objeto , distinguindo a organização interna do objeto do ambiente externo, e isolando os dados de atributos internos que caracterizam o objeto de fora. Seu comportamento e atributos formam um todo, enquanto o sistema funciona. como uma sequência de interações entre uma série de objetos, que podem simular ou expressar o mundo real de forma mais vívida.

1. Classe e objeto

  • Classe: uma descrição abstrata de uma classe de coisas com as mesmas características.
  • Objeto: um indivíduo, instância, existência concreta de uma classe.
  • As classes são modelos de design para objetos

1.1 Declaração de classe

【修饰符】 class 类名{
    
    
    成员列表:属性、方法、构造器、代码块、内部类
}

1.2 Criação de objeto

new 类名();  //匿名对象

类名 对象名 = new 类名(); //有名对象

Objeto anônimo:

Sem definir o objeto, mas chamando diretamente o método do objeto, tal objeto é chamado de objeto anônimo.

Uso:

  • Se apenas uma chamada de método for necessária para um objeto, objetos anônimos podem ser usados.

  • Um objeto anônimo pode ser passado como um argumento para uma chamada de método.

2. Membros da classe: atributos

2.1 Declaração de atributo

Posição da declaração : fora do método na classe

【修饰符】 class 类名{
    【修饰符】 数据类型  属性名;    //属性有默认值
    【修饰符】 数据类型  属性名 = 值; //属性有初始值
}

Nota: O tipo de atributo pode ser qualquer tipo de Java, incluindo tipos de dados básicos e tipos de dados de referência (classes, interfaces, matrizes, etc.)

2.2 atribuição de atributo

  1. Atribuir valores explicitamente ao declarar propriedades
【修饰符】 class 类名{
    【修饰符】 数据类型  属性名 = 值; //属性有初始值
}
  1. Atribuir valor após a criação do objeto
【修饰符】 class 类名{
    
    
    【修饰符】 数据类型  属性名; //属性有默认值
}

//创建对象
类名 对象名 = new  类名();

//为对象的属性赋值
对象名.属性名 =;

2.3 Mecanismo de acesso à propriedade

  1. Nesta categoria

Os métodos nesta classe podem acessar diretamente as variáveis ​​de membro nesta classe.
Especial : membros estáticos acessam membros não estáticos, a compilação falha

  1. Classe cruzada

Se você deseja acessar os membros de outras classes, você deve passar "objeto. Membro"

Depois que o usuário cria um objeto com o novo operador, ele pode usar o "objeto. Membro" para obter as propriedades e o comportamento do objeto.

2.4 Características dos atributos

  1. Propriedades têm valores padrão

[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. É recomendado salvar a imagem e carregá-la diretamente (img-4f3Ur0vI-1605863575082) (C: \ Users \ 徐晓 \ Desktop \ 111. png)]

  1. As propriedades de cada objeto são independentes e não interferem umas nas outras

2.5 Gráfico de memória das propriedades do objeto

class Student{
    
    
    String name;
    char gender = '男';//显式赋值
}

class TestStudent{
    
    
    public static void main(String[] args){
    
    
        Student s1 = new Student();
        System.out.println("姓名:" + s1.name);//null
        System.out.println("性别:" + s1.gender);//男
        
        s1.name = "小薇";
        s1.gender = '女';
        System.out.println("姓名:" + s1.name);//小薇
        System.out.println("性别:" + s1.gender);//女
        
        Student s2 = new Student();
        System.out.println("姓名:" + s2.name);//null
        System.out.println("性别:" + s2.gender);//男
    }
}

Insira a descrição da imagem aqui

 

3. Mecanismo de passagem de parâmetro de método

Mecanismo de passagem de parâmetro de método em Java: passagem de valor

  1. Quando o parâmetro formal é um tipo de dados básico, o parâmetro real passa o valor dos dados para o parâmetro formal na forma de cópia, e a modificação do valor pelo parâmetro formal não afeta o parâmetro real.
  2. Quando o parâmetro formal é um tipo de dado de referência, o parâmetro real passa o valor do endereço para o parâmetro formal, e a modificação do atributo do objeto pelo parâmetro formal afetará o valor do atributo do objeto de parâmetro real, porque o parâmetro formal e o parâmetro real aponta para o mesmo objeto neste momento.

4. esta palavra-chave

1. Esta palavra-chave:

Significado: objeto atual

(1) Se aparecer no construtor: o objeto sendo criado

(2) Se aparecer em um método membro: o objeto que está chamando este método

2. O uso deste:

(1) este. Atributo

Quando a variável local e a variável de membro têm o mesmo nome, você pode adicionar "this." Na frente da variável de membro para distinguir

Se você não usar isso para distinguir, siga o princípio da proximidade.

(2) este. Método

Chame o método membro do objeto atual, você pode omitir "this".

5. A diferença entre variáveis ​​de instância e variáveis ​​locais

  • A posição da declaração é diferente: variáveis ​​de instância são métodos externos na classe, variáveis ​​locais são métodos internos ou blocos de código
  • Os locais de armazenamento de dados são diferentes: as variáveis ​​de instância estão na pilha, as variáveis ​​locais estão na pilha
  • O valor inicial é diferente: as variáveis ​​de instância têm valores padrão e as variáveis ​​locais devem ser inicializadas manualmente
  • Modificadores: variáveis ​​de instância podem ter vários modificadores, e variáveis ​​locais só podem usar final, no máximo
  • Escopo: variáveis ​​de instância (acessadas diretamente nesta classe, outras classes são acessadas por meio de objetos), variáveis ​​locais começam na declaração e terminam quando pertencem
  • Ciclo de vida: Variáveis ​​de instância nascem com a criação de objetos, e os objetos são recuperados pelo mecanismo de coleta de lixo. Uma variável local é quando a execução do código excede o escopo do escopo, a variável local se torna inválida.

Acho que você gosta

Origin blog.csdn.net/m0_46988935/article/details/109855402
Recomendado
Clasificación