índice
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
- Atribuir valores explicitamente ao declarar propriedades
【修饰符】 class 类名{
【修饰符】 数据类型 属性名 = 值; //属性有初始值
}
- Atribuir valor após a criação do objeto
【修饰符】 class 类名{
【修饰符】 数据类型 属性名; //属性有默认值
}
//创建对象
类名 对象名 = new 类名();
//为对象的属性赋值
对象名.属性名 = 值;
2.3 Mecanismo de acesso à propriedade
- 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
- 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
- Propriedades têm valores padrão
- 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);//男
}
}
3. Mecanismo de passagem de parâmetro de método
Mecanismo de passagem de parâmetro de método em Java: passagem de valor
- 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.
- 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.