Diagrama de Classes - professorvida.com.br · Diagrama de Classes Semana 4 - IF62C prof. Robinson...
Transcript of Diagrama de Classes - professorvida.com.br · Diagrama de Classes Semana 4 - IF62C prof. Robinson...
Diagrama de ClassesSemana 4 - IF62C
prof. Robinson Vida ([email protected])
1Friday, February 8, 2013
Função do Diagrama de Classes
Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e métodos.
representar o relacionamento, o complemento e a transmissão de informações entre as classes que compõe o sistema.
2Friday, February 8, 2013
Acoplamento e Coesão
Acoplamento e Coesão são dois conceitos importantes no projeto das classes, componentes ou elementos que irão formar um software. !
3Friday, February 8, 2013
Coesão! Coesão é o grau que indica se as responsabilidades de uma classe formam uma unidade de significado. Ou seja, uma alta coesão é obtida pela associação em um único componente de tarefas que se relacionam de alguma maneira.
4Friday, February 8, 2013
Acoplamento ! Acoplamento, por outro lado, descreve as relações entre os componentes do software. De forma geral, é desejável reduzir a quantidade de acoplamento tanto quanto o possível. Conecções entre os componentes do software inibem a facilidade de desenvolvimento, modificação e reuso dos componentes. O acoplamento acontece quando um componente de software precisa acessar informações armazenadas em um outro componente.
5Friday, February 8, 2013
Visibilidade ou Tipos de Acessoutilizada para indicar o nível de acessibilidade de um determinado atributo ou tipo de acesso.
Ela pode ser de 4 tipos, a saber:
privada ou private ( - )
protegida ou protected ( # )
publica ou public ( + )
pacote ou package ( ~)6Friday, February 8, 2013
Visibilidade Privada ( - )
significa que apenas os objetos da classe detentora do atributo ou método poderão ter acesso de visualização ou utilização.
7Friday, February 8, 2013
Visibilidade Protegida ( # )
determina que além dos objetos da classe detentora do atributo ou método, os objetos das subclasses também poderão acessar esse atributo ou método protegido.
8Friday, February 8, 2013
Visibilidade Publica ( + )
Todo e qualquer objeto do sistema pode ter acesso ao atributo ou método declarado como público.
9Friday, February 8, 2013
Visibilidade de Pacote ( ~)
poucas linguagens implementam.
Atributos e métodos declarados com a visibilidade de pacote ( ~) poderão ser acessados por qualquer objeto pertencente ao pacote que ele estiver inserido.
10Friday, February 8, 2013
Estrutura
11Friday, February 8, 2013
Exemplo
12Friday, February 8, 2013
Exemplo
13Friday, February 8, 2013
Do diagrama para o código C++
// arquivo NomedaClasse.h #pragma once class NomedaClasse { private: int attribute1; proteced: char attribute2; public: int getAttribute1(); void setAttribute1(int); char getAttribute2(); void setAttribute2(char); }
// arquivo NomedaClasse.cpp #include “NomedaClasse.h”
int NomedaClasse::getAttribute1(){} void NomedaClasse::setAtribute1(int v){} char NomedaClasse::getAttribute2(){} void NomedaClasse::setAttribute2(char v){}
14Friday, February 8, 2013
Do diagrama para o código java
// arquivo NomedaClasse.java public class NomedaClasse { private int attribute1; proteced char attribute2; public int getAttribute1() {return 0;} public void setAttribute1(int v) {} public char getAttribute2() { return null;} public void setAttribute2 (char v) {} }
15Friday, February 8, 2013
Instâncias de Classe - Java
package exemplointerface;
public class Main {
public static void main(String[] args) { Janela j = new Janela(); j.setVisible(true); }
}
16Friday, February 8, 2013
Instâncias de Classe - C++#include <cstdlib>#include "NumeroComplexo.h"
using namespace std;
int main(int argc, char** argv) { NumeroComplexo a(9,8); // alocação estática de memória NumeroComplexo *b; // alocação dinamica de memória b = new NumeroComplexo(4,5);
a.print(); b->print();
delete b; // remoção da memoria alocada. return 0;}
17Friday, February 8, 2013
Definição da Classe - C++#ifndef NUMEROCOMPLEXO_H#define! NUMEROCOMPLEXO_H
class NumeroComplexo {public: NumeroComplexo(); NumeroComplexo(int _x,int _y); int getReal(); int getImag(); void setReal(int _v); void setImag(int _v); void print(); virtual ~NumeroComplexo();private: int real; int imag;};
#endif! /* NUMEROCOMPLEXO_H */
18Friday, February 8, 2013
Definição da Classe - C++#include "NumeroComplexo.h"#include <stdio.h>
NumeroComplexo::NumeroComplexo() {}
NumeroComplexo::NumeroComplexo(int _x,int _y) { real = _x; imag = _y;}
NumeroComplexo::~NumeroComplexo() {}
int NumeroComplexo::getImag(){return imag;}int NumeroComplexo::getReal(){return real;}void NumeroComplexo::setImag(int _v){imag = _v;}void NumeroComplexo::setReal(int _v){real = _v;}void NumeroComplexo::print(){printf("%i + j(%i) \n", real, imag);}
19Friday, February 8, 2013