Aula classes abstratas 3º periodo uniao

477
-1

Published on

Aula sobre classes abstratas ministrada para a matéria de Análise Projeto e Programação Web do curso de TSI.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
477
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula classes abstratas 3º periodo uniao

  1. 1. ANÁLISE PROJETO EPROGRAMAÇÃO PARA WEBCLASSES ABSTRATASProfª. Maria Alice Jovinski
  2. 2. ABSTRAÇÃO “Consiste em enfocar nos aspectos essenciais de uma entidade e ignorar suas propriedades internas. Significa enfocar no que um objeto é e faz, antes de decidir como ele dever ser implementado” [Rumbaugh]
  3. 3. ABSTRAÇÃO A abstração se preocupa com a visão superficial de um objeto, por isso serve para separar o comportamento de um objeto de sua implementação.
  4. 4. ABSTRAÇÃO  É independente de uma linguagem, mas linguagens OO dão mais poder.  Ex.: Os atributos de um Carro dependem de seu ponto de vista.  Ponto de vista de um vendedor:  Modelo, Preço, Cor.  Ponto de vista de um mecânico;  Tipo de motor, tipo de transmissão.
  5. 5. ABSTRAÇÃO EM JAVA  Através da definição de classes abstratas.  São classes definidas exclusivamente para servirem de classe base.  Não podem gerar objetos.  Para se definir uma classe abstrata usa-se a palavra reservada – abstract.
  6. 6. CLASSES ABSTRATAS  São classes que se comportam como um esqueleto (não podem ser instanciadas)‫‏‬  As classes filhas de uma classe abstrata apenas herdam o que está definido  Define a estrutura sem fornecer a implementação completa de cada método.
  7. 7. CLASSES ABSTRATAS  Uma classe abstrata pode conter métodos abstratos ou não.  Operações que têm seu protocolo definido na classe abstrata e são implementadas nas classes derivadas. Desejando-se utilizar os métodos abstratos, estes devem ser implementados nas classes derivadas.  Sempre que for definido um método abstrato a classe deve ser abstrata.
  8. 8. CLASSE ABSTRATA FORMAGRAFICA Gráfica
  9. 9. EXEMPLO CLASSE ABSTRATAFORMAGRAFICAabstract class FormaGrafica { protected float x,y; .... public void move(float dx,float dy) { this.x+=dx; this.y+=dy; } .... abstract public void mostra(); //método abstrato}
  10. 10. EXEMPLO CLASSE PONTOclass Ponto extends FormaGrafica { public Ponto(float ax,float ay) { this.x=ax; this.y=ay; } public void mostra() { System.out.println("("+this.x+","+this.y+")"); }}
  11. 11. MAIS UM EXEMPLO: CÍRCULO class Circulo extends FormaGrafica { protected float raio; public Circulo(float ax,float ay, float raio) { this.x=ax; this.y=ay; this.raio=raio; } public void mostra() { System.out.println("("+this.x+","+this.y+")"); System.out.println(“Raio‫‏+“‏:‏‬this.raio); } }
  12. 12. EXEMPLO CLASSE RETANGULO class Retangulo extends FormaGrafica { protected float dx,dy; //canto superior x,y public Retangulo(float ax,float ay,float dx,float dy) { this.x=ax; this.y=ay; this.dx=dx; this.dy=dy; } public void move(float x, float y, float dx, float dy) { super.move(x,y); this.dx+=dx; this.dy+=dy; } public void mostra() { System.out.println("("+this.x+","+this.y+")("+dx+","+dy+")"); } }
  13. 13. TESTANDO AS FORMAS GRÁFICAS public class Main { public static void main(String[] args) { Ponto pt = new Ponto(15,1); Circulo circ = new Circulo(1,10,50); Retangulo ret = new Retangulo(1,1,15,20); System.out.println("Ponto"); pt.mostra(); System.out.println("Circulo"); circ.mostra(); System.out.println("Retangulo"); ret.mostra(); } }
  14. 14. CLASSES DE ANÁLISE Representam um modelo conceitual primário para elementos que têm responsabilidades e comportamento no sistema. São mantidas em um alto nível, numa visão puramente conceitual.
  15. 15. CLASSES E OBJETOS Objeto é simplesmente alguma coisa que faz sentido no contexto da aplicação. Não deve ter nomes vagos  Ex.: Dados, Informação.
  16. 16. CLASSES E OBJETOS A Classe descreve um grupo de objetos com propriedades similares (atributos), comportamento comum (operações), relacionamento com outros objetos e semântica comum  Ex.: Pessoa, empresa, janela Agrupando Objetos em Classes nós estamos abstraindo o problema.
  17. 17. DIAGRAMA DE ESTRUTURA ESTÁTICA Diagrama de Classes  É um esquema, padrão, ou molde, para descrever, várias possíveis instâncias de dados.  Descreve as Classes
  18. 18. CLASSES E OBJETOS  Diagrama de Classes Pessoa  Diagrama de Objetos/Instâncias João:Pessoa Maria:Pessoa Ana
  19. 19. ATRIBUTOS  Um atributo é uma propriedade de um objeto  Ex.: Nome, idade (atributos de pessoa)  Cada atributo tem um valor para cada instância  A idade de João é 26  Devem ser valores de dados puros, e não objetos  Um atributo pode ter um valor default
  20. 20. ATRIBUTOS Visibilidade:  + {público}: o elemento pode ser utilizado pelo objeto no qual ele pertence e por qualquer objeto cliente.  # {protegido}: o elemento pode ser utilizado somente pelo próprio objeto no qual ele pertence, ou se existirem, pelas suas subclasses.  - {privado}: o elemento pode ser utilizado somente pelo objeto ao qual ele pertence.  ~{package}: visível a classes do mesmo package.
  21. 21. ATRIBUTOS  Diagrama de Classes/Objetos Pessoa Represente a Nome: String visibilidade desses Idade: Inteiro atributos. :Pessoa :Pessoa Nome=João Maria Idade= 28 25
  22. 22. OPERAÇÕES E MÉTODOS Uma operação é uma função, ou transformação, que pode ser aplicada para ou por objetos em uma classe  Contratar, PagarSalários são operações da Classe Empresa Um método é uma implementação específica de uma Operação
  23. 23. OPERAÇÕES E MÉTODOS Operações podem ser polimórficas  Imprimir arquivos binários, textos, figuras. Operações podem receber parâmetros  Mover um polígono 10 pixels Todas as instâncias de uma classe compartilham as mesmas operações.
  24. 24. OPERAÇÕES E MÉTODOS Diagrama de Classes Supondo que o Pessoa obterIdade() seja usado somente por um objeto -Nome: String desta classe, qual deve -Idade: Inteiro ser o símbolo de visibilidade para este método? mudarNome() obterIdade()
  25. 25. RELACIONAMENTOS Associação Agregação Composição Generalização Especialização
  26. 26. ASSOCIAÇÕES É uma relação que descreve um conjunto de vínculos entre elementos de modelo Podem ser reflexivas, binárias, ternárias, etc.
  27. 27. ASSOCIAÇÕES Diagrama de Classes País Cidade Tem-capital Nome Nome Diagrama de Objetos :País :Cidade Tem-capital Brasil Brasília
  28. 28. ASSOCIAÇÕES BINÁRIAS Quando há duas classes envolvidas na associação de forma direta de uma para a outra (mutualismo) Empregado Empresa Trabalha-para
  29. 29. MULTIPLICIDADE DE ASSOCIAÇÃO Especifica quantas instâncias de uma classe pode se relacionar com cada instância de outra classe. Limita o número na relação entre os objetos. Geralmente‫‏‬é‫“‏‬um”‫‏‬ou‫“‏‬muitos”,‫‏‬mas‫‏‬pode‫‏‬ ser um conjunto finito. Carro Roda se-move-sobre 4
  30. 30. MULTIPLICIDADE DE ASSOCIAÇÃO Mais exemplos.... Empregado Empresa Trabalha-para 0..* Workstation 0..1 Janela console
  31. 31. MULTIPLICIDADE - UML Exatamente 1 0..* Muitos (zero ou mais) 0..1 Opcional (zero ou um) 1..* Um ou mais 4 Numericamente Especificado (exatamente 4) 2,4..7 Numericamente Especificado (2,4,5,6 ou 7)
  32. 32. PAPÉIS DA ASSOCIAÇÃO  É o nome que identifica um lado da Associação.  Também chamado de Papel Executado (ou Nomes de Papel, Role Names); Pessoa Empregado Empregador Empresa Trabalha-para (associação)
  33. 33. ASSOCIAÇÃO Diagrama de Classes Empregado Trabalha-para Empresa Nome Nome Cargo 1..* Diagrama de Instâncias (Objetos) :Empregado Trabalha-para :Empresa Lucas IBM Analista 1..*
  34. 34. AGREGAÇÃO É‫‏‬a‫‏‬relação‫“‏‬parte-todo”‫‏‬ou‫“‏‬uma-parte-de”. É uma forma especial de associação. É‫‏‬uma‫‏‬relação‫‏‬do‫‏‬tipo‫“‏‬todo/parte”‫‏‬ou‫“‏‬possui‫‏‬um”‫‏‬ na qual uma classe representa uma coisa grande que é composta de coisas menores.
  35. 35. AGREGAÇÃO Ex: Diagrama de Classes Microcomputador Tipo Placa-Mãe Processador RAM Marca Velocidade Capacidade
  36. 36. AGREGAÇÃO Ex: Diagrama de Instâncias (Objetos) :Micro P-IV :Placa-Mãe :CPU :RAM ASUS 1.4 Ghz 128 MB
  37. 37. AGREGAÇÃO Instituto Departamento
  38. 38. GENERALIZAÇÃO Generalização é o relacionamento que organiza Classes baseado em suas similaridades e diferenças. É a capacidade de se criar supertipos que encapsulam a estrutura e o comportamento comum a vários subtipos. Os procedimentos para se obter generalização são:  Identificar similaridades de estrutura/comportamento entre várias classes.  Criar o supertipo para encapsular a estrutura e o comportamento comum a mais de uma classe.  Os objetos originais passam a ser subtipos do novo supertipo criado.
  39. 39. ESPECIALIZAÇÃO É a capacidade de se criar subtipos que representam refinamentos nos quais a estrutura e/ou comportamento do supertipo são adicionados ou modificados.  Os procedimentos são:  Perceber que algumas classes apresentam estrutura e/ou comportamento especializado.  Criar subtipos de acordo com a especialização.
  40. 40. GENERALIZAÇÃO/ESPECIALIZAÇÃO Ex.: Pessoa matrícula nome idade mudarNome() obterIdade() Funcionário Professor promover() contratar()
  41. 41. ATENÇÃO  Pode confundir em virtude da notação G A  Generalização = é-um  Agregação = tem-um, é-parte-de

×