Beruflich Dokumente
Kultur Dokumente
Atributos referência:
–Funcionario: nomeFuncionario (instância de uma Pessoa)
Métodos
• Funcionario:
recebeSalario (parâmetro: quantia a receber)
horasTrabalhadas (retorna : o numero de horas a trabalhar)
numFalta (retorna: numero de faltas)
• Pessoa:
numTelf (retorna: número de telefone)
numBI (retorna: número do Bilhete de Identidade)
2.2. Definição de método
Um método é uma sequência de acções, executada por um objecto, que pode alterar ou dar a
conhecer o seu estado (valor dos atributos).
Enquanto o valor dos atributos reside no objecto, o método reside na classe.
Assinatura dum método:
identificador do método;
identificador e tipo dos parâmetros;
valor de retorno.
Os métodos são catalogados em:
– Construtor: executado na criação do objecto.
• Têm usualmente o mesmo identificador da classe.
• Nunca devolvem tipos.
• Não podem ser chamados.
• Normalmente usados para inicializar os atributos.
2.2. Definição de método
– Destrutor: executado na destruição do objecto.
– Modificador: altera valor dos atributos.
– Selector: dá a conhecer o valor dos atributos, sem os alterar.
3.0 Classes
• Representada por um rectângulo, dividido em 3 zonas:
– Identificador da classe Funcionario
– Atributos # nomeFuncionario: Pessoa
– Métodos # salario: float = 0
+ recebe ( salario: float)
+ horaTrabalho (horas: int)
+ falta (falta: int)
mc: Funcionario
nomeFuncionario: “Paulo
Makiesse”
salario = 100000
5.0 Atributos
Sintaxe
VisibIdent: Tipo[=Init] Funcionario
• Visib: visibilidade # nomeFuncionario: Pessoa
• Ident: identificador do atributo # salario: float = 0
• Tipo: tipos de dados podem ser: + recebe ( salario: float)
– primitivos (boolean, int, char, float,…)
+ horaTrabalho (horas: int)
– referências a outros objectos
+ falta (falta: int)
• Init: inicialização
6.0 Atributos
Sintaxe
VisibIdent ([id:TipoParam[, id:TipoParam]*]) [:TipoRet]
• Visib: visibilidade
• Ident: identificadordo método
• id: identificadorde parâmetro •TipoParam: tipodo parâmetro
• TipoRet: tipode retorn
Funcionario
# nomeFuncionario: Pessoa
# salario: float = 0
+ recebe ( salario: float)
+ horaTrabalho (horas: int)
+ falta (falta: int)
7.0. Visibilidade de atributos e métodos
Visibilidade de atributos e métodos representada por um caractere antes do identificador, que
determina as permissões de acesso:
–public: acessível fora da classe (+)
–private: acessível apenas na classe (-)
–protected: acessível na classe e suas subclasses (#)
–package: acessível nas classes do mesmo pacote (~)
8.0. Atributos e métodos da classe
Definição:
Atributos e métodos podem ser de:
– instância: um para cada instância da classe
– classe: um para todas as instâncias da classe
UML:
Representados com sublinhado no diagrama de classe Funcionario
- numProxFuncionario: integer
# nomeFuncionario: Pessoa
# salario: float = 0
# incNumProxFuncionario ( )
+ recebe ( salario: float)
+ horaTrabalho (horas: int)
+ falta (falta: int)
9.0.Relações
Definição:
• Os objectos não vivem isoladose nos programas são estabelecidas relações de cooperação.
• Uma relação é uma conexão entre elementos. Existem diferentes tipos de relações:
– Associação: relaciona objectos entre si;
– Composição/Agregação: relação que denota o todo constítuido por partes;
– Herança: mecanismode generalização – especialização de classes;
– Realização: uma classe implementa a funcionalidade definida numa interface.
• Uma associação representa uma referência entre objectos.
• Numa associação são definidos:
– Identificador – termo descritivo da associação.
– Papeis(role) representados pela associação em cada umad as classes relacionadas.
– Multiplicidade – número de objectos associados em cada instância da associação.
9.0.Relações
• O identificador e os papeis são opcionais.
• As associações podem ser de multiplicidade diversa:
– exactamenteum (1).
– zero ouum (0..1).
– zero oumais(0..*).
– um ou mais(1..*).
– são permitidas multiplicidades mais complexas, por exemplo, 0..1, 3..4, 6..*, para dizer qualquer
número excepto 2 e 5.
9.0.Relações
• A associação é representada por uma linha entre as classes associadas.
• O identificador daa ssociação aparece sobre a associação.
• Os papéis de cada classe na associação aparecem nos respectivos extremos da associação.
• A multiplicidade da associação aparece igualmente nos extremos.
1…* Emprego 1
Pessoa Empresa
Funcionario Empregador
• As associações podem ser dirigidas, e nesse caso são representadas por uma seta.
• A direcção das associações está relacionada com aspectos de implementação.
Reside
Pessoa Endereco
9.0.Relações
• As associaçõespodem, elas próprias, transportar informação, sendo nesse caso a classe de
associação ligada a tracejado à associação.
• O identificador da associação passa a ser o nome da classe de associação.
1…* 1
Pessoa Empresa
Funcionario Empregador
Emprego
# nomeFuncionario: Pessoa
# salario: float = 0
• Poromissão, a associação é:
– bi-direccional;
– de um paraum;
– não possui informação extra.
9.0.Relações
Associações ternárias representadas por um diamante não preenchido que liga as diferentes
linhas das classes associadas.
Quantidade
0…* 0 …*
item Empresa
produto vendedor
itemCatalogoCompras
# preco: float
9.0.Relações
• A agregação é uma associação, que denota uma relação do todo ser formado por partes.
• A agregação é dita como sendo uma relação de “has-a”.
• Representada como uma associação com um pequeno diamante não preenchido no extremo
relativo ao todo
Departamento Empresa
Departamento Empresa
• De uma maneira geral tanto a agregação como a composição não têm identificador, pois o
significado destas relações está representada pelo próprio par todo-partes.
• A multiplicidade deve aparecer em ambos os extremos. Quando a multiplicidade é omitida,
considera-se que é exactamente 1.
10.0.Flexibilidade
• As relações de associação, agregação e composição podem ser reflexivas, com um elemento
composto por vários sub-elementos iguais
1
*
Empresa Departamento
*
0…1
Referências Bibliográficas
1. Java: como programar. DEITEL, Paul / DEITEL, Harvey; tradução Edson
Furmankiewicz; revisão técnica Fábio Lucchini. -- São Paulo: Pearson Education do
Brasil, 2017. Título original: Java: How to program 10. ed. norte-americana.
2. …/LEEC@IS/UML-07.pdf, acesso 09/10/2019