desenvolvimento de sistemas orientados a objetos
DESCRIPTION
Desenvolvimento de Sistemas Orientados a Objetos. METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala e-mail: [email protected]. Objetivos. Fixar os diversos aspectos da orientação a objetos via exemplos; Introduzir os conceitos de: - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/1.jpg)
Desenvolvimento de Sistemas Orientados a Objetos
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS
Prof. Dr. rer. nat. Daniel D. Abdalae-mail: [email protected]
![Page 2: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/2.jpg)
2
Objetivos
• Fixar os diversos aspectos da orientação a objetos via exemplos;
• Introduzir os conceitos de:– Modificadores de acesso;– Métodos de acesso;– Classes abstratas.
• Exercitar os tópicos visto em aula via o exemplo Geometrix.
![Page 3: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/3.jpg)
Revisando OO
• Objetos x Classes x Instâncias • Objetos– Estado– Funcionalidades– Identificação Única
• Objetos interagem via troca de mensagens• Mensagens x Métodos (public x private)• Especialização x Agregação
![Page 4: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/4.jpg)
Ambiente de Desenvolvimento
• IDE – Integrated Development Environment• NetBeans– http://netbeans.org/features/web/java-ee_pt_BR.html
• Eclipse– http://www.eclipse.org/downloads/
![Page 5: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/5.jpg)
IDE - Eclipse
![Page 6: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/6.jpg)
IDE - NetBeans
![Page 7: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/7.jpg)
Classes Abstratas
• Definem uma interface (conjunto de métodos) que devem ser definidos por todas as classes que especializem esta classe
![Page 8: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/8.jpg)
Classes Abstratas////////////////////////////////////////////////////FiguraGeometrica////Desc: Define uma interface unificada que todos // os objetos filhos devem implementar//////////////////////////////////////////////////public abstract class FiguraGeometrica extends
Object{public abstract void printIt();public abstract void drawIt();
}
![Page 9: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/9.jpg)
////////////////////////////////////////////////////Ponto////Desc: Implementa o objeto ponto em 3 dimensões //////////////////////////////////////////////////public class Ponto extends FiguraGeometrica{ //atributos private double x; private double y; private double z; //construtor public Ponto(){ x = 0; y = 0;z = 0; } //construtor public Ponto(double nx, double ny, double nz){ x = nx; y = ny;z = nz; }
![Page 10: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/10.jpg)
//interface especifica do objeto public void movePara(double nx, double ny, double nz){ x = x + nx; y = y + ny; z = z + nz; } public double distancia(Ponto p){ double distX = p.getx() - x; double distY = p.gety() - y; double distZ = p.getz() - z; return Math.sqrt(distX*distX + distY*distY); } //metodos de acesso public void setponto(int nx, int ny, int nz){ x = nx; y = ny; z = nz; } public double getx(){ return x; }
![Page 11: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/11.jpg)
public double gety(){ return y; } public double getz(){ return z; } //implementação da interface abstrata public void printIt(){ System.out.print(x); System.out.print(y); System.out.print(z); System.out.print("\n"); } public void drawIt(){ //TODO: decidir em que ambiente o ponto deve ser
desenhado }}
![Page 12: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/12.jpg)
////////////////////////////////////////////////////Retangulo////////////////////////////////////////////////////public class Retangulo extends Object{ private Ponto p1; private Ponto p2;
public Retangulo(Ponto np1, Ponto np2){ p1 = np1; p2 = np2; }
public void printIt(){ } public void drawIt(){ }
public double area(){ double a = p2.getx() - p1.getx(); double b = p2.gety() - p1.gety(); return a * b;}}
![Page 13: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/13.jpg)
Exercício
• Crie classes para representar:– Elipses – Círculos– Quadrados– Polígonos
• Liste os métodos e atributos que devem estar contidos em cada um dos objetos antes de definir as classes;
![Page 14: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/14.jpg)
Exemplo da Aula - Calculadora
![Page 15: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/15.jpg)
Projeto Calculadora
• Projeto pequeno, nem todos os diagramas serão necessários:– Documento de escopo– Documentos de descrição do projeto– Levantamento de Requisitos– Levantamento de Objetos– Modelagem– Programação
![Page 16: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/16.jpg)
EscopoUma empresa que cria programas para supermercados deseja adicionar a seu
sistema já existente uma calculadora para cálculos simples. O programa deve ser criado embora já existam calculadoras em computador porque o sistema roda em hardware dedicado sem acesso direto ao sistema operacional.
O programa calculadora deve permitir a entrada de números de até oito dígitos. O cálculo resultante deve ter no máximo nove dígitos. O programa deve aceitar tanto entrada de dados via teclado quanto via cliques de mouse. Para as operações binárias, um dos operandos é assumido como o número existente no display no momento em que os sinais +, - , * ou / são selecionados. Após a seleção de uma operação, o segundo número será assumido como o número no display no momento em que se preciona o sinal =, +, -, * ou /. A seleção de “CE” ou “C” devem limpar ambos os operandos. Para os operadores unários, %, 1/x ou √, operador único deve ser assumido como sendo o número atual no display. Todos os cálculos efetuados na calculadora devem ser salvos em um Log para que os mesmos possam ser auditados posteriormente.
![Page 17: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/17.jpg)
Definição de requisitos via Interface
• O display deve ser limpo• Opera apenas com o número no display• Requer que um segundo número seja
informado• Requer que o cálculo binário seja efetuado
![Page 18: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/18.jpg)
Estados do Objeto Calculadora
Display vazio
+, - , *, /
=, +, - , *, /
Primeiro n. sendo digitado
Buffer 1Definido
Primeiro n. sendo digitado
Mostra resultado
C, CE
C, CE
C, CE
%, 1/x, √
![Page 19: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/19.jpg)
Atributos do Objeto Calculadora
• Display• Buffer1• Buffer2• Memória• Log
![Page 20: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/20.jpg)
Mensagens do Objeto Calculadora
• checaOperandoValido• calculaMais• calculaMenos• calculaVezes• calculaDivisao• calculaPercentagem• calculaRaiz• calculaInv
• salvaParaMemoria• recuperaDaMemoria
![Page 21: Desenvolvimento de Sistemas Orientados a Objetos](https://reader035.vdocuments.site/reader035/viewer/2022081604/56815e60550346895dccdae2/html5/thumbnails/21.jpg)
Exercício
• Modele o Objeto Log que registrará todos os cálculos feitos na calculadora