Vous êtes sur la page 1sur 72

AULA 1

Programao III
Curso de Sistemas de
Informao
Prof. Robson Alves
prof.robson.campelo@g
mail.com

comunicaes
1.

Endereo de e-mail do professor :


prof.robson.campelo@gmail.com

2.

Frequncia de consulta:
Todos os alunos devem sempre consultar os canais de
comunicao (site, e-mails, etc);
Pelo menos 1 vez ao dia;

3.

Externo e de apoio:
Informar ao professor o endereo de e-mail da
lista/grupo da turma. Seno, indicar algum para criar
o grupo/lista e inform-lo;

Programao III

Expectativa da Disciplina
O que a turma espera da disciplina?
Com base no que foi visto em
Programao II, qual o perfil da
turma em Java?

Algumas perguntas para


sondagem...
1. O que a JVM (Mquina Virtual Java)?
2. Que definio podemos dar de uma
classe?
3. E de um objeto?
4. O que instanciao?
5. Para que serve um construtor?
6. O que so membros de uma classe?
7. E quanto orientao a Objetos, qual a
diferena para o paradigma imperativo
(Ex. Pascal, C etc)?
5

Ementa da Disciplina
Estudo de uma linguagem de programao
orientada a objetos.
Implementao de classes-objeto, herana,
polimorfismo, estrutura todo-parte,
comunicao e associao.
Implementao de interface humana e de
armazenamento de dados orientados a
objetos.
Paradigmas de Linguagens de
Programao.
6

Competncias especficas
Conhecer os conceitos da Orientao a
Objetos, Aplicar os conceitos de orientao
a objeto em uma linguagem de
programao, desenvolvendo:
Senso crtico e capacidade de
contextualizao;
Capacidade de identificar, analisar e
solucionar problemas;
Trabalho em equipe.
7

Pontos Fortes da disciplina


Aprofundamento na linguagem Java
Viso geral da plataforma J2EE para
aplicaes Web em Java com Java
Server Faces
Introduo persistncia em banco
de dados com Java

Pontos Fortes de Java


uma linguagem cada vez mais
presente no mercado de trabalho
Portabilidade permite rodar
aplicaes em qualquer Sistema
Operacional.
Plataforma Google Android em Java
Novas e Interessantes oportunidades
para o desenvolvedor Java
9

Bibliografia Complementar
DEITEL, Paul J./DEITEL, Harvey M., Java:
Como Programar, 8 ed. Prentice-Hall,
2010
BATES, Bert, SCJP:Certificao Sun para
Programador Java Guia de Estudo,
ED. Alta Books, 2006
SIERRA, Kathy/ BATES, Bert, Use a
Cabea! Java. ED. Alta Books. 2007

10

Plano de Aula
Disponvel no portal da disciplina
Cronograma dos contedos que
sero abordados durante o semestre
letivo
Importante! Vejam os Planos de
Aulas das disciplinas

11

Contedo programtico
Unidade 1
1.
2.
3.
4.

Introduo a Orientao a Objetos


Conceitos de Orientao a Objetos
Programao Fundamental em Java
Programao J2EE

Unidade 2
1. Interfaces de usurio com Java Server
Faces
2. Projeto Web Orientado a Objetos com JSF e
Banco de Dados
12

Forma de Avaliao
1 avaliao Prova (100% da
nota)
2 avaliao Projeto (50%) e Prova
(50%)
Segunda chamada - Prova (100%
da nota)
Prova final - Prova (100% da nota)

13

Cronograma extra da
disciplina
Aulas no sbado a tarde: 15/03 e
03/05
Motivo: compensao de carga
horria dos dias 28/02 (Carnaval) e
18/04 (Semana santa)

14

Introduo a Orientao a
Objetos

Introduo a Orientao a Objetos


Orientao a Objetos:
Vivemos num mundo de objetos;
Eles podem ser categorizados, descritos,
organizados, combinados, manipulados e
criados.
A orientao a objetos prope-se criao de
software, ou seja uma abstrao que nos
permite modelar o mundo em modos que nos
ajudam a melhor entend-lo e a navegar
nele.
16

Introduo a Orientao a Objetos


O que significa a expresso:
programar
Orientado
a
Objetos?:
Significa estruturar toda a codificao de um
sistema seguindo um modelo onde todos os
elementos
so
considerados
objetos,
possuindo
atributos,
comportamento
e
relacionamento entre si.

17

Introduo a Orientao a Objetos


Breve histrico linguagens de
Programao:
FORTRAN: Primeira linguagem de alto nvel
Anos 60: Programao estruturada
1966: SIMULA- Primeira linguagem a definir
classes de objetos, como uma extenso da
linguagem ALGOL 60.
Posteriormente outras linguagens surgiram:
C++, Objetive-C, Object Pascal etc
18

Introduo a Orientao a Objetos


Linguagens Orientadas a Objetos:
C++
C#
VB.NET
Java
Object Pascal
Objective-C
Python
SuperCollider
Ruby
Smalltalk
19

Introduo a Orientao a Objetos


Linguagens com suporte a
Orientao a Objetos:
ActionScript
ColdFusion
JavaScript
PHP (a partir da verso 4.0)
Perl (a partir da verso 5.0)
Visual Basic (a partir da verso 4.0)
20

Introduo a Orientao a Objetos


Definio Clssica de Orientao
a Objetos:
Aorientao
a
objetos
(OO)
umparadigmadeanlise,projetoeprogra
maode sistemas desoftwarebaseado
na composio e interao entre diversas
unidades de software chamadas de
objetos.

21

Introduo a Orientao a Objetos


Como surgiu a ideia da Orientao a Objetos?
interessante observarmos que na linguagem
Pascal, por exemplo, temos o conceito de Registros
(Record):
TYPE registro = RECORD
num:integer;
nome:string;
saldo:real;
end;
22

Introduo a Orientao a Objetos

23

Introduo a Orientao a Objetos


Um TYPE possui o mesmo princpio de
uma classe, portanto a Orientao a
Objetos baseou-se nesse conceito
Poderemos declarar variveis de um TYPE
da mesma forma como declaramos de
uma classe:

Var Conta: Registro; (Pascal)


Registro conta; (Java)

24

Introduo a Orientao a Objetos


Ento quer dizer que podemos
programar em Pascal
Orientados a Objetos?
No
necessariamente.
Existem
limitaes na linguagem Pascal que
impedem uma abordagem mais ampla
no paradigma OO;
Entretanto,
tem-se
a
opo
da
linguagem: Object Pascal que j outro
nvel e representa uma linguagem no
25

Introduo a Orientao a Objetos


Atividade de Classe:
Se
fssemos
modelar
um
sistema
orientado a objetos para controle da sala
de aula, quais objetos poderamos
identificar?
Criem uma lista de objetos referentes aos
elementos identificados na sala de aula (2
minutos para a atividade)

26

Introduo a Orientao a Objetos


Objetos identificados:

Sala de aula
Cadeira;
Mesa;
Computador;
Data-show;
Aluno;
Professor;
Quadro;
27

Introduo a Orientao a Objetos


Para modelarmos um Sistema OO,
importante que saibamos identificar os
objetos,
seus
atributos,
comportamentos, relacionamentos etc
Por exemplo: Em nosso Sistema da Sala de
Aula, o objeto Cadeira possui os seguintes
atributos: material, cor, tipo, marca
A Sala neste momento, possui uma Coleo
de objetos do tipo Aluno
28

Introduo a Orientao a Objetos


Existe apenas uma instncia do objeto
Professor neste momento
Neste
momento,
um
Professor
est
ministrando aula para Muitos alunos, porm
Muitos alunos assistem aula de um nico
Professor (Relacionamento de 1 para N)
Tanto Professor quanto Aluno, so objetos
pertencentes a uma categoria de objeto
Pessoa, portanto, possuem caractersticas
em Comum (herana)
29

Introduo a Orientao a Objetos


A Sala de aula possui os seguintes objetos:
cadeiras, mesa, quadro e computador
(agregao um que objeto possui outros
objetos como membros independentes)
Obs: em uma composio os objetos so
membros dependentes, ou seja, no fazem
sentido fora do contexto
Ex.: Pedido e itens do pedido: Se
destruir o pedido, o itens so eliminados
junto
30

Introduo a Orientao a Objetos


Modelos orientados a objeto X
modelos estruturados
Imaginem um sistema financeiro, onde faramos
toda a administrao de uma empresa.
POO: Teramos um objeto de fornecedores, por
exemplo, onde todas as funes estariam
agrupadas no objeto e em nenhum outro lugar.
Estruturada: As rotinas e funes de
fornecedores estaria espalhada em todo o
sistema, como em contas a pagar, contas a
receber, cadastro, etc.
31

Introduo a Orientao a Objetos


Sistema Financeiro em POO:
CONTAS
A PAGAR

CLIENTE

GERENTE
FORNECE
DOR

CONTAS
A
RECEBE
R

32

Introduo a Orientao a Objetos


Sistema Financeiro em linguagem Estruturada:
VAR
opcao, indice, cliente_indice, clientes:array[1..5] of cliente;
contas:array[1..10] of conta;
procedure cadastrar_clientes(var_cli:cliente);
procedure cadastrar_fornecedor(var_for:fornecedor);
function total_documentos : integer;
BEGIN
cliente_indice:= 1;
doc_indice:= 1;
repeat
WriteLn('Menu de opcoes');
WriteLn('1 - Cadastrar Clientes');
WriteLn('2 - Cadastrar Fornecedor');
WriteLn('4 - Totalizar Contas a Pagar');
WriteLn('5 - Sair');
WriteLn('Digite sua opcao:');
ReadLn(opcao);
// //
END.
33

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Modelagem mais natural:
o A aplicao dos conceitos da orientao
a objetos na anlise de sistemas
permitir modelar a empresa ou as
reas da aplicao de uma forma que os
recursos a serem aplicados retratam
com mais facilidade o mundo real.
34

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Reuso:
o Na orientao a objetos um objeto pode
acessar e usar como se fossem seus os
mtodos e a estrutura de outro objeto.
o Se
dois
objetos
forem
bastante
semelhantes, pode-se escrever os mtodos
apenas uma vez e us-los para os dois
objetos.
35

Introduo a Orientao a Objetos

36

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Reduo no custo de manuteno
o Na programao orientada a objetos a herana
e o encapsulamento, permitem que, quando
for necessria alguma alterao, modifique-se
apenas o objeto que necessita desta alterao
o Esta
alterao
ser
propagada
automaticamente por todas as partes do
sistema que utilizam este objeto
37

Introduo a Orientao a Objetos


Exemplo:

38

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Encapsulamento
o No permite que seja feito o acesso direto
ao estado interno de um objeto, isto ,
oculta e protege as informaes dos
objetos.
o O acesso aos mesmos deve ser feito atravs
das mensagens que o objeto pode receber.
39

Introduo a Orientao a Objetos


Exemplo:

40

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Projetos mais rpidos com
qualidade:
o Em funo da caracterstica da reutilizao,
uma vez que existam bibliotecas que
ofeream
classes
com
recursos
necessrios, novos projetos utilizaro esses
componentes pr-existentes.
41

Introduo a Orientao a Objetos


Vantagens no modelo OO:
Codificao mais simples de
programas:
o A codificao de mtodos reduz a
complexidade na construo do cdigo
dos programas. Isso traz simplicidade no
momento de codificar, testar e manter o
software.
42

Conceitos de Orientao a Objetos


Objeto:
uma representao de uma entidade do
mundo real
Na modelagem de um sistema orientado a
objetos, todos os elementos importantes
so considerados objetos: Ex. Cliente,
Fornecedor, Produto, Conta, Nota Fiscal,
Conta Especial etc.

43

Conceitos de Orientao a Objetos


Todo objeto possui:
Identidade
nico e pode ser distinguido de outros
objetos

Estado
determinado pelos dados contidos no objeto

Comportamento
definido pelos servios/operaes que ele
oferece
44

Imaginemos que precisamos fazer a


modelagem de um Sistema de
Gesto Hospitalar, que tipos de
objetos podemos identificar nesse
sistema?

45

Paciente
Mdico
Material
Medicamento
Nota Atendimento
Requisio Paciente
etc
46

Como distinguir um objeto Mdico de


outros?
Geralmente pelo atributo id
(identidade)
Ex.:
Id;
Nome do mdico;
Especialidade
CRM;
47

Qual o estado de um objeto Mdico?


Informaes contidas num dado
momento
Ex.:
id= 001
Nome do mdico= Jos Almeida
Especialidade= Clnico Geral
CRM= 2548
48

Qual o comportamento de um objeto


Mdico?
So aes que o objeto pode fazer no
sistema
Ex.:
gravarMedico
atualizarDados
excluirDados
gravarRequisio
49

Atividade de Classe
Considerando um objeto Carro:
Quais atributos e identidade do
objeto podemos identificar?
Qual estado do objeto podemos
encontrar em dado momento?
Qual comportamento pode ser
identificado no objeto? (2 min para
a atividade para entregar no final
da aula)
50

Atividade de Classe
Identidade:
Id= KFU6666

Estado:
Cor= vermelho
Modelo= fusca
Marca=Volkswagen

Comportamento:
Acelerar();
Frear();
Andar();
51

Conceitos de Orientao a Objetos


Mensagens:
oUma mensagem a maneira pela qual
um objeto-emissor X dirige para um
objeto-alvo Y uma solicitao para que
o objeto Y aplique um de seus mtodos.
oO envio de uma mensagem como a
chamada tradicional a uma funo ou
procedimento
52

Conceitos de Orientao a Objetos


Exemplo:

53

Conceitos de Orientao a Objetos


Exemplo em uma classe:

54

Conceitos de Orientao a Objetos


Classe:
o modelo que descreve um objeto.
uma abstrao de um conjunto de
objetos similares do mundo real
Dizemos que um objeto uma
instncia de uma Classe

55

Conceitos de Orientao a
Objetos
Notao de Classe: Diagrama de
modelagem dos atributos e
comportamentos de uma
NomeClasse
da Classe
Pessoa

Nome
Data Nasc.
C
CPF
Acordar
Comer
Dormir

Atributos

Mtodos

56

Conceitos de Orientao a Objetos


Toda classe pode ter:
o Atributos;
o Mtodos;
o Construtores;
o Outras classes.

57

Conceitos de Orientao a Objetos


Atributos:
So propriedades ou elementos que
representam o estado de um determinado
objeto
Ex.: Cliente
o Nome;
o CPF;
o RG;
o Endereo;
o Estado Civil;
o ...
58

Conceitos de Orientao a Objetos


Declarao de Atributos:
oprivate static final int TAMANHO =
200;
oprivate int indice = 0;
oprivate String nome, cpf;

59

Conceitos de Orientao a Objetos


Atividade de Classe:
Escrevam uma classe Funcionrio com um mtodo
imprimirDocumento() que simplesmente chama:
System.out.println("Imprimindo documento");
Escrevam uma classe Gerente que possui o mtodo
imprimirDocumento(Funcionario f) tendo um
objeto do tipo funcionario como parmetro que faz
uma chamada ao mtodo contido na classe
Funcionrio.
Por fim, escrevam uma classe Teste com um mtodo
main que cria os dois objetos, chama o mtodo do
objeto Gerente passando o objeto Funcionrio como
parmetro. (3 min Entregar no final da aula)
60

Conceitos de Orientao a Objetos


Resoluo da Atividade:

61

Conceitos de Orientao a Objetos


Resoluo da Atividade:

62

Conceitos de Orientao a Objetos


Pergunta:
Que mecanismo foi estabelecido no
relacionamento entre os objetos
Funcionrio e Gerente?
R.: Troca de mensagens entre os
objetos

63

Conceitos de Orientao a
Objetos
Encapsulamento:
o resultado ou ato de ocultar os detalhes
de implementao do objeto, mtodos
(operaes
ou
comportamentos)
e
atributos (dados) dentro de uma classe.

64

Conceitos de Orientao a
Objetos
Exemplo de Encapsulamento:

65

Conceitos de Orientao a
Objetos

66

Conceitos de Orientao a
Objetos
Polimorfismo:
Etimologicamente,
formas.

quer

dizer

vrias

a capacidade de um objeto responder a


uma mensagem de uma maneira peculiar
a ele mesmo.

67

Conceitos de Orientao a
Objetos
Exemplo de Polimorfismo

68

Conceitos de Orientao a
Objetos

O polimorfismo importante para


definirmos um comportamento especfico
para um determinado objeto

Figura Geomtrica:
calcularArea()

A=
L2

A=
x
R2

A=BxH

69

Conceitos de Orientao a
Objetos
Atividade de Classe:
Escrevam uma classe Pessoa com um
mtodo imprimirDados();
Escrevam as classes PessoaFisica e
PessoaJuridica, ambas estendendo a classe
Pessoa;
Sobrescrevam o mtodo imprimirDados em
cada uma onde: em PessoaFisica imprime o
CPF e em PessoaJuridica imprime o CNPJ (3
min Entregar no final da aula)
70

Conceitos de Orientao a
Objetos
Resoluo:

71

Dvidas?

72