41
ANÁLISE PROJETO E PROGRAMAÇÃO PARA WEB Profª. Maria Alice Jovinski CLASSES ABSTRATAS

Aula classes abstratas 3º periodo uniao

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Aula classes abstratas  3º periodo uniao

ANÁLISE PROJETO E

PROGRAMAÇÃO PARA WEB

Profª. Maria Alice Jovinski

CLASSES ABSTRATAS

Page 2: Aula classes abstratas  3º periodo uniao

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]

Page 3: Aula classes abstratas  3º periodo uniao

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.

Page 4: Aula classes abstratas  3º periodo uniao

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.

Page 5: Aula classes abstratas  3º periodo uniao

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.

Page 6: Aula classes abstratas  3º periodo uniao

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.

Page 7: Aula classes abstratas  3º periodo uniao

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.

Page 8: Aula classes abstratas  3º periodo uniao

CLASSE ABSTRATA FORMAGRAFICA

Gráfica

Page 9: Aula classes abstratas  3º periodo uniao

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

}

Page 10: Aula classes abstratas  3º periodo uniao

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+")");

}

}

Page 11: Aula classes abstratas  3º periodo uniao

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);

}

}

Page 12: Aula classes abstratas  3º periodo uniao

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+")");

}

}

Page 13: Aula classes abstratas  3º periodo uniao

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();

}

}

Page 14: Aula classes abstratas  3º periodo uniao

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.

Page 15: Aula classes abstratas  3º periodo uniao

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.

Page 16: Aula classes abstratas  3º periodo uniao

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.

Page 17: Aula classes abstratas  3º periodo uniao

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

Page 18: Aula classes abstratas  3º periodo uniao

CLASSES E OBJETOS

Diagrama de Classes

Diagrama de Objetos/Instâncias

Pessoa

João:Pessoa Maria:Pessoa Ana

Page 19: Aula classes abstratas  3º periodo uniao

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

Page 20: Aula classes abstratas  3º periodo uniao

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.

Page 21: Aula classes abstratas  3º periodo uniao

ATRIBUTOS

Diagrama de Classes/Objetos

Pessoa

Nome: String

Idade: Inteiro

:Pessoa

Nome=João

Idade= 28

:Pessoa

Maria

25

Represente a

visibilidade

desses

atributos.

Page 22: Aula classes abstratas  3º periodo uniao

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

Page 23: Aula classes abstratas  3º periodo uniao

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.

Page 24: Aula classes abstratas  3º periodo uniao

OPERAÇÕES E MÉTODOS

Diagrama de Classes

Pessoa

-Nome: String

-Idade: Inteiro

mudarNome()

obterIdade()

Supondo que o

obterIdade() seja usado

somente por um objeto

desta classe, qual deve

ser o símbolo de

visibilidade para este

método?

Page 25: Aula classes abstratas  3º periodo uniao

RELACIONAMENTOS

Associação

Agregação

Composição

Generalização

Especialização

Page 26: Aula classes abstratas  3º periodo uniao

ASSOCIAÇÕES

É uma relação que descreve um conjunto de

vínculos entre elementos de modelo

Podem ser reflexivas, binárias, ternárias, etc.

Page 27: Aula classes abstratas  3º periodo uniao

ASSOCIAÇÕES

Diagrama de Classes

Diagrama de Objetos

País

Nome

Cidade

Nome

Tem-capital

:País

Brasil

:CidadeTem-capital

Brasília

Page 28: Aula classes abstratas  3º periodo uniao

ASSOCIAÇÕES BINÁRIAS

Quando há duas classes envolvidas na associação

de forma direta de uma para a outra (mutualismo)

Empregado EmpresaTrabalha-para

Page 29: Aula classes abstratas  3º periodo uniao

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.

Carrose-move-sobre

Roda

4

Page 30: Aula classes abstratas  3º periodo uniao

MULTIPLICIDADE DE ASSOCIAÇÃO

Mais exemplos....

Trabalha-paraEmpresaEmpregado

0..*

console

JanelaWorkstation 0..1

Page 31: Aula classes abstratas  3º periodo uniao

MULTIPLICIDADE - UML

Exatamente 1

Muitos (zero ou mais)

Opcional (zero ou um)

Um ou mais

Numericamente Especificado (exatamente 4)

Numericamente Especificado (2,4,5,6 ou 7)

0..*

0..1

1..*

4

2,4..7

Page 32: Aula classes abstratas  3º periodo uniao

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);

EmpresaPessoa

Trabalha-para

(associação)

Empregado Empregador

Page 33: Aula classes abstratas  3º periodo uniao

ASSOCIAÇÃO

Diagrama de Classes

Diagrama de Instâncias (Objetos)

EmpresaTrabalha-paraEmpregado

Nome

Cargo 1..*

:EmpresaTrabalha-para:Empregado

Lucas

Analista 1..*IBM

Nome

Page 34: Aula classes abstratas  3º periodo uniao

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.

Page 35: Aula classes abstratas  3º periodo uniao

AGREGAÇÃO

Ex: Diagrama de Classes

Placa-Mãe Processador RAM

Microcomputador

Tipo

Velocidade CapacidadeMarca

Page 36: Aula classes abstratas  3º periodo uniao

AGREGAÇÃO

Ex: Diagrama de Instâncias (Objetos)

:Placa-Mãe :CPU :RAM

:Micro

P-IV

ASUS 1.4 Ghz 128 MB

Page 37: Aula classes abstratas  3º periodo uniao

AGREGAÇÃO

Departamento

Instituto

Page 38: Aula classes abstratas  3º periodo uniao

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.

Page 39: Aula classes abstratas  3º periodo uniao

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.

Page 40: Aula classes abstratas  3º periodo uniao

GENERALIZAÇÃO/ESPECIALIZAÇÃO

Ex.:

Funcionário

promover()

Pessoamatrícula

nome

idade

mudarNome()

obterIdade()

Professor

contratar()

Page 41: Aula classes abstratas  3º periodo uniao

ATENÇÃO

Pode confundir em virtude da notação

Generalização = é-um

Agregação = tem-um, é-parte-de

G A