1 / 30

Programação Orientada a Objetos

Programação Orientada a Objetos. Artur Henrique Kronbauer arturhk@gmail.com. Conteúdos Abordados. Programação Orientada a Objetos Como modelar com Orientação a Objetos(OO) Modelos, seus dados e comportamentos Definição de classes Definição de tipos primitivos e não primitivos

ciqala
Download Presentation

Programação Orientada a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação Orientada a Objetos Artur Henrique Kronbauer arturhk@gmail.com

  2. Conteúdos Abordados • Programação Orientada a Objetos • Como modelar com Orientação a Objetos(OO) • Modelos, seus dados e comportamentos • Definição de classes • Definição de tipos primitivos e não primitivos • Construtores • Criação de Objetos • Sobrecarga • Interação entre Objetos • Generalização • Especialização • Herança

  3. O que é POO? • Programação Orientada a Objetos é uma metodologia de desenvolvimento de software. • Sua principal vantagem é a proximidade com a forma que os seres humanos visualizam e entendem o mundo ao seu redor. • Tem como principal objetivo facilitar a modelagem e desenvolvimento de sistemas, através da interação entre objetos.

  4. Como podemos modelar com OO? • Vamos imaginar a seguinte situação: • A esposa de um jovem casal, se encontra no segundo mês de gravidez. No meio da noite, a grávida acorda com uma azia terrível. Como é natural, a mulher pede que seu marido providencie um antiácido para ela.

  5. Como podemos modelar com OO? • Como poderíamos representar esse problema sobre a ótica dos Objetos? • o objeto marido recebe uma mensagem do objeto esposa. • O objeto marido responde a essa mensagem mediante a uma ação: buscar antiácido. • A esposa não tem que dizer a ele onde ele deve procurar, é responsabilidade do marido a ação de procurar o antiácido. • Ao objeto esposa basta ter emitido uma mensagem ao marido.

  6. Modelos e Dados • Os modelos na POO são chamados de classes. • As classes especificam as características dos objetos materializados a partir delas. • Tais características são chamados de atributos. • Ao ser materializado um objeto dizemos que criamos uma Instância da classe. • Instâncias distintas de uma mesma classe possuem os mesmos atributos, entretanto com possíveis diferenças de valores.

  7. Modelos e Dados • Os objetos são diferenciadas pelos seus nomes de referência e não pelo valor de seus atributos.

  8. Modelos e Comportamento • Em muitas situações os problemas do mundo real ao serem modelados para o mundo computacional, necessitam ser fragmentados de acordo com as ações que esse modelo especificará para a representação do problema. • Objetos possuem comportamentos os quais são representados nas classes através dos métodos.

  9. Modelos e Comportamento • A fragmentação permite que o problema seja representado por um conjunto de métodos, os quais representam as ações do modelo. • Vantagens de ter vários métodos em um modelo: • facilidade em escrever o modelo; • utilizações repetidas de um mesmo método; • facilidade em dar manutenção; • utilização de parametrizações; • utilização adequada de recursos.

  10. Abstraindo dados e Comportamentos

  11. Abstraindo dados e Comportamentos

  12. Definição de uma classe em Java

  13. Definição de Tipos • Os tipos aparecem tanto nas declarações de atributos como na declaração de métodos. • Os tipos podem ser primitivos: • int, float, char, double, byte, boolean. • Os tipos podem ser Não primitivos (nomes de outras classes previamente definidas) • String, Mamiferos Classes também são tipos!

  14. Exemplos da utilização de Tipos • Para definição de Atributos:

  15. Exemplos da utilização de Tipos • Para a construção de Métodos:

  16. Construtores • Um construtor é um método que possui o mesmo nome da classe onde ele está declarado. • Seu objetivo é inicializar o estado interno de um objeto (seus atributos). • O construtor não possui retorno de nenhum tipo, nem mesmo void. • Um construtor sempre é chamado através do operador new no momento de se instanciar um objeto.

  17. Criando Objetos

  18. Sobrecarga de Métodos e Construtores • Diferentes métodos podem ter o mesmo nome, porém com listas de parâmetros (assinaturas) diferentes. • Esse conceito é chamado de sobrecarga. • Este fato muitas vezes é necessário para modelarmos comportamentos semanticamente semelhantes, porém alimentados com dados diferentes.

  19. Exemplo de Sobrecarga class soma {  int calculo(int numero1, int numero2) { int resposta;          resposta = numero1 + numero2; return resposta; } int[] calculo(int vetor1[], int vetor2[])      {    int[] resposta = new int[vetor1.length];       int i; for (i=0; i < vetor1.length; i++) {  resposta[i] = vetor1[i] + vetor2[i]; }          return resposta; } }

  20. Interação entre Objetos • Modelagens complexas necessitam da interação entre vários objetos para a solução do problema. • A idéia é chamada de “Dividir para conquistar”. • Em POO, podemos ter várias classes com objetivos específicos, as quais ao interagirem através de seus objetos solucionam problemas mais abrangente.

  21. Exemplo de Interação entre Objetos Controle de Estoque

  22. Generalização • Dona Cicinha quer evoluir o sistema para controlar o faturamento. • Para isso será necessário controlar os quitutes vendidos. • Ao ser criadas as classes quitutes e bebidas, podemos notar que alguns atributos e métodos são iguais. • A criação de uma classe chamada produtos poderia agrupar as semelhanças.

  23. Generalização

  24. Generalização • Através da generalização podemos agrupar em uma classe um conjunto de definições comuns a diferentes classes.

  25. Especialização • A especialização é o caminho inverso da generalização. Partindo de um modelo mais genérico podemos acrescentar novas características e comportamentos aos já existentes.

  26. Herança • Herança é um dos mecanismos fundamentais de relação entre classes na orientação a objetos. • Ela relaciona uma classe pai (superclasse) com outras classes filhas (subclasses) de forma hierárquica. • As subclasses herdam todos os atributos e métodos da superclasse e podem criar os seus próprios métodos e atributos.

  27. Herança • A definição de herança em uma classe ocorre na linguagem Java através da palavra “extends” colocada logo após o nome da classe que herda de outra. • Uma subclasse para referenciar os métodos ou atributos da superclasse utilizamos a palavra reservada super.

  28. Herança

  29. Assuntos para a próxima Aula • Modificadores de acesso a Atributos e Métodos • Polimorfismo • Classes Abstratas • Interfaces • Pacote de Classes

  30. Bibliografia • BARNES, D e Kölling, M. Programação Orientada a Objetos com Java. 2a Edição: Editora Pearson Education. 2007. • DEITEL, H. M. e DEITEL, P. J. Java como Programar. 4a Edição: Editora Bookman. 2003. • SANTOS, R. Introdução à Programação Orientada a Objetos Usando Java. 1a Edição: Editora Campus. 2003.

More Related