780 Shares 2920 views

OLP – o que é isso? Os princípios básicos da programação orientada a objetos

Por programação orientada a objetos é o preferido na maioria dos projetos? PLO oferece uma maneira eficaz de lidar com sua complexidade. Em vez de considerar um programa como uma seqüência de instruções executáveis, representa-o como um grupo de objetos com certas propriedades e produzi-los com determinadas ações. Isso resulta em um aplicações mais clara, mais confiáveis e legkosoprovozhdaemyh.

Os princípios básicos da programação orientada para o objecto (OOP) formado porque as restrições foram encontrados em abordagens pré-existentes. Entre eles – acesso ilimitado aos dados e um grande número de ligações, que impõem restrições à mudança. Sua consciência e causas importante entender o que a programação OOP e quais são suas vantagens.

linguagens procedurais

C, Pascal, Fortran, e línguas semelhantes são processuais. Ou seja, cada um o operador diz ao computador para fazer alguma coisa: para obter os dados, somar os números, divididos em seis, o resultado apresentado. linguagem procedural apêndice é lista de instruções. Se ele é pequeno, nenhum princípio organizador outra (muitas vezes referida como um paradigma) não é necessária. O programador cria uma lista de instruções, e o computador executa-los.

Separação de funções

Quando os aplicativos se tornam lista mais complicado de voltas. Poucos podem compreender mais do que algumas centenas de instruções até que sejam agrupados. Por esta razão, a função era a maneira de tornar a aplicação mais compreensível para os seus criadores. Em algumas línguas, o mesmo conceito pode ser chamado de sub-rotinas ou procedimentos.

O aplicativo é dividido em funções, cada um dos quais tem um propósito e uma interface claramente definida.

A idéia de separação de procedimentos pode ser expandida em um agrupamento maior de objeto chamado um módulo, mas o princípio é análogo: o agrupamento de componentes que carregam listas de documento.

Separação de funções e módulos – uma das pedras angulares da programação estruturada, que por várias décadas até que a OLP foi que coloca paradigma.

problemas de programação estruturada

Como os aplicativos se tornam maiores, programação estruturada começando a experimentar dificuldades. Projectos tornar-se demasiado complexa. deslocou gráficos. Trata-se de um grande número de programadores. A complexidade tem crescido. Custos atirando para cima, o calendário foi deslocado ainda mais, e houve o colapso.

Análise das causas de falhas revelou deficiências paradigma processual. Independentemente de quão bem estruturada abordagem de programação implementada, grandes aplicações tornam-se excessivamente complexa.

Quais são as causas destes problemas associados com linguagens procedurais? Em primeiro lugar, as funções têm acesso ilimitado aos dados globais. Em segundo lugar, os procedimentos não relacionados e os valores ruins simular o mundo real.

Se considerarmos estas questões no contexto do software de contabilidade de inventário, um dos elementos mais importantes do global de dados é um conjunto de SKUs. Diferentes funções podem se referir a eles para introduzir um novo valor, ele é exibido, mudanças e assim. D.

acesso ilimitado

O programa de escrita, por exemplo, em C, existem dois tipos de dados. Local escondido dentro da função e outros procedimentos não são utilizados.

Quando duas ou mais funções têm acesso aos mesmos dados, este último deve ser global. Tal é, por exemplo, são tomadas em conta as informações sobre os assuntos. Os dados globais pode ser qualquer procedimento disponível.

Em um grande programa, existem muitos recursos e muitos elementos globais. O problema do paradigma processual é que ele leva a um maior número de potenciais ligações entre eles.

Tal um grande número de ligações provoca várias dificuldades. Primeiro, ela complica a compreensão da estrutura do programa. Em segundo lugar, difícil de mudar. Mudança no item de dados global pode requerer ajuste de todas as funções que têm acesso a ela.

Por exemplo, no programa de contabilidade alguém decide que código objeto representaram deve consistir não de 5 dígitos, e de 12. Isso vai exigir uma mudança do tipo de dados de curto para longo. Agora associado com o código de função deve ser modificado para trabalhar com o novo formato.

Quando os elementos são alterados em uma aplicação maior, é difícil dizer quais os procedimentos têm acesso a eles. Mas, mesmo que esta figura, alterá-los pode resultar em operação incorreta com outros dados globais. Tudo está conectado com tudo o mais, então uma mudança em um lugar sair pela culatra em outro.

Modelando o mundo real

O segundo e mais importante problema do paradigma processual é que a sua localização específica de dados e funções mal simula as coisas no mundo real. Aqui estamos lidando com objetos como pessoas ou carros. Eles são como quaisquer dados ou a função. Complexas objetos do mundo real têm atributos e comportamentos.

atributos

Exemplos de atributos (às vezes chamados de propriedades) para as pessoas são a cor dos olhos e o nome do post, para um carro – o poder e número de portas. Como se viu, os atributos do mundo real equivalentes aos dados no programa. Eles têm valores específicos, como o azul (cor dos olhos) ou quatro (o número de portas).

comportamento

Comportamento – é que os objetos do mundo real são produzidas em resposta a algum tipo de impacto. Se você perguntar a um chefe de aumento salarial, a resposta é "sim" ou "não". Se você pressionar o freio, o carro vai parar. E parar os comportamentos enunciado são exemplos. Comportamento semelhante ao procedimento: ele é chamado para fazer alguma coisa, e ele faz isso. Assim, os dados e as funções por si só não modelar objetos do mundo real de forma eficiente.

Dirigindo

O objecto em OOP é representada como um conjunto de dados e funções. Apenas os procedimentos que são chamadas de funções membro em C ++, para permitir obter o seu valor. Estes são escondidos e protegidos contra alterações. Significados e funções são encapsuladas em um. Encapsulamento e upryatyvanie – termos básicos na descrição das linguagens orientadas a objeto.

Se você deseja alterar os dados, ele sabe exatamente o que funções interagir com eles. Não há outros procedimentos não podem acessá-los. Isto simplifica a escrita, depuração e manutenção do programa.

Uma aplicação consiste tipicamente em vários objectos, que interagem um com o outro, fazendo com que as funções de membro.

Hoje, a OOP mais amplamente utilizado linguagem (programação orientada a objetos) – C ++ (plus plus). Em Java carece de alguns recursos como ponteiros, modelos e herança múltipla, o que torna menos poderoso e versátil do que C ++. C # ainda não atingiu a popularidade do C ++.

Deve notar-se que os chamados funções membro em métodos C ++ chamado em alguns outros idiomas orientada para objectos tais como Smalltalk. Os itens de dados são chamados atributos. Chamar um método do objeto está enviando-lhe mensagens.

analogia

Você pode imaginar os objetos dos departamentos da empresa. Na maioria das organizações, os funcionários não trabalhar um dia com a equipe, o seguinte salário sobrecarga, e depois de uma semana envolvidos no comércio a retalho. Cada departamento tem seu próprio pessoal, com deveres claramente atribuídas. Há próprios dados: indicadores de salários, vendas, contabilidade pessoal, etc. As pessoas nos departamentos trabalham com a sua informação … A divisão da empresa, portanto, facilita o controle de suas operações e mantém a integridade dos dados. Contabilidade é responsável pela folha de pagamento. Se você quiser saber a quantidade total de salários pagos a parte sul em julho, não precisa mergulhar no arquivo. É o suficiente para enviar uma nota para a pessoa responsável, esperar até que a pessoa tem acesso aos dados e envia a resposta às informações solicitadas. Isto assegura a conformidade com as normas e a ausência de interferência externa. Da mesma forma um objeto no PLO fornece aplicação organização.

Deve ser lembrado que a orientação dos objetos não se aplica aos detalhes do programa de trabalho. A maioria das instruções C ++ operadores corresponde aos idiomas processuais, tais como C. Na verdade, as funções de membro em C ++ são muito semelhantes às funções em C. Apenas o contexto mais amplo permitirá estabelecer se objeto-orientada a instrução processual ou.

O objeto em OOP: Definição

Ao considerar o problema de programação em linguagem orientada a objetos em vez de perguntas sobre a sua divisão em funções distintas é um problema nas instalações de separação. OOP pensamento é muito mais fácil desenvolver aplicações. Isto é devido à similaridade de software e objetos reais.

Que tipo de coisas são objetos em OOP? Aqui estão algumas categorias típicas.

objeto físico em OOP – é:

  • modelos de fluxo de transporte;
  • componentes elétricos nos programas de design de circuito;
  • modelo de economia do país;
  • aeronaves no sistema de controle de tráfego aéreo.

Elementos do ambiente do computador do usuário:

  • Menu;
  • janelas;
  • gráficos (linha, rectângulo, círculo);
  • unidades teclado, mouse, impressora, disco.

pessoas:

  • trabalhadores;
  • estudantes;
  • clientes;
  • vendedores.

informações:

  • livro manutenção;
  • um assunto privado;
  • dicionário;
  • tabela de latitudes e longitudes de assentamentos.

Comunicação de objetos do mundo real ea OLP foi o resultado de uma combinação de funções e dados que eles revolucionaram a programação. Tal estreita correspondência em linguagens procedurais lá.

classe

Objetos no PLO – um membro da classe. O que significa? As linguagens de programação têm built-in tipos de dados. Tipo int, t. E. Um número inteiro que é predeterminada em C ++. Você pode declarar qualquer número de int variáveis.

Da mesma forma, uma pluralidade de objectos definido por uma classe. Ele define as funções e os dados incluídos nas suas instalações, não criá-los, bem como um int não criar variáveis.

Classe no PLO – uma descrição de um número de objetos semelhantes. Prince, Sting e Madonna são os cantores. Não há ninguém com esse nome, mas as pessoas podem ser chamado assim, se eles têm as características adequadas. OOP objeto – neste caso.

herança

Na vida, as aulas são divididas em subclasses. Por exemplo, os animais são divididos em anfíbios, aves, mamíferos, insectos e assim por diante. D.

O princípio deste tipo de divisão é que cada subclasse tem características comuns com a classe da qual a. Todos os carros têm rodas e um motor. Esta é as características definidoras dos veículos. Além das características gerais de cada subclasse tem suas próprias características. Há muitos assentos de ônibus e caminhões têm o espaço para transportar cargas pesadas.

Da mesma forma, uma classe de base pode ser uma subclasse-mãe vários derivados que podem ser definidos de modo a que eles vão partilhar as suas próprias características, com a adição. Herança como funções, simplificando programa processual. Se várias partes do código está fazendo praticamente o mesmo, você pode extrair os elementos comuns e colocá-los em um procedimento. Três área de aplicação pode chamar a função para executar ações comuns, mas eles podem produzir e suas próprias operações. Da mesma forma, a classe de base contém informação comum para o grupo de derivados. Uma função semelhante reduz a herança de programa orientada a objectos e clarificar a relação dos seus elementos.

reciclagem

Uma vez que a classe é criado e depurado, ele pode ser transferido para outros programadores para reutilizar em seus próprios aplicativos. É como uma biblioteca de funções que podem ser incluídos em diferentes aplicações.

Em OOP, a herança é uma extensão da idéia de uso múltiplo. A partir de uma classe existente, sem alterá-lo, podemos formar um novo com a adição de outras funções. A facilidade de reutilização de software existente – uma vantagem importante da OLP. Acredita-se que ele fornece uma rentabilidade crescente do investimento inicial.

A criação de novos tipos de dados

Instalações adequadas para a criação de novos tipos de dados. Suponha que um programa usa valores bidimensionais (por exemplo, coordenadas ou latitude e longitude), e têm um desejo de expressar a ação da aritmética sobre eles:

posição1 = posição + origem,

onde posição1, posição e origem – um par de valores numéricos independentes. Criando uma classe que inclui estes dois valores, e declarações de variáveis de seus objetos cria um novo tipo de dados.

Polimorfismo, sobrecarga

Operadores = (iguais), e + (mais) utilizados na aritmética posicional acima não actuam assim como um embutido tipos, tais como int. posicionar objetos, e outros. Não são pré-determinado e definido por software. Como é que estes operadores sabem como lidar com eles? A resposta reside no fato de que novos comportamentos pode ser definido por eles. Estas operações será membro funções Classe Posição.

Usando operadores ou procedimentos, dependendo do que eles estão trabalhando é chamado polimorfismo. Quando há um operador, tais como + ou =, tem a oportunidade de trabalhar com o novo tipo de dados, ele diz que está sobrecarregado. Sobrecarga na OLP – uma espécie de polimorfismo. É a sua característica importante.

Um livro sobre a "Programação Orientada a Objetos for Dummies" PLO vai permitir que todos possam se familiarizar com esse tópico em mais detalhes.