O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Aula classes abstratas 3º periodo uniao

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
Carregando em…3
×

Confira estes a seguir

1 de 41 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Aula classes abstratas 3º periodo uniao (20)

Anúncio

Mais de Maria Alice Jovinski (18)

Mais recentes (20)

Anúncio

Aula classes abstratas 3º periodo uniao

  1. 1. ANÁLISE PROJETO E PROGRAMAÇÃO PARA WEB CLASSES ABSTRATAS Profª. 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 ABSTRATA FORMAGRAFICA abstract 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 PONTO class 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

×