O que é orientado a objetos?
Objeto objeto, Orientd ... Orientado, Programação de Programação
Orientado por objetos significa o uso de objetos para programação, abreviado como OOP.
Comparação entre SP e OOP
Três princípios principais de encapsulamento orientado a objetos e polimorfismo de herança
Objeto
Os objetos são a parte central da programação orientada a objetos, são entidades específicas reais com estados e comportamentos claramente definidos;
Os objetos são na verdade encapsulações de "dados" e "funções", nas quais:
Os dados representam seu próprio status, também conhecido como "atributos" ou "dados de membros";
As funções representam suas próprias funções, também conhecidas como "métodos" ou "funções membros".
tipo
Para entender melhor o mundo, as pessoas dividem as coisas (objetos) na vida real em categorias;
As coisas na mesma categoria sempre têm alguns pontos em comum;
As classes definem entidades com características e comportamentos comuns;
Uma classe é uma coleção de um grupo de objetos com as mesmas propriedades e comportamentos.
propriedade
As características das coisas são representadas por variáveis na classe;
Cada propriedade de cada objeto tem seu valor específico;
O nome do atributo é compartilhado por todos os objetos da classe;
Recursos de propriedade de objetos ou entidades são chamados de atributos quando representados em uma classe
método
Os comportamentos e ações das coisas são representados pelas funções da classe;
Cada objeto tem as mesmas ações e comportamentos;
As ações executadas por um objeto são representadas como métodos na classe.
A diferença entre uma classe e um objeto
As classes são "modelos" ou "protótipos" usados para descrever entidades;
Objetos são entidades reais e cada objeto é uma instância concreta da classe;
As classes são usadas para definir todas as propriedades e métodos de um objeto, e todos os objetos da mesma classe têm as mesmas características e operações;
As classes podem ser entendidas como moldes que produzem produtos, e o objeto é os produtos produzidos com base nesse molde.
Classes e estruturas
Pacote
Empacote algo juntos e apresente -o em um formulário novo e completo;
A maneira de lidar com atributos, métodos ou detalhes de implementação ocultos é chamada de encapsulamento;
O encapsulamento está na verdade expondo ou ocultando determinadas informações, que resolve os problemas de segurança dos dados.
herdar
A herança é uma característica da reutilização de classes existentes para gerar novas classes;
Nos termos do leigo, é o processo de criação de uma nova classe (subclasse ou classe derivada) de uma classe existente (ou seja, uma classe pai ou classe base);
Na vida real, a herança pode alcançar o objetivo da reutilização da propriedade, enquanto em Java, a herança pode fazer a reutilização do código.
Polimórfico
O polimorfismo refere -se às diferentes implementações da mesma função em diferentes classes;
A vantagem do polimorfismo é que ele torna as classes mais flexíveis e mais fáceis de expandir.
Há também um "abstrato" sobre o qual tenho que falar aqui
resumo
O processo de classificar os mesmos objetos ou semelhantes na mesma categoria é a abstração, portanto, a abstração é um método de análise de problemas;
Os princípios básicos da abstração:
Apenas se preocupe com as principais questões, não com as questões secundárias;
Só se preocupa com a principal contradição, não a contradição secundária;
Apenas se preocupe com as mesmas coisas, não com as diferentes coisas;
Apenas se preocupe com qual é o problema e o que pode ser realizado, mas não como realizá -lo.
O processo abstrato é na verdade a idéia central da programação orientada a objetos.
Definindo aulas em Java
Crie um objeto em Java
Sintaxe para criar um objeto
Semelhante às matrizes, os objetos também se referem aos tipos de dados e só podem alocar memória da pilha usando o novo operador;
Sintaxe geral para criar objetos:
Nome da classe Nome de referência = novo nome da classe ();
Usando classes já definidas, o processo de criação de objetos nessa classe é chamado de "instância".
Operador membro "."
Somente instanciando o objeto da classe First, os membros da lata (propriedades e métodos) serão acessados na classe;
Use os operadores de membros (.) Para acessar propriedades de membros ou métodos de membros;
A sintaxe geral é:
Nome do objeto. Nome do membro como:
std.age = 18; // atribui um valor ao atributo de membro std.dining (); // Chamando o método do membro
Permissões de acesso: público e privado
Os membros de estruturas no idioma C podem ser acessados de qualquer lugar, o que deixará grandes perigos ocultos para a segurança dos dados;
Para evitar a corrupção de dados causada pelo acesso diretamente aos membros da classe de fora da classe, o Java define restrições ao acesso aos alunos;
As palavras -chave públicas e privadas são modificadores de acesso para indicar se um membro pode ser acessado de fora da classe;
Os membros de modificações públicas podem ser acessadas em qualquer lugar sem restrições;
Os membros modificados por particulares só podem ser acessados por outros membros nesta classe e não podem ser acessados de fora da classe.
Incapaz de acessar membros particulares de fora da classe;
Membros particulares de outras classes também estão ocultos da classe atual.
Exemplo de permissão de acesso
Classe Student {private String Name; // nome, particular, privado, privado, privado, privado, privado, privado, privado, particular, privado, privado, acesse diretamente fora da aula; // Weight, private, directly access from outside the class// Method of eating, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, public, //The walk O método é um membro interno da classe e você pode acessar diretamente os membros privados desta classe}} public class Test {public static void main (string [] args) {Student std = new Student (); // instanciar um objeto estudantil std.age = 18; // Tente acessar membros privados de fora da classe, um erro será relatado std.dining (); // Aceite acesso a membros públicos}}
Permissões de acesso (continuação)
A adição de modificadores de acesso às vezes pode causar inconvenientes para operar dados, mas pode garantir a segurança dos dados em grande parte;
Geralmente, declaramos os atributos dos membros como métodos privados e membros como públicos, mas isso não é absoluto;
Às vezes, alguns membros de dados privados podem precisar ser operados fora da classe, para que um método público possa ser adicionado, e esse método pode ser usado para operar dados privados para evitar a corrupção de dados causada pela inição fora da classe;
Como o método principal deve ser chamado por uma máquina virtual fora da classe, o método principal deve ser declarado público.
Por exemplo: modifique a aula de estudante
Classe Student {// Defina o nome da string privada da classe Student; // nome, private Int Age; // idade, peso privado de flutuação privada; // Peso, o método privado de vazio público privado (nome da string) {// Método para atribuir valores aos nomes, public this.name = name; } public void setage (int a) {// Método para atribuir valores à idade, público público = a; } public void Setweight (float w) {// Método para atribuir valores ao peso, peso público = w; } public void Display () {// O método para imprimir todas as informações é de propriedade pública System.out.println ("nome:" + nome + ", idade:" + idade + ", peso:" + peso); } public void Dining () {...} // O método para comer, público, codificar um pouco public void Walk () {...} // O método para caminhar, público, codificar ligeiramente} public class Test {public static void main (string [] args) {Student std = new Student (); // instanciar o objeto de classe do aluno std.setName ("Zhang San"); // atribui o nome std.setage (18); // atribuir std.setweight (55); // atribui std.dining () ao peso; // chama o método de comer std.display (); // Imprima as informações}} Inicialização do objeto
No exemplo acima, você pode atribuir apenas valores aos membros de dados um por um. Se você deseja inicializar os atributos do membro ao instantar o objeto, usa o método de construção;
O construtor é um método de membro especial, que tem o mesmo nome da classe e é automaticamente chamado pela máquina virtual quando o objeto é instanciado;
Observação: o construtor não possui tipo de valor de retorno e não pode ter um valor de retorno.
Exemplo de método de construção:
/ *Defina a classe construtorDemo e teste o método do construtor */ classe constructorDemo {/ *construtor, o nome do método é exatamente o mesmo que o nome da classe, não há necessidade de especificar o tipo de valor de retorno, nem pode haver um valor de retorno */ public construtorMo () {System.out.println ("isto é o construtor"); }} /*Classe de teste, usada para acomodar o método principal, geralmente declara a classe que contém o método principal como Public* / public classe Test { /*Método principal, entrada do programa* / public static void main (string [] args) { /*instantam o objeto da classe construtorDemo* / constructordemo cd = new Constructordemo; }} // será lançado "Este é o método do construtor" Método de construção
É precisamente porque o método do construtor é chamado automaticamente ao instanciar o objeto; portanto, o método do construtor é geralmente usado para alocar recursos aos membros de dados ou inicializar os membros do dados;
Forma geral de método de construção:
Nome da classe de permissão de acesso (lista de parâmetros formais) {
Corpo do método
}
Como o construtor é chamado pela máquina virtual, o construtor geralmente deve ser definido como público.
Por exemplo: adicione um construtor à aula de estudante
Classe Student {// Defina o nome da string privada da classe Student; // nome, private Int Age; // idade, peso privado de flutuação privada; // peso, método privado // de construção, atribui valores aos membros de dados de acordo com os parâmetros aprovados, estudante público (string n, int a, float w) {// atribui valores iniciais a cada nome do membro de dados = n; idade = a; peso = w; } public void SetName (String n) {...} // Atribua valores ao nome, público, codifique um pouco public void Setage (int a) {...} // atribui valores a idade, public, código ligeiramente vazio de peso Public (float) {…} // Métodos para atribuir peso, codificar ligeiramente public void () {{} {…} {…} // Métodos Para comer, public, codificar um pouco public void Walk () {…} // Métodos para caminhar, public, codificar um pouco public void walk () {…} // métodos para caminhar, public, código ligeiramente de classe pública {public static void main (string [] args) {// use o método de construção para especificar o método para especificar o método para especificar o número inicial do aluno "para o aluno" para o aluno "para o aluno", para o estudo, o que é um dos membros do estudo, o que é o que é um dos dados. std.display (); // Imprima as informações}}
Método de construção (continuação)
Cada objeto deve executar um construtor quando gerado e só pode ser executado uma vez;
Se a chamada do método do construtor falhar, o objeto não poderá ser criado;
O construtor não pode ser chamado diretamente explicitamente;
Sem um construtor definido, a classe gerará automaticamente um construtor padrão sem parâmetros, o que não faz nada;
Depois que o construtor é explicitamente definido, o construtor padrão desaparece automaticamente. Portanto, dois métodos de construção são geralmente definidos: sem parâmetros e sem parâmetros.
Resumir