Você está na página 1de 4

Misso Orientao a Objetos e Java

Srgio Soares sergio@dei.unicap.br http://www.dei.unicap.br/~sergio/poo Motivar, apresentar, exercitar e consolidar o uso de tcnicas de programao orientada a objeto que tenham um impacto considervel sobre qualidade de software.

Objetivos
Discutir aspectos de qualidade e modularidade de software Introduzir conceitos de POO e Java Indicar como programas em Java podem ser adequadamente escritos e estruturados Utilizar ambientes de programao em Java Desenvolver uma aplicao de mdio porte

Relevncia e Motivao
Tcnicas a serem utilizadas na prtica Desenvolver software de qualidade Java corresponde ao estado-da-arte Impacto econmico e social

Clareza versus Eficincia


Pensamento a longo prazo e elegncia, ao invs de imediatismo e resultados de qualquer jeito Software tem que ser adaptvel, flexvel, fcil de mudar (custos baixos, mudanas rpidas)

Programao Orientada a Objetos


Foco nos dados (objetos) do sistema, no nas funes Estruturao do programa baseada nos dados, no nas funes As funes mudam mais do que os dados

Objeto Vdeo
> >>> <<<
CIN

Objeto Conta Bancria


Crdito

PLAY

> 1456

Saldo

Nmero

875,32

21.342-7

Quantas funes tem um vdeo?


Dbito

Estados do Objeto Conta


Crdito(20)
Crdito

O que Java?
Java uma linguagem simples, orientada a objetos, distribuda, interpretada, robusta, segura, independente de arquitetura, portvel, de alta performance, concorrente e dinmica

Crdito

Crdito

Saldo

Saldo

Nmero

Nmero

Saldo

Nmero

875,32 21.342-7 875,32 21.342-7

895,32

21.342-7

Dbito

Dbito

Dbito

Implementaes de Java
Interpretada
Bytecodes da JVM Independente de plataforma

Alta Performance?
Java oferece alternativas, compromissos Cdigo do cliente pode ser interpretado
compiladores JIT aumentam performance cliente universal cdigo mvel, carregado pela rede, evitando instalaes, conflito entre verses, etc.

Compilada
Cdigo nativo em C ou C++

Alta performance?

Cdigo do servidor pode ser compilado para cdigo de mquina


performance similar a C++

Java Simples
Sintaxe familiar a vrios programadores (baseada em C e C++) Elimina vrias redundncias de C++ Simples para algumas aplicaes, desde que se conhea alguns pacotes Simples, dado tudo que a linguagem oferece

Java eliminou...
Ponteiros goto, struct e union Nmero varivel de argumentos Tipos fracos Criao e remoo de objetos
alocar e liberar memria explicitamente

Classes parametrizadas!

Java Orientada a Objetos


Objetos e Classes Encapsulamento de dados e operaes Subtipos e Herana Polimorfismo Ligaes dinmicas (dynamic binding) Criao e remoo dinmica de objetos
alocao e liberao automtica de memria

Java Portvel
Em tese, reduo de custos com migrao, instalao, treinamento, etc. Na prtica, ainda necessrio depurar programas antes de migrar para outra plataforma (awt) Mas toda a arquitetura est pronta (swing)

Java Distribuda
Oferece suporte de alto nvel para acesso a Internet/WWW (pacote java.net) Objetos distribudos com RMI e CORBA Suporte para acesso a arquivos remotos, banco de dados, etc.

Java Robusta
Ausncia de ponteiros Fortemente tipada Coleta de lixo automtica Excees tipadas Acesso a arrays verificado Variveis so inicializadas automaticamente
com exceo de variveis locais de mtodos que devem ser inicializadas explicitamente

Java Concorrente
Essencial para implementar interfaces grficas decentemente Mtodos sincronizados Monitores

Java: linguagem e ambiente


Acesso a Internet e WWW (java.net) Applets (java.applet) Definio de interfaces grficas (java.awt) Suporte a objetos distribudos (java.rmi) Interface com Banco de Dados (java.sql) Bsicos: threads e excees (java.lang), arquivos (java.io), utilitrios de propsito geral (java.util)

Referncias
Java: how to program, Harvey Deitel e Paul Deitel, segunda edio, Prentice Hall, 1998. James Gosling, Bill Joy, and Guy Steele. The Java Language Specification, July 1996. http://www.dei.unicap.br/~sergio/poo Site de Java da SUN, http://java.sun.com/

Avaliao
Exame Escrito
70% da mdia final

Projeto
30% da mdia final
10% das verses 1 e 2 20% da verso 3

a pontualidade na entrega das etapas do projeto um fator de avaliao


10% de penalidade por aula de atraso

Exerccio
Acessar a pgina http://www.dei.unicap.br/~sergio/poo
cronograma notas de aula avaliao

Enviar para sergio@dei.unicap.br os grupos (nome e email) at a prxima aula


4 ou 5 integrantes por grupo nome e email dos integrantes