Você está na página 1de 121

Governador

Cid Ferreira Gomes


Vice Governador
Domingos Gomes de Aguiar Filho
Secretria da Educao
Maria Izolda Cela de Arruda Coelho
Secretrio Adjunto
Maurcio Holanda Maia
Secretrio Executivo
Antnio Idilvan de Lima Alencar
Assessora Institucional do Gabinete da Seduc
Cristiane Carvalho Holanda
Coordenadora da Educao Profissional SEDUC
Andra Arajo Rocha

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Programao Orientada Objetos /


Java

MANUAL DO (A) ALUNO (A)

Janeiro DE 2013
FORTALEZA/CEAR

Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Apresentao
No intuito de deixar claro (o) professor (a) o que esperado do aluno ao final da
disciplina, este manual prope os objetivos de aprendizagem referentes ao tema, acompanhado
do contedo da disciplina. Disponibiliza uma bibliografia para o (a) professor (a), subsidiando-o
(a) para aprofundar os debates, bem como, uma bibliografia de referncia.
Elaborado no intuito de qualificar o processo de formao, este Manual um
instrumento pedaggico que se constitui como um mediador para facilitar o processo de ensinoaprendizagem em sala de aula.
A disciplina de POO/Java faz parte do eixo de programao Java para Desktop e segue
um fio condutor iniciado pela Lgica de Programao e ser seguida pela disciplina de Banco de
Dados, e posteriormente por Laboratrio de Software.
O principal objetivo deste manual apresentar para o aluno uma alternativa para o
processo de desenvolvimento de software orientado a objetos, embora existam outros processos,
outros padres, em fim, outras alternativas que, certamente, eles iro se deparar no mundo do
trabalho. Esta experincia o far entender a importncia do processo de desenvolvimento de
software para termos produtos eficiente e eficaz.
Sendo assim, temos a apresentao da UML, na Fase I do manual, ferramenta de
documentao de projetos de software mais usada pelo mercado atualmente. Na Fase II,
descrevemos alguns itens complementares da linguagem Java que no foram abordados no
manual de Lgica de Programao, mas julgamos importantes. Em seguida temos a Fase III,
onde teremos os conceitos de Orientao a Objetos. Por fim, na Fase IV, iremos implementar um
projeto usando padro MVC e interface usando Java.swing, como a essa altura os conceitos de
banco de dados ainda no foram aprendidos, usaremos uma simulao do banco baseada em
vetores de objetos.
importante que o (a) professor (a) compreenda o propsito do mtodo do curso, e
assim, se aproprie do contedo e da metodologia proposta por meio das atividades pedaggicas,
fazendo um estudo cuidadoso deste Manual e buscando aperfeioar sua didtica para conduzir
com sucesso as atividades propostas. Assim, Esperamos contribuir com a consolidao do
compromisso e envolvimento de todos (professores e alunos) na formao desses profissionais.

Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Apostila
Sumrio da Apostila
FASE I A UML COMO FERRAMENTA DE PROGRAMAO ORIENTADA A OBJETOS ............................. 7
1 INTRODUO A SISTEMAS ........................................................................................................... 7
1.1 MODELAGEM DE SISTEMAS ............................................................................................................. 7
1.2 DADO, CONHECIMENTO E INFORMAO. ............................................................................................ 8
1.3 O QUE UM SISTEMA ..................................................................................................................... 9
1.4 COMO CONSTRUIR UM SISTEMA DE INFORMAO BASEADO EM COMPUTADOR .......................................... 10
1.5 O PAPEL DO ANALISTA DE SISTEMAS ................................................................................................ 11
1.6 FASES DO DESENVOLVIMENTO DE SISTEMAS ....................................................................................... 12
1.6.1 CONCEPO DO SISTEMA ..................................................................................................................... 12
1.6.2 ESTUDO DA VIABILIDADE ...................................................................................................................... 12
1.6.3 PROCESSO DE ANLISE......................................................................................................................... 12
1.6.4 PROJETO DO SISTEMA .......................................................................................................................... 13
1.6.5 PROJETO DETALHADO.......................................................................................................................... 13
1.6.6 IMPLEMENTAO................................................................................................................................ 13
1.6.7 IMPLANTAO E MANUTENO ............................................................................................................ 14
2 REQUISITOS ............................................................................................................................... 15
2.1 INTRODUO ............................................................................................................................. 15
2.2 LEVANTAMENTO DE REQUISITOS ..................................................................................................... 15
2.2.1 ENTREVISTA ....................................................................................................................................... 15
2.2.2 PESQUISA .......................................................................................................................................... 16
2.2.3 QUESTIONRIO................................................................................................................................... 16
2.2.4 REUNIES .......................................................................................................................................... 16
2.2.5 OBSERVAES .................................................................................................................................... 16
2.2.6 ANLISE DE REQUISITOS ....................................................................................................................... 16
3 HISTRIA E EVOLUO DA UML ................................................................................................. 18
4 DIAGRAMAS ESTRUTURAIS DA UML ........................................................................................... 19
4.1
4.2
4.3
4.4
4.5

DIAGRAMA DE CLASSE .................................................................................................................. 19


DIAGRAMA DE OBJETO ................................................................................................................. 21
DE COMPONENTES ...................................................................................................................... 21
DE IMPLANTAO ....................................................................................................................... 22
DE PACOTES .............................................................................................................................. 22
Informtica - POO/JAVA
3

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

4.6 DE ESTRUTURA ........................................................................................................................... 23


5 DIAGRAMAS COMPORTAMENTAIS DA UML................................................................................ 23
5.1
5.2
5.3
5.4

DE CASO DE USO ........................................................................................................................ 23


DIAGRAMA DE SEQUNCIA ............................................................................................................ 24
DIAGRAMA DE MQUINA DE ESTADO .............................................................................................. 25
DE ATIVIDADES........................................................................................................................... 26

6 RELACIONAMENTOS EM UML .................................................................................................... 27


6.1 RELACIONAMENTO DE DEPENDNCIA ............................................................................................... 27
6.2 RELACIONAMENTO DE ASSOCIAO ................................................................................................. 28
6.3 RELACIONAMENTO DE GENERALIZAO ............................................................................................ 29
FASE II PROGRAMAO NA LINGUAGEM JAVA .............................................................................. 31
7 VISO GERAL DAS TECNOLOGIAS JAVA ....................................................................................... 31
7.1 INTRODUO ............................................................................................................................. 31
7.2 TECNOLOGIAS JAVA ..................................................................................................................... 33
7.2.1 J2SE (STANDARD EDITION) .................................................................................................................. 33
7.2.2 J2EE (ENTERPRISE EDITION) ................................................................................................................. 33
7.2.3 J2ME (MICRO EDITION) ...................................................................................................................... 33
8 CLASSES JAVA ............................................................................................................................ 34
8.1 CLASSE STRING ........................................................................................................................... 34
8.2 CLASSE MATH ............................................................................................................................ 37
FASE III PROGRAMAO ORIENTADA A OBJETOS .......................................................................... 40
9 ORIENTAO A OBJETOS............................................................................................................ 40
9.1 INTRODUO ............................................................................................................................. 40
9.2 HISTRICO ................................................................................................................................ 41
9.3 FUNDAMENTOS DE ORIENTAO A OBJETOS...................................................................................... 42
9.3.1 UMA ANALOGIA.................................................................................................................................. 42
9.3.2 OBJETO X CLASSE X INSTNCIA .............................................................................................................. 43
9.3.3 MENSAGEM ....................................................................................................................................... 45
9.3.4 ATRIBUTO.......................................................................................................................................... 46
9.3.5 MTODO ........................................................................................................................................... 47
9.3.6 CONSTRUTORES .................................................................................................................................. 48

Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

10 ENCAPSULAMENTO.................................................................................................................. 51
10.1 O QUE ENCAPSULAMENTO? ....................................................................................................... 51
10.1.1 MODIFICADORES DE ACESSO............................................................................................................... 51
10.1.2 ACESSO PBLICO (PUBLIC) ................................................................................................................. 51
10.1.3 ACESSO PRIVADO (PRIVATE) ............................................................................................................... 51
10.1.4 ACESSO PROTEGIDO (PROTECTED) ....................................................................................................... 51
10.1.5 MTODOS GET E SET ......................................................................................................................... 51
11 HERANA................................................................................................................................. 55
11.1
11.2
11.3
11.4

O QUE HERANA? ................................................................................................................... 55


SUPERCLASSE E SUBCLASSE .......................................................................................................... 55
HERANA MLTIPLA................................................................................................................... 55
CLASSE OBJECT ......................................................................................................................... 55

12 POLIMORFISMO ....................................................................................................................... 59
12.1 O QUE POLIMORFISMO? ........................................................................................................... 59
12.2 SOBRECARGA DE MTODOS.......................................................................................................... 60
12.3 CLASSES E MTODOS ABSTRATOS ................................................................................................... 62
FASE IV PROJETO ORIENTADO A OBJETOS ..................................................................................... 64
13 CONHECENDO E ORGANIZANDO UM PROJETO NO PADRO MVC ............................................. 64
13.1 ENTENDO O PADRO MODEL-VIEW-CONTROLLER MVC .................................................................. 64
14 IMPLEMENTAO DO PROJETO ................................................................................................ 66
14.1 IDENTIFICAO DO PROJETO ........................................................................................................ 66
14.2 CRIANDO O PROJETO.................................................................................................................. 66
14.3 CRIANDO OS PACOTES MVC ........................................................................................................ 68
14.4 PACOTE MODEL ........................................................................................................................ 69
14.5 PACOTE VIEW........................................................................................................................... 72
14.5.1 TELA DE LOGIN ................................................................................................................................. 72
14.5.2 TELA DE CADASTRO DE PRODUTOS....................................................................................................... 77
14.5.3 CODIFICANDO O BOTO OK DA TELA DE LOGIN ..................................................................................... 78
14.5.4 CODIFICANDO O BOTO CADASTRAR DA TELA DE PRODUTO..................................................................... 80
14.5.5 CODIFICANDO O BOTO BUSCAR DA TELA DE PRODUTO .......................................................................... 83
14.5.6 CODIFICANDO O BOTO ALTERAR DA TELA DE PRODUTO ......................................................................... 85
14.5.7 CODIFICANDO O BOTO EXCLUIR NA TELA DE PRODUTO ......................................................................... 86
14.6 GERANDO UM ARQUIVO EXECUTVEL DO SISTEMA ............................................................................ 87

Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

15 ASSUNTOS COMPLEMENTARES ................................................................................................ 89


15.1 TRATAMENTO DE EXCEES EM JAVA ............................................................................................. 89
15.2 CONVENES DE CDIGO JAVA ..................................................................................................... 94
16 REFERNCIAS BIBLIOGRFICAS ................................................................................................. 98
17 EXERCCIOS PROPOSTOS......................................................................................................... 100

Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

FASE I A UML COMO FERRAMENTA DE PROGRAMAO ORIENTADA A OBJETOS


1 Introduo a Sistemas
1.1 Modelagem de Sistemas
Modelar :
Representar de forma grfica ou textual partes reais ou imaginrias do
sistema.
Por no papel a concepo que se tem de como funcionar o sistema
concebido.
Documentar de forma grfica ou em texto um sistema existente (engenharia
reversa).
Por que importante modelar?
Se observarmos tudo que ser construdo primeiro passa por uma fase de
modelagem, isso ocorre em todas as reas. Exemplo: um engenheiro primeiro constri
a planta de uma casa e s ento comea a construo do imvel. A planta o guiar
durante toda a construo.
Em desenvolvimento de sistema no diferente primeiro o analista deve estruturar
toda a modelagem do sistema, conversando com o usurio, colhendo informaes e
requisitos do sistema, depois ele deve desenhar o sistema para realizar esse fase ele
precisar de uma linguagem padro para desenhar o sistema, essa linguagem deve ser
conhecida por todos da rea, pois assim qualquer pessoa que trabalhe com
desenvolvimento de sistemas pode dar andamento ao projeto. A ltima fase da
modelagem a aprovao do projeto, aps isso passamos para etapa de construo
do software. Note que assim como a planta da casa para o engenheiro o guiar durante
toda a construo do imvel, para a equipe que desenvolve o software a modelagem
do sistema ser importante em todas as fases de desenvolvimento.
Inicialmente, vamos definir alguns conceitos bsicos para posteriormente
assimilarmos o contedo de Anlise de sistemas.
O que dado?
Dados so itens referentes a uma descrio primria de objetos, eventos,
atividades e transaes que so gravados, classificados e armazenados, mas no
chegam a ser organizados de forma a transmitir algum significado especfico (Turban,
McLean e Wetherbe, 004, pg. 63).
O que uma informao?
Informao todo conjunto de dados organizados de forma a terem sentido e
valor para seu destinatrio. Este interpreta o significado, tira concluses e faz dedues
a partir deles. Os dados processados por um programa aplicativo tm uso mais
especfico e maior valor agregado do que aqueles simplesmente recuperados de um
Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

banco de dados. Esse aplicativo pode ser um sistema de gerenciamento de estoques,


um sistema de matrculas online de uma universidade, ou um sistema de Internet para
compra e venda de aes. (Turban, McLean e Wetherbe, 2004, pg. 63).
O que conhecimento?
Conhecimento consiste de dados e informaes organizados e processados para
transmitir compreenso, experincia, aprendizado acumulado e tcnica, quando se
aplicam a determinado problema ou atividade. Os dados processados para extrair
dedues crticas e para refletir experincia e percia anteriores fornecem a quem os
recebe conhecimento organizacional, de alto valor potencial. (Turban, McLean e
Wetherbe, 2004, pg. 63).

1.2 Dado, Conhecimento e Informao.


Observe nas
Conhecimento:

imagens

abaixo

distino

entre

Dados,

Informaes e

Resultado do processo cognitivo, iniciado por um


novo estmulo qualquer. Informao valiosa da
mente humana. Inclui reflexo, sntese e contexto.
Frequentemente tcito. De difcil estruturao,
captura em mquinas e transferncias.

So dados dotados de relevncia e


propsito. Requer unidade de anlise.
Exige consenso em relao ao significado
e necessria a mediao humana.

Simples observaes sobre o


estado do mundo. Facilmente
estruturado, obtido por mquina e
transfervel. Frequentemente

Figura 1 - Dado, Informao e Conhecimento


Tabela 1 - Dado, Informao e Conhecimento (1)

DADO

INFORMAO

Simples observaes
Dados dotados de
sobre o estado do mundo relevncia e propsito
Facilmente estruturado

Requer unidade de anlise

Facilmente
obtido
por Exige
consenso
em
mquinas
relao ao significado
Frequentemente
Exige necessariamente a
quantificado
mediao humana
Facilmente transfervel

Informtica - POO/JAVA

CONHECIMENTO
Informao valiosa da
mente humana. Inclui
reflexo, sntese,
contexto.
De difcil estruturao
De difcil captura em
mquinas
Frequentemente tcito
De difcil transferncia

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Exemplo

Atravs dos conceitos acima, j podemos ter uma ideia do significado de dados,
informaes e conhecimentos para um Sistema de Informao. Vamos analisar um
exemplo:
Milena aluna de uma EEEP. Assim como todos os demais, possui um boletim
com notas de diversas disciplinas. Essas notas nada mais so do que nmeros que de
alguma forma foram friamente calculados, gerados e impressos em um papel atravs
de uma programao. As notas ali contidas so nada mais do que dados.
Se analisarmos seu boletim, podemos observar que todas as suas notas so boas,
pois esto bem acima da mdia. Contextualizando esses dados, obtemos uma
informao: Milena uma tima aluna.
Indo mais alm, analisando o seu comportamento, temos que ela uma aluna
proativa em sala de aula, administra bem o seu tempo, utiliza as aulas de estudo para
de fato estudar e pratica a TESE como sua filosofia de vida. Contextualizando essas
informaes chegamos a um conhecimento sobre a pessoa de Milena.

1.3

O que um sistema

Para termos uma real compreenso do que um Sistema de Informao, faz-se


necessrio anteriormente entender o que um Sistema. Nesse sentido, vlida a
definio apontada no site Wikipdia, em junho de 2012: Sistema (do grego sietemiun)
um conjunto de elementos interconectados, de modo a formar um todo organizado.
uma definio que acontece em vrias disciplinas, como biologia, medicina,
informtica, etc. Vindo do grego o termo sistema significa combinar, ajustar,
formar um conjunto.
Segundo Chiavenato (1999) e Oliveira (2002), o sistema apresenta os seguintes
componentes:
Objetivos: a finalidade para o qual o sistema foi criado;
Entradas do Sistema: o que inicia o sistema, traz a informao para a
operao do sistema;
Processamento: fenmeno que realiza as mudanas, o mecanismo que
converte as entradas em sadas;
Sadas do Sistema: so os resultados do processamento.
Retroalimentao ou feed back do sistema: a informao gerada pelo
sistema que informa sobre o comportamento do mesmo;
Ambiente: o meio que envolve externamente o sistema.
De posse da definio podemos definir o Sistema de Informao ou simplesmente
SI, como sendo um conjunto organizado de dados, cujo elemento principal a
informao. Sua funo principal o armazenamento, tratamento e fornecimento de
informao que de forma organizada servem de apoio a funes ou processos de uma
Informtica - POO/JAVA

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

empresa, por exemplo. Um SI no necessita, necessariamente, ser computadorizado.


As fichas organizadas dos alunos em uma academia de musculao formam, por
exemplo, um sistema de informaes.
Os sistemas de Informao podem ser divididos em subsistemas e, em muitos
modelos aparecem dois deles, sendo um com processos, pessoas, documentos e
informaes, enquanto o outro apresenta os meios automatizados como, por exemplo,
as mquinas, redes de comunicao e computadores. Ao primeiro chamamos de
subsistema social e o segundo denomina-se subsistema automatizado. Do
apresentado at aqui fica fcil perceber que o Sistema de Informaes contedo
bastante amplo, j que inclui pessoas, dados, processos, programas (softwares),
maquinrios (hardware), etc.
Todos os aspectos que envolvem o Sistema possuem importncia significativa, j
que funcionam como uma verdadeira engrenagem, ou seja, uma fase depende da
outra, uma pea ajuda a outra, enfim, todos se complementam. Assim, hardware,
software, fator humano e qualidade das informaes, so igualmente vlidos para o
funcionamento com excelncia.
Tomemos por exemplo uma lanchonete que buscou implantar um Sistema de
Informao com o intuito de garantir maior agilidade no atendimento dos clientes. Para
tanto pensou em um cardpio fixo, comprou computadores eficazes e alocou cdigo de
barras nas embalagens. Aparentemente esta medidas poderiam sim agilizar o
atendimento, porm, se os colaboradores no forem capacitados para utilizar as
ferramentas, certamente ao invs de garantir maior agilidade no atendimento, pode at
mesmo causar maior embarao.
Os sistemas de informao so poderosas ferramentas e, nesta concepo
apresentam diversas aplicaes e benefcios, dentre eles podemos citar:
organizar/incrementar a produtividade; fortalecer estratgias de marketing; formatar a
qualificao dos colaboradores; estabelecer rotinas de controle de produtos (entrada e
sada preos lucros, etc.).

1.4

Como construir um Sistema de informao baseado em computador

Dizemos que um Sistema de informao baseado em computador quando ele


realiza parte - ou mesmo todas as tarefas desejadas por meio da computao. Para
que um sistema de informao obtenha sucesso na realizao de suas rotinas,
preciso que se entenda todos os processos e procedimentos relacionados tarefa a
ser executada. Ou seja, indispensvel que se tenha um convvio direto com os
problemas e solues dirias naquele contexto em que o sistema ser implantado, pois
esse conhecimento profundo o que vai dar embasamento para o desenvolvimento de
um Sistema de Informao que seja realmente eficiente.
Em posse de um objetivo, qual seja planejar e desenvolver a construo de um
Sistema de Informao eficiente para determinada situao, devemos analisar outros
fatores decisivos nesse processo. O ambiente no qual o sistema ser implantado um
deles, e pode influenciar de forma direta ou indireta no funcionamento de um sistema.
Informtica - POO/JAVA

10

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Por exemplo, poderemos obter resultados completamente diferentes ao implantar um


sistema on-line em uma cidade capital de estado, onde o acesso internet
incorporado ao cotidiano dos supostos usurios, e em uma pequena cidade do interior
onde o acesso rede ainda um privilgio restrito a poucos. Nesse caso, o fator
internet determinante para o sucesso ou insucesso do Sistema de Informao.
Outro fator que influencia de forma direta o desenvolvimento do sistema so os
chamados recursos de sistema, que so os recursos indispensveis construo de
um Sistema de Informao. So exemplos deles: dinheiro, mquinas, pessoas
capacitadas, ambiente fsico, papis, etc.
Alm dos fatores citados, outro a ser considerado a anlise dos dados relevantes
para o Sistema de Informao. Tais dados devem ser cuidadosamente examinados,
ponderados e utilizados de forma consistente, a fim de gerarem informaes que de
fato sejam teis aos usurios. Um sistema que considera a entrada de dados
inconsistentes em seu funcionamento, como data em branco ou preos com valores
nulos, certamente no chegar a uma sada interessante.
Mas, afinal, a quem compete este trabalho?

1.5

O papel do Analista de Sistemas

O profissional da Tecnologia da Informao responsvel por todo este trabalho o


Analista de Sistemas. Ele , na prtica, um solucionador de problemas e exerce uma
funo bastante complexa, que concretizar em um software todo um sistema de
informao.
Um bom analista de sistemas tem como principais caractersticas:

Conhecimento terico e prtico de computao;


Ampla viso organizacional e empresarial;
Bom senso na tomada de decises;
Bom relacionamento interpessoal para lidar com todos envolvidos no projeto;

Figura 2 - Qualidades do analista de sistemas

muito difcil criar produtos usando grupos foco. Muitas vezes, as pessoas
no sabem o que elas querem at que voc mostre a elas.
Steve Jobs
Informtica - POO/JAVA

11

Escola Estadual de Educao Profissional

1.6

Ensino Mdio Integrado a Educao Profissional

Fases do desenvolvimento de sistemas

J sabemos o que um sistema de informao, quais seus fatores principais e


quem o responsvel por desenvolv-lo. Vamos agora entender como se d todo esse
processo, desde o incio da ideia at a concluso de seus trabalhos.
Como vimos, a construo de um software um processo complexo e para que se
obtenha sucesso, seu desenvolvimento deve seguir uma exigente metodologia de
trabalho. Vejamos cada uma das fases desse processo:
1.6.1

Concepo do Sistema

uma fase de descobertas. Requer que todos os envolvidos desenvolvedores e


usurios - mantenham postura colaborativa para que os requisitos levantados sejam o
mais prximo possvel da realidade. Baseado nessas informaes, o analista de
sistemas consegue fazer um diagnstico da situao e uma previso de aes.
1.6.2

Estudo da Viabilidade

Aps a apropriao do contexto na fase anterior, feito um estudo para avaliar se


o projeto ou no vivel de ser implementado, do ponto de vista organizacional,
tecnolgico e financeiro. A deciso da continuidade ou no do projeto cabe aos
analistas e aos gestores da organizao que ser beneficiada.
Nessa fase, so analisados os seguintes questionamentos:
O sistema poder contribuir de fato para realizao dos objetivos previstos?
O sistema poder ser implementando, apesar de restries de cunho
tecnolgico, organizacional e temporais?
Existe outro modo eficiente de realizao dessas tarefas sem a necessidade
de criao desse sistema?
O sistema atual realmente pode resolver os problemas no solucionados
pelos anteriores?
possvel sua integrao a sistemas j em funcionamento?
Caso os responsveis optem pela continuidade do projeto, o mesmo ser
submetido fase seguinte. Caso contrrio, o ciclo termina aqui.
1.6.3

Processo de Anlise

Essa etapa consiste em realizar um levantamento de dados e de fatos, a fim de


entender o que realmente precisa ser feito para solucionar o problema. O contato entre
analista de sistemas e usurios deve se estreitar nesse momento, pois preciso um
entendimento detalhado e tcnico por parte do analista. Caso j exista algum sistema
em funcionamento, este o momento em que o analista se apropria de maiores
detalhes do mesmo.
Dever ser criado um modelo lgico do sistema, constitudo, entre outros, do
diagrama de fluxo de dados, dicionrio de dados e principais algoritmos.
Informtica - POO/JAVA

12

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

At o trmino dessa fase, j devem ser de conhecimento do analista os objetivos


principais do sistema em questo, quais setores da empresa sero impactados pelo
sistema, como este dever funcionar, qual ser o fluxo de dados, quais sero os
arquivos utilizados e a forma como sero atualizados, qual setor ser responsvel pela
populao do sistema, qual o prazo para que esses dados sejam processados e
apresentado algum resultado aos usurios.
1.6.4

Projeto do Sistema

Nesse momento, o analista prope solues para o problema baseado em


concluses das fases anteriores. Para cada alternativa sugerida, apresenta-se aos
gestores da organizao um diagrama de fluxo de dados, para que seja feita uma
escolha baseada em custos e benefcios. O modelo lgico foi sendo transformado em
modelo fsico.
Ao final da fase, j dever estar definido pelo analista um relatrio contendo qual
tipo de banco de dados ser adotado pelo sistema, os arquivos que sero utilizados, a
definio dos arquivos de dados e seus layouts, relatrios a serem emitidos e os tipos
de dispositivos de armazenamento de dados.
1.6.5

Projeto Detalhado

Tomada a deciso, hora de dar incio a implementao do sistema. O analista de


sistemas j sabe o que deve ser feito, tecnicamente, para dar inicio a esse processo.
Nesse momento, os relatos dos usurios ainda podem ser de grande valia para a
conduo do sistema. O analista de sistemas deve definir quais programas iro compor
o sistema, e produzir as especificaes referentes a cada um deles, especificaes
essas que sero posteriormente entregues e codificadas pelos programadores.
Exemplos de especificaes definidas nesta fase:

1.6.6

Aprimoramento do fluxo de dados da alternativa escolhida;


Identificao do banco de dados ou arquivos a serem utilizados;
Detalhamento de arquivos de dados e seus layouts;
Criao de layouts de relatrios a serem emitidos pelo sistema;
Especificao de todos os programas que iro compor o sistema;
Reviso na estimativa de custos;
Preparao da documentao inicial do sistema;
Definio dos tipos de dispositivo de armazenamento;
Elaborao de um plano de testes;

Implementao

A fase de implementao quando de fato o programa comea ser construdo na


plataforma escolhida, tendo como base as especificaes produzidas. , de todas, a
fase mais cara.

Informtica - POO/JAVA

13

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Os programas que se referem ao gerenciamento do sistema em geral devero ser


os primeiros a serem construdos, e s aps, os demais.
Inicia-se, aps a finalizao dos programas, os testes. Todo o sistema deve ser
testado exaustivamente antes de ser posto em funcionamento. Ainda nesta fase, os
erros detectados na homologao (testes) so corrigidos e testados novamente.
Uma vez sem erros, a equipe deve dedicar-se a escrever os manuais do usurio,
um tutorial contendo todas as informaes necessrias para seu funcionamento.
1.6.7

Implantao e Manuteno

Finalmente, chegamos implantao e manuteno, ltima fase da criao de um


sistema. Implantar significa colocar o sistema em fase de operao, ou seja, realizar as
instalaes necessrias para o uso do sistema no local predefinido. Uma vez
implantado, os usurios devero ser treinados a operar corretamente o sistema.
Ao ser submetido ao uso real, o sistema ainda poder apresentar alguma falha,
portando a equipe de analista e programadores ainda pode realizar ajustes.
Agora, apenas manter em pleno funcionamento, desenvolvendo pequenas
melhorias e adequaes quando necessrio.

Figura 3 - Fases do desenvolvimento de sistemas

Informtica - POO/JAVA

14

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

2 Requisitos
2.1 Introduo
Os requisitos de um sistema so os elementos que a equipe de desenvolvimento
precisa conhecer para que o software seja desenvolvido. So as necessidades que
devero ser atendidas pelo sistema de informao que ser proposto. Em posse
dessas informaes, o analista tem propriedade para propor solues, especificar e
desenvolver um sistema de informao. Segundo Sewbok, Um requisito de software
uma propriedade que deve ser implementada para resolver um problema do mundo
real.
Acontece que tomar conhecimento desses requisitos uma tarefa que, na prtica,
no to simples como parece. Muitas vezes os prprios gestores e usurios no
conseguem expressar claramente seus objetivos. Por desconhecerem os
procedimentos tcnicos que regem um Sistema de Informao, muitas vezes eles
ocultam informaes de extrema importncia, fundamentais para o planejamento da
soluo.
Nesse ponto, a atuao do analista de sistemas decisiva para o sucesso ou no
do trabalho. Dificilmente todas essas informaes iro estar reunidas em uma pessoa
s, portando o analista tem que conversar com pessoas de todos os setores que iro
utilizar o sistema, pois precisa ter uma viso de todas as funcionalidades que ir
implementar. preciso conhecer a dinmica de trabalho de cada envolvido. Por
exemplo, dificilmente o gerente de vendas de uma empresa saber com preciso como
o almoxarifado controla a sada de produtos, ou como exatamente a cozinha mantm o
controle sobre seu estoque, portando, atribuio do analista capturar esse processo
pessoalmente.

2.2

Levantamento de requisitos

Como vimos, o analista de sistemas o responsvel intermediar e identificar os


requisitos. Para isso, ele dispe de algumas tcnicas que o auxiliam a estreitar as
relaes com os usurios, visando obter dos clientes o mximo de informaes teis.
Entre as tcnicas utilizadas para este processo, podemos destacar, entre outras, as
seguintes:
2.2.1

Entrevista

uma das formas mais eficientes de se obter as informaes desejadas. No


existe uma frmula ou receita certa para a sua conduo, mas, para obter um melhor
resultado, o analista deve atuar de forma racional e metdica, com certa flexibilidade,
porm, sem improvisaes desnecessrias.
O analista deve ter manter na entrevista um clima amistoso, deixando o
entrevistado vontade. Ele deve entender que a entrevista no um julgamento, pois
se por algum motivo se sentir acanhado, poder no prezar pela veracidade das
informaes.
Informtica - POO/JAVA

15

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Outros fatores importantes em uma entrevista so: bom relacionamento


interpessoal do entrevistador, habilidade ao se comunicar e humildade.
2.2.2

Pesquisa

Embora a entrevista seja uma tcnica altamente eficaz, no deve ser a nica fonte
de levantamento de requisitos. Outra forma de se obter dados interessantes a
pesquisa. O analista poder analisar documentos e relatrios gerados em diversos
setores, alm de arquivos, e baseado neles tirar outras concluses, que podem vir a
somar com o resultado j obtido na entrevista.
2.2.3

Questionrio

Quando o sistema envolve um nmero muito grande de usurios, a aplicao de


questionrios uma boa estratgia de pesquisa. Com perguntas sucintas, objetivas e
sem dubiedade, possvel observar o padro de respostas e dele retirar pertinentes
concluses.
2.2.4

Reunies

So encontros com a participao de alguns usurios envolvidos, para discusses


em grupo. Deve ser conduzida de forma hbil pelo mediador, mantendo sempre o foco,
qual seja a discusso sobre as rotinas da organizao para uma maior percepo dos
requisitos por parte do analista.
2.2.5

Observaes

Mesmo utilizando tcnicas como entrevista ou reunio, algumas informaes


podem passar despercebidas. Observar o comportamento e o ambiente de trabalho
dos usurios pode ser uma tcnica eficaz para perceber alguma dessas informaes
que porventura no foi levada em considerao em outro momento.
2.2.6

Anlise de Requisitos

Requisitos Funcionais
Requisitos funcionais so aqueles que descrevem funcionalidades que o sistema
deve ter para atender s expectativas dos usurios. Por exemplo:
O software dever calcular a mdia de notas dos alunos;
O software dever enviar, a cada semestre, um email para os pais com o
boletim de seus filhos em anexo;
O software dever emitir relatrio de compras quinzenalmente;
O software dever alertar ao chefe do restaurante quando o estoque estiver
abaixo do estabelecido.
Requisitos No Funcionais
J os requisitos no funcionais so aqueles que descrevem as caractersticas do
sistema, como usabilidade, desempenho, confiabilidade, custo, etc. So exemplos de
requisitos no funcionais:
Informtica - POO/JAVA

16

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

O acesso s funcionalidades de gesto deve ser restrito aos diretores da


empresa;
Se o tempo de resposta ultrapassar 30 segundos, redirecionar para pgina
de erro;
O software dever ser desenvolvido para sistema operacional Linux;
O prazo de entrega do sistema ao cliente deve ser de 2 anos.
Requisitos do usurio
Requisitos de usurio so declaraes escritas, em linguagem natural, das
funcionalidades que o sistema oferece. No documento, deve constar basicamente a
descrio dos requisitos funcionais, requisitos no funcionais, devendo conter inclusive
as restries operacionais do sistema. Este material destina-se ao cliente, portanto
deve ser escrito em linguagem clara e compreensvel, alm de conter tabelas e
diagramas, visto que os usurios no possuem conhecimentos tcnicos em
desenvolvimento de sistemas.
A quem interessa:
Gerentes de clientes
Usurios finais do sistema
Engenheiros do cliente
Requisitos do sistema

Gerentes do fornecedor
Arquitetos do sistema

Consiste em um documento estruturado, que estabelece detalhes das


funcionalidades e restries do sistema. Pode ser elaborado como forma de contrato
entre o cliente e contratante.
A quem interessa:
Usurios finais do sistema
Engenheiros da organizao
cliente
Especificao de Software

Arquitetos do sistema
Desenvolvedores de software

um documento que consiste em uma minuciosa descrio do sistema, que vem a


servir como base para a implementao do mesmo. As especificaes de software so
destinadas aos prprios desenvolvedores.
A quem interessa:
Engenheiros da organizao
cliente

Informtica - POO/JAVA

Arquitetos do Sistema
Engenheiros de Software

17

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

3 Histria e evoluo da UML


A UML uma linguagem para modelagem de softwares, ela utilizada no processo
de definio do software, na anlise e estruturao de como o programa ser
implementado. Ela permite que os desenvolvedores de software possam modelar seus
programas de forma unificada, isso quer dizer que qualquer pessoa que entenda UML
poder entender a especificao de um software. O Objetivo da UML descrever o
que fazer, como fazer, quando fazer e porque deve ser feito.
Para modelar os sistemas a UML possui um conjunto de diagramas que devem ser
utilizados em combinao para obter todas as vises do sistema.
A UML utilizada para modelar sistemas escritos no padro orientado a objetos,
portanto para todas as definies existentes na orientao a objetos haver um
diagrama correspondente. Exemplo: Uma classe, um objetos, a comunicao dos
objetos e etc.
Na criao da UML esto envolvidos trs personagens: Jim Rumbaugh, Grady
Booch e, Ivar Jacobson.
Jim Rumbaugh e Grady Booch combinaram dois mtodos populares de
modelagem orientada a objeto: Booch e OMT (Object Modeling Language), mas tarde,
IvarJacobson, o criador do mtodo Objectory uniu-se aos dois para a concepo da
primeira verso da linguagem UML (Unified Modeling Language).
Em 1997 a UML foi adotada como padro pela OMG (Object Management Group).
Que uma organizao internacional que aprova padres abertos para aplicaes
orientadas a objetos.

Figura 4 - Evoluo da UML

A Figura 4 mostra a evoluo da UML. Em 1995 ocorre a unio de vrios mtodos


de modelagem como OOSE, BOOCH, OMT e outros.
I.
II.

Em 1996 surge a UML 0.9


Em 1997 surge a UML 1.0 que no mesmo ano evoluiu para a UML 1.1.
Nesse ano a OMG que uma organizao mundial de padres orientados a
objetos reconhece a UML.

Informtica - POO/JAVA

18

Escola Estadual de Educao Profissional

III.
IV.

Ensino Mdio Integrado a Educao Profissional

Em 2001 a UML passa por revises e lanado a UML 1.4


Em 2002 a UML reestruturada e da origem a UML 2.0.

A UML divide seus diagramas em Estruturais e Comportamentais, como


demonstrado pela Figura 5. No sentido horrio, a partir do Diagrama de Caso de Uso,
at o Diagrama de Interao, temos os diagramas Comportamentais. Os demais so os
Diagramas Estruturais.

Figura 5 - Estrutura de diagramas UML

Aqui vamos estudar apenas alguns diagramas, em toda a apostila voc ir


encontrar exemplos com codificao em Java e seu respectivo diagrama. Ento
muito importante que entendam os diagramas estudados e saiba reconhec-los.

Exerccios Propostos

4 Diagramas Estruturais da UML


Usados para visualizar, especificar, construir e documentar aspectos estticos de
um sistema.

4.1 Diagrama de Classe


Este diagrama fundamental e o mais utilizado na UML, serve de apoio aos
outros diagramas. O Diagrama de Classe mostra o conjunto de classes com seus
atributos e mtodos e os relacionamentos entre classes. Em todo sistema baseado na
orientao a objetos as um dos princpios fundamentais so as classes que definem o
sistema.
Uma classe deve ser desenhada com um retngulo dividido em trs partes:
Parte Superior: fica o nome da classe. Habitualmente escreve-se o nome da
classe no singular, com a 1 letra em maiscula.
Informtica - POO/JAVA

19

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Parte Central: ficam as propriedades ou atributos da classe (variveis), j


sendo identificado o tipo do atributo, do seu lado esquerdo. Para descobrir
os atributos de uma classe verifique quais as caractersticas da classe
deseja guardar daquela classe no sistema. Note que s vezes uma mesma
classe pode ter atributos diferentes dependendo do sistema. Note que
atributos so definidos ao nvel da classe, enquanto que os valores dos
atributos so definidos ao nvel do objeto.
Parte Inferior: ficam os mtodos que a classe pode realizar (aes), j sendo
definidos seu retorno e parmetros. Os mtodos so definidos ao nvel da
classe, enquanto que a invocao desses mtodos definida ao nvel do
objeto.
Veja na Figura 6 as partes da definio de uma classe.

Figura 6 - Partes do diagrama de classe

Para identificar a visibilidade de atributos e mtodos usada uma sinalizao,


chamada de modificadores de acesso, do lado esquerdo de cada elemento. Veja na
tabela abaixo (Tabela 2) a representao para os modificadores usados na linguagem
Java.
Tabela 2 - Modificadores de Acesso em Java e UML

Smbolo

Modificador de
Acesso
Default ou
Package-Private

Representao

Conhecido como package em UML, no h palavra


chave associada na linguagem Java e usado
quando no se identifica um modificador no
diagrama.
Private
Visvel somente pelos objetos criados pela classe
#
Protected
Visvel somente pelos objetos criados pela classe
ou suas subclasses
+
Public
Visvel por todos
Tambm possvel inserir um comentrio no diagrama, para isso temos um
smbolo prprio da UML, um carto com a ponta superior direita dobrada, direcionado
para o item que requer comentrio.
~

Observe no diagrama abaixo a comunicao entre trs classes do sistema


Informtica - POO/JAVA

20

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Exemplo 1:

Figura 7 - Diagrama de Classe

Exerccios Propostos

4.2 Diagrama de Objeto


O diagrama de objeto est relacionado com o diagrama de classes e,
praticamente um complemento dele. Fornece uma viso dos valores armazenados
pelos objetos de um diagrama de classe em um determinado momento da execuo do
processo do software. So muito teis para exemplificar relacionamentos complexos
entre objetos em determinado momento
Observe na imagem abaixo que o objeto da classe cliente guarda os valores
armazenados pelo objeto no momento atual da execuo.

Figura 8 - Diagrama de Objetos

4.3 De Componentes
Est associado linguagem de programao e tem por finalidade indicar os
componentes do software e seus relacionamentos.
Um componente elemento externo de software que compe programa que
estamos implementando, como um cdigo externo que reaproveitado. Esse
componente pode ser substitudo por outro componente, como, por exemplo:
executveis, bibliotecas, tabelas, pastas e documentos.
Informtica - POO/JAVA

21

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Na figura ao lado temos um exemplo


de diagrama de componente, perceba
comunicao entre componentes
executveis, bibliotecas (DLL), arquivos
XML, imagens, tabelas e arquivos de
texto. Tudo isso considerado um
componente do software.

Figura 9 - Diagrama de Componentes

4.4 De Implantao
Diagrama de Implantao usado para mostrar a organizao do hardware e a
ligao do software aos dispositivos fsicos, Como processador, impressora, memria,
disco; necessrio para que o engenheiro de software especifique a plataforma em
que o sistema executado.
O diagrama de implantao ao lado demonstra a plataforma fsica que o software
ser implantado.

Figura 10 - Diagrama de implantao

4.5 De Pacotes
Representa os pacotes que o sistema est divido, demonstrando a interao lgica
entre as partes.
Observe a comunicao entre os pacotes de parte do sistema.

Figura 11 - Diagrama de pacotes

Informtica - POO/JAVA

22

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

4.6 De Estrutura
Descreve a estrutura interna da comunicao entre classes em um dado momento
do sistema. Ou seja, muito similar ao diagrama de classes e, portanto no muito
utilizado.
O exemplo ao lado mostra como as instncias das classes autor, submisso, tema
e tipo colaboram entre si.

Figura 12 - Diagrama de estrutura

Exerccios Propostos

5 Diagramas Comportamentais da UML


Usados para visualizar, especificar, construir e documentar aspectos dinmicos de
um sistema.

5.1 De Caso de Uso


o diagrama comportamental mais utilizado na modelagem de sistemas, ele
representa uma funcionalidade do sistema. A

Tabela 3, abaixo, mostra os elementos usados em um diagrama de caso de uso.

Tabela 3 Elementos do Diagrama de Casos de Uso

Elementos

Como usar
Boneco com o
nome do ator
embaixo

Informtica - POO/JAVA

Funo
Um ator normalmente um
usurio que dispara uma ao
no sistema.
23

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Elipse com o nome Um caso de uso define uma


do caso de uso
grande funo do sistema.
embaixo

Linha direcionada

Os relacionamentos ajudam a
descrever a forma de interao
entre atores e casos de uso.

O diagrama de caso de uso ajuda a definir a sequncia de aes executadas por


um ou mais atores e pelo prprio sistema para produzir resultados para um ou mais
atores. Seu foco identificar os objetivos do usurio, em vez das funes do sistema
atravs da anlise de como o ator, de forma externa, interage com as funcionalidades
do sistema. Cada caso de uso no diagrama deve ter um documento correspondente
determinando o seu comportamento.
Para identificar os atores do diagrama o analista deve primeiro identificar as reas
da empresa que sero afetadas pelo software. Existem algumas perguntas bsicas que
podem ajudar a descobrir os atores.
1) Que rgos, empresas ou pessoas utilizaro o sistema?
2) Existem outros sistemas que iro se comunicar com o sistema que ser
construdo?
3) Algum deve ser informado de alguma ocorrncia do sistema.

5.2 Diagrama de Sequncia


Descreve a ordem temporal em que as mensagens so trocadas entre os objetos.
A funo desse diagrama estabelecer como os objetos interagem e seus
relacionamentos dentro de um contexto.
A leitura desse diagrama feito em duas dimenses: horizontal, onde esto
representados os objetos, e vertical que representa a linha do tempo. A interao entre
os objetos feita atravs de mensagens, representas atravs de linhas slidas
direcionadas, partindo o objeto solicitando para o solicitado.
Cada objeto, representado no diagrama por um retngulo contendo seu nome,
corresponde uma coluna. Cada objeto possui uma linha tracejada vertical, que indica
o seu tempo de vida.
A linha de vida de um objeto tem a funo de:

Apresentam o tempo de vida dos objetos


Pode apresentar a ativao ou a desativao dos objetos
Indicam que os objetos esto executando algo
Indica chamada de mtodo do prprio objeto
Podem representar a criao e a destruio de objetos

Informtica - POO/JAVA

24

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Exemplo Diagrama de sequncia

Figura 13 - Diagrama de sequncia

De acordo com o diagrama da Figura 14, temos o Objeto A e Objeto B. E as linhas


verticais que partem desses objetos representam o tempo, ou seja a linha de vida do
objeto. Ele demonstra os objetos participando em interaes de acordo com suas
linhas de vida e as mensagens que trocam.
Perceba que o Objeto A tem a sua linha de vida, porm, dentro da sua linha de
vida, ele tem o perodo de ativao que no incio cria o Objeto B, e em seguida envia
uma mensagem para o Objeto B, esse objeto por sua vez interpreta a mensagem de A
e lhe passa um valor de retorno. O Objeto A recebe o valor e depois destrudo.

Exerccios Propostos

5.3 Diagrama de Mquina de Estado


Procura acompanhar as mudanas sofridas por um objeto dentro de um processo
no sistema, dando nfase aos estados dos objetos e as transies entre os estados.
Costuma ser empregado para modelar os aspectos dinmicos do sistema e possui o
seu comportamento orientado por eventos, onde cada evento gera um novo estado no
diagrama.
Temos um diagrama de estado genrico, com o nico estado, representado na
Figura 15 - Diagrama de mquina de estado. Observando a imagem identificamos o estado
(como o objeto est naquele momento) representado por um retngulo com bordas
arredondadas, as transies (mudana de estado do objeto) representadas por linhas
orientadas por setas, ponto inicial (onde o objeto nasce) representado por um crculo
totalmente hachurado e o ponto final (onde o objeto morre) representado por um
crculo parcialmente hachurado.

Informtica - POO/JAVA

25

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 15 - Diagrama de mquina de estado

Na Figura 16 - Ciclo do diagrama de mquina de estado o objeto nasce, torna o usurio


ativo, em seguida o torna inativo e depois morre.

Figura 16 - Ciclo do diagrama de mquina de estado

5.4 De Atividades
Descreve os passos a serem percorridos para a concluso de uma atividade.
O diagrama de atividade da nfase as fluxo de controle de uma atividade para
outra e identifica as atividades existentes no sistema. A descrio dos elementos
diagramas de atividades encontra-se na Figura 17:

Figura 17 - Elementos diagrama de atividades

Informtica - POO/JAVA

26

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

O diagrama da Figura 18 - Diagrama de atividades inicia com o crculo hachurado e o


primeiro estado solicitao do cdigo do cliente, em seguida verifica se o cliente j
existe, nesse momento cai em uma tomada de deciso, se o cliente j existe, informa
para o usurio mostrando uma mensagem na tela e termina a atividade. Se no solicita
os dados do novo cliente, salva os dados e termina a atividade.

Figura 18 - Diagrama de atividades

Exerccios Propostos

6 Relacionamentos em UML
Em UML, os relacionamentos so conexes entre itens. Ou seja, temos
relacionamentos em vrios diagramas da UML, como relacionamento entre classes e
relacionamento entre atores e casos de uso.
Em UML existem 3 tipos de relacionamento:
Dependncia
Generalizao
Associao

6.1 Relacionamento de Dependncia


um relacionamento de utilizao, ou seja, um item dependente do outro, dessa
forma alterao de um item pode afetar o outro. Por exemplo, o relacionamento de
dependncia entre classes indica que os objetos de uma classe usam funcionalidades
dos objetos de outra classe.
Notao:
Linha tracejada com seta podendo incluir um
rtulo indicando o tipo de dependncia.

Informtica - POO/JAVA

27

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Veja o exemplo abaixo:

Figura 19 - Relacionamento de dependncia

Nesse exemplo a classe A tem um relacionamento de dependncia com a classe B


do tipo friend.

6.2 Relacionamento de Associao


um relacionamento estrutural que especifica a associao de objetos, classes e
casos de uso.
Notao: Linha slida podendo incluir:

Nome: pode ser utilizado para descrever a natureza do relacionamento. Pode-se


atribuir direo para o nome, fornecendo um tringulo de orientao que aponta a
direo como nome deve ser lido
Cardinalidade: a quantidade de objetos que podem ser conectados pela associao.
Exemplo

Figura 20 - Relacionamento de associao

Na leitura do diagrama acima dizemos que um item pode ser de nenhum ou muitos
Pedido de compra, j um pedido de compra pode ser composto de um ou muitos itens.

Exemplo 2:

Figura 21 - Direo do relacionamento

Informtica - POO/JAVA

28

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Na leitura do exemplo acima podemos dizer que cliente compra produto


Simbologia para criao de cardinalidade:

Figura 22 - Cardinalidade dos relacionamentos

6.3 Relacionamento de Generalizao


A generalizao um relacionamento de herana, ou seja, existe uma superclasse
(classe pai) e uma subclasse (classe filha).
A classe filha herda caracterstica da classe pai e pode tambm possuir suas
prprias caractersticas, dessa forma as subclasses compartilham a estrutura e
comportamento das superclasses
Generalizaes so relacionamentos -umtipo-de, ou seja, s possvel dizer que
existe um relacionamento de generalizao quando a subclasse um tipo da
superclasse.
Notao:

Linha slida com seta em branco apontando a Superclasse


Vejamos como possvel identificar se existe um relacionamento de Generalizao
entre duas classes. Imagine a classe Veiculo e avio. Ento devemos fazer a pergunta:
avio um tipo de veiculo?

Informtica - POO/JAVA

29

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Resposta: SIM, ento significa que avio uma subclasse de veiculo.

Exemplo 1:
Figura 23 - Relacionamento de herana

No exemplo acima a classe cliente a superclasse e Pessoa Fsica e Pessoa


Jurdica so suas subclasses. Note que as subclasses possuem caractersticas
prprias alm de herdar as caractersticas da sua superclasse.
A Generalizao pode ainda ser demonstrada de duas formas:

Figura 24 - Diagrama de classe com herana

Exerccios Propostos

Informtica - POO/JAVA

30

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fase II Programao na Linguagem Java


7 Viso Geral das Tecnologias Java
7.1 Introduo
Java uma linguagem complexa utilizada para montar aplicaes com acesso a
bancos de dados, em plataforma desktop, dispositivos mveis entre outras. O cdigo
Java deve ser desenvolvido, testado e depois convertido em bytecodes atravs de uma
operao de compilao. Durante a execuo de uma aplicao desenvolvia em Java,
os bytecodes so interpretados pela JVM (Java Virtual Machine), que responsvel
pela execuo dos programas Java. O Java ainda possui uma API (***), ou seja, um
conjunto de classes predefinidas e organizadas prontas para serem utilizados por todos
os programadores em Java.

Figura 25 Smbolo Java

O que uma API


Uma API uma coleo de componentes de software que j vm prontos e o
programa s precisa usar. A API do Java uma coleo imensa, de classes
reutilizveis. Temos, por exemplo, as classes das bibliotecas JAVA.AWT e
JAVA.SWING, que servem para criarmos telas grficas de apresentao para o nosso
usurio. Temos a JAVA.IO, com suas classe usadas para manipular entrada e sada de
dados. Portanto as APIs nos economizam tempo, porque podemos utilizar em nossos
programas as bibliotecas j existentes do Java.
Java Virtual Machine (JVM)
Vamos fazer uma comparao de um programa feito em outra linguagem e um feito
na linguagem Java.
Uma linguagem tradicional cria um arquivo EXE, executvel, que roda em contato
direto com o sistema operacional do computador do usurio. Assim, se o EXE foi
compilado para ser usado no Windows, ele no roda no Linux. Por isso os programas
precisam ter vrias verses, uma para Linux, uma para Windows e assim por diante.
A Mquina Virtual do Java um software que deve ser baixado e instalado no
computador do usurio para que os programas em Java rodem. Parece um problema, a
princpio, mas aqui que mora a verdadeira vantagem da linguagem Java sobre as
linguagens mais tradicionais. Ou seja, no Java, o programa roda em contato direto com
a JVM, e a JVM quem fala diretamente com o Sistema Operacional. Assim, se eu
tiver dois clientes, um com Linux e outro com Windows e tiverem em suas maquinas a
JVM (que gratuita), meu programa poder ser compilado uma nica vez, pois
funciona em qualquer sistema operacional. Dessa forma o lema da linguagem Java
Informtica - POO/JAVA

31

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Write Once, Run Everywhere, ou seja, escreva (o cdigo) uma vez, e rode em todos
os lugares.

Figura 26 Esquema de funcionamento da linguagem Java

JDK (Java Developer Kit)


O JDK um kit de desenvolvimento Java composto pela JVM e a API de clsses do
Java, ele disponvel para download gratuitamente. Com o JDK instalado o
programador tem tudo que precisa para desenvolver aplicaes Java.
Coleta automtica de lixo (Garbage Collection)
Nas linguagens de programao antiga quando no precisvamos mais de uma
varivel era preciso excluir a mesma da memria. No Java no, ele possui um coletor
de lixo que ao perceber que uma varivel no esta mais sendo utilizada ele a exclui
automaticamente da memria. Portanto no Java o programador no precisa se
preocupar em gerenciar a memria.
O que uma IDE (Integrates Development Environments)
As IDEs, so, Ambientes de Desenvolvimento Integrado. Ou seja, so programas
que nos ajudam a desenvolver os nossos programas, nele voc pode codificar suas
classes e depois compilar seu programa.
Existem IDEs muito simples, como o BlueJ, e outras bem mais complexas, como o
NetBeans e o Eclipse. No Eclipse, por exemplo, ao escrever o nome de uma classe ou
de um objeto pertencente a uma classe, disponibilizado os mtodos daquela classe
em forma de uma lista,no ponto do programador escolher.Esse recurso facilita muito a
vida do programador pois ele no tem que memorizar todos os mtodos de Java.
Essas IDEs tambm corrigem nossos erros, marcando eles com sublinhados
vermelhos, e ainda possuem assistentes de compilao que nos ajudam a gerar o
arquivo JAR sem que tenhamos que compilar o arquivo via cdigo.
Informtica - POO/JAVA

32

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 27 IDEs de desenvolvimento Java

7.2 Tecnologias Java


So suportes para desenvolvimento de aplicaes com diferentes funcionalidades
em Java. Todas se baseiam nos mesmos conceitos: bytecodes e JVM.

Figura 28 - Tecnologias Java

7.2.1

J2SE (Standard Edition)

O J2SE utilizado para fazer softwares desktop, que operam na tela do


computador normalmente. Ele consiste em codificar as classes do programa que ao ser
compilado gera um arquivo JAR que funciona como executvel da aplicao em
qualquer computador que tenha a JVM instalada.
7.2.2

J2EE (Enterprise Edition)

O J2EE utilizado para desenvolver aplicaes que rodam na Web, por exemplo
um sistema financeiro que funciona a partir de um site web. Ou seja uma forma de
criar pginas HTML que se comunicam com classes Java, formando assim a lgica da
aplicao.
7.2.3

J2ME (Micro Edition)

O J2ME serve para desenvolver aplicaes para telefones celulares, palmtops e


outros dispositivos mveis.

Exerccios Propostos

Informtica - POO/JAVA

33

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

8 Classes Java
8.1 Classe String
String um tipo de texto que corresponde unio de um conjunto de caracteres.
Em Java, uma varivel do tipo String uma instncia (objeto) da classe String. Esses
objetos possuem propriedades e mtodos diferentes.
As Strings podem ser manipuladas de vrias formas, possvel verificar seu
tamanho, retirar uma parte da String ou converte-la para um formato especifico.
A classe String em Java possui mais de 50 mtodos que simplificam a
programao com objetos Strings. Vamos estudar os principais mtodos da classe
String.
Mtodo charAt
Mtodo
charAt

Retorno
char

Parmetro
int

O mtodo charAt usado para retornar um caractere de determinada string de


acordo com um ndice especificado entre parnteses. Esse ndice refere-se posio
do caractere na string, sendo 0 (zero) o ndice do primeiro caractere, 1 o ndice do
segundo caractere e assim por diante.
Esse mtodo til quando, por exemplo, quisermos checar a existncia de um
caractere em determinada string. Veja o exemplo abaixo:

Figura 29 Exemplo de utilizao mtodo charAt

Mtodo equal
Mtodo
equal

Informtica - POO/JAVA

Retorno
boolean

Parmetro
String

34

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Retorna verdadeiro se as strings forem "exatamente" iguais.

Figura 30 Exemplo de utilizao mtodo equals

Mtodo length
Mtodo
lenth

Retorno
int

Parmetro
Sem parmetros

O mtodo length utilizado para contar a quantidade de caracteres de uma


varivel do tipo String, incluindo os espaos em branco. Esse mtodo retorna sempre
um valor do tipo inteiro.
Veja o exemplo abaixo:

Figura 31 Exemplo de utilizao mtodo length

Linha 16 A varivel tamanho esta recebendo o valor numrico que representa a


quantidade de caracteres da varivel palavra.
Linha 17 Esta sendo exibido em uma caixa do tipo Message a palavra e o seu
tamanho.
Mtodo toLowerCase e toUpperCase
Mtodo
toLowerCase/toUpperCase

Retorno
String

Parmetro
Sem Parmetros

Os mtodos toUpperCase e toLowerCase so utilizados para transformar todas


as letras de uma determinada String em maisculas ou minsculas, respectivamente.
O mtodo toUpperCase transforma todos os caracteres em maisculos e o
toLowerCase transforma em minsculos. Veja o exemplo abaixo:

Informtica - POO/JAVA

35

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 32 Exemplo mtodo toUpperCase e toLowerCase

Mtodo trim
Mtodo
trim

Retorno
String

Parmetro
Sem Parmetros

O mtodo trim remove todos os espaos em branco que aparecem no inicio e no


fim de uma determinada string, porm no so removidos os espaos existentes entre
as palavras.
Veja o exemplo abaixo:

Figura 33 Exemplo mtodo trim

Mtodo replace
Mtodo
replace

Retorno
String

Parmetro
char, char

O mtodo replace utilizado para substituio de caracteres, ou grupo de


caracteres, em uma determinada String. Para isso preciso informar quais caracteres
sero substitudos e os novos caracteres que iro substituir.
Veja o exemplo abaixo:

Figura 34 Exemplo mtodo replace

Informtica - POO/JAVA

36

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Mtodo valueOf
Mtodo
valueOf
valueOf
valueOf
valueOf

Retorno
String
String
String
String

Parmetro
double
float
int
long

O mtodo valueOf usado para converter diversos tipos de dados em strings.


Esse mtodo aceita vrios tipos de argumentos e transforma-os em String.
Veja o exemplo de cdigo abaixo:

Figura 35 Exemplo mtodo valueOf

8.2 Classe Math


A classe Math faz parte do pacote Java.lang da linguagem Java. Ela possui
diversos mtodos matemticos, todos os mtodos so estticos, isso significa que para
chamar um mtodo da classe Math basta digitar o nome da classe e em seguida o
nome do mtodo.
A classe Math define duas constantes matemticas, que o Math.PI e o Math.E
(que o valor da base de logaritmos naturais).
Vamos estudar os principais mtodos da classe Math:
Mtodo ceil e floor
Mtodo
ceil
floor

Retorno
double
double

Parmetro
double
double

O mtodo ceil tem a funo de realizar o arredondamento de um nmero do tipo


float ou double, para o seu prximo inteiro. J o mtodo floor faz o arredondamento
para o seu anterior.

Informtica - POO/JAVA

37

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Veja o exemplo abaixo:

Figura 36 Exemplo dos mtodos ceil

Figura 37 - Resultado da execuo do mtodo ceil

Mtodo max e min


Mtodo
Max
Max
Max
Max

Retorno
double
float
int
long

Parmetro
double, double
float, float
int, int
long, long

Os mtodos max e min so usados para verificar o maior e o menor valor entre
dois nmeros, que podem ser do tipo double, float, int ou long.

Figura 38 - Exemplo mtodos max e min

Mtodo sqrt
Mtodo
sqrt

Retorno
Double

Parmetro
double

O mtodo sqrt realiza o clculo da raiz quadrada de um nmero. O retorno do


tipo double.

Informtica - POO/JAVA

38

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 39 - Exemplo mtodo sqrt

Mtodo pow
Mtodo
Pow

Retorno
double

Parmetro
double, double

O mtodo pow eleva uma base uma potncia, ele precisa de dois parmetros de
entrada o primeiro a base e o segundo a potncia.
Mtodo random
Mtodo
random

Retorno
double

Parmetro
Sem Parmetros

Esse mtodo utilizado para gerar valores aleatrios. Ele sorteia valores do tipo
double entre 0.0 e 1.0. Para obtermos nmeros maiores que um pode-se multiplicar o
nmero gerado pelo mtodo por 100 e convertermos para inteiro, assim possvel ter
nmeros de 0 a 99.
String num = (int) (Math.random()*100)

Exerccios Propostos

Informtica - POO/JAVA

39

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fase III Programao Orientada a Objetos


9 Orientao a Objetos
9.1 Introduo
A orientao a objetos , sem dvida alguma, um dos mais significativos
conhecimentos daquele que quer efetivamente se aprofundar no universo da Cincia
da Computao. Para haver uma precisa compreenso do que vem a ser tal contedo,
torna-se indispensvel, antes de mais nada, conhecer aspectos como sua origem e
conceitos relacionados. Assim, neste captulo voc ter oportunidade de estudar
perspectivas que facilitaro e enriquecero seu estudo acerca do fascinante universo
da Orientao a Objetos.
Como aspecto inicial, podemos dizer que a orientao a objetos uma forma de
anlise, projeto e programao de sistemas de software, que tem por base a
composio e interao entre diversas unidades computacionais, as quais de
chamamos de objetos.
Ela surgiu com a finalidade de facilitar e garantir mais agilidade aos ento
existentes programas computacionais e viabilizar tambm um entendimento mais claro
de como se conectam, interagem e trabalham os processos computacionais.
Inicialmente, os programas eram feitos de forma sequencial, onde o fluxo tinha um
incio, meio e fim j definidos, e era processado sequencialmente at encontrar o fim do
programa, quando ele parava, simplesmente.
Com a necessidade de controlar este fluxo, surgiram os recursos da programao
estruturada, como laos e desvios condicionais. Mesmo j sendo um avano, ainda
existia o problema da repetio demasiada de cdigos. Numa tentativa de otimizar o
desenvolvimento de sistemas, a necessidade de reutilizar trechos de cdigos foi sendo
estudada cada vez mais pelos profissionais e pesquisadores da rea, passando pela
filosofia de guerra de Sun Tzu, Dividir para conquistar, que dividia os programas em
vrios programas menores.
A Programao Orientada a Objetos surgiu como um desenvolvimento natural da
programao procedural. Na verdade buscava-se dar maior agilidade, inteligncia,
clareza e funcionalidade aos sistemas, assim, tentou-se implementar ainda
melhoramentos focando a reusabilidade de cdigos, at chegar na Programao
Orientada a Objetos.
Adiante, veremos como a Programao Orientada a Objetos conquistou um
verdadeiro avano na programao de computadores, garantindo assim o
desenvolvimento de novos programas, linguagens e aes no mundo computacional.

Informtica - POO/JAVA

40

Escola Estadual de Educao Profissional

9.2

Ensino Mdio Integrado a Educao Profissional

Histrico

Historicamente a origem da Orientao a Objetos conta da dcada de 1960 na


Noruega, por meio de Kristen Nygaard e Ole-Johan Dahl, pesquisadores do Centro
Noruegus de Computao. De fato, por meio da chamada linguagem Simula 67,
deram-se os primeiros conceitos de classe e herana. Este considerado o primeiro
contedo de programao orientada ao objeto, porm, precisou de mais algum tempo
para alcanar mais destaque com a linguagem Smalltak.
Como dito, houve grande impulso para a Orientao ao Objeto com a Smalltalk,
nascida nos laboratrios da Empresa Norte Americana Xerox (Estados Unidos da
Amrica). Neste renomado laboratrio chamado Palo Alto Research Center, foi
desenvolvida pela equipe liderada por Alan Curtis Kay uma sequncia de prottipos
que resultou na linguagem Smalltalk, esta considerada uma das primeiras linguagens
computacionais orientadas a objeto e por isso apropriada para iniciantes. Diante deste
trabalho que o estudioso programador Alan Kay considerado histricamente um dos
criadores do termo Programao Orientada a Objetos.
Alan Kay, percebeu que o conceito de objetos possuia grande fora como
instrumento do conhecimento. De fato a partir deste conceito se pode fazer uma srie
de associaes da maneira como percebemos pessoas, objetos e o mundo em si. Se
prestarmos bem ateno, a programao orientada a objetos tem como filosofia bsica
simular o mundo real dentro do mundo virtual, implementando objetos para que se
comportem de forma similar realidade.
Dentro deste conceito, Alan Kay pensou em como construir um sistema de software
partindo de itens autnomos que interagissem entre si, estabelecendo os seguintes
princpios da orientao a objetos:

Qualquer coisa do mundo pode ser um objeto;


Tarefas so realizadas por objetos por meio de requisio de servios;
Cada objeto originado a partir de uma classe;
Uma classe agrupa objetos semelhantes;
Uma classe possui comportamentos associados ao objeto;
Classes so organizadas de forma hierrquica.

Neste sentido, aps coletar, elaborar e formatar conceitos de diversos campos do


saber, aliando seu conhecimento e sua experincia, Alan Kay conseguiu lanar um dos
mais utilizados e precisos instrumentos de linguagem computacional, qual seja, a
programao orientada a objetos. Vejamos algumas caractersticas desse paradigma
(2):
A orientao a objetos uma tecnologia para a produo de modelos que
especifiquem o domnio do problema de um sistema.
Quando construdos corretamente, sistemas orientados a objetos so
flexveis a mudanas, possuem estruturas bem conhecidas e provm a
oportunidade de criar e implementar componentes totalmente reutilizveis.
Informtica - POO/JAVA

41

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Modelos orientado a objetos so implementados convenientemente


utilizando uma linguagem de programao orientada a objetos. A engenharia
de software orientada a objetos muito mais que utilizar mecanismos de sua
linguagem de programao, saber utilizar da melhor forma possvel todas
as tcnicas da modelagem orientada a objetos.
A orientao a objetos no s teoria, mas uma tecnologia de eficincia e
qualidade comprovadas usada em inmeros projetos e para construo de
diferentes tipos de sistemas.
Fonte:
Apostila
Lingagem
de
Modelagem
(http://apostilando.net.br/swf/2038.swf em junho de 2012).

Unificada

Temos a seguir alguns exemplos de linguagens orientadas a objetos:

Simula
Smalltalk
C++
ADA

Eiffel
Object Pascal
Java
Common Lisp

C#
Perl
Python

9.3 Fundamentos de Orientao a Objetos


9.3.1

Uma analogia

No captulo anterior ns aprendemos que a Programao Orientada a Objetos foi


criada para que se tornasse possvel fazermos uma simulao do mundo real no nosso
computador. Dessa forma, os objetos reais sero moldados e tero suas caractersticas
e comportamentos instrudos atravs da programao, podendo interagir entre si,
atravs da troca de mensagens. Essa interao entre os objetos possibilita que uma
tarefa computacional seja realizada.
Cabe ao programador fazer uma anlise do objeto do mundo real que ser
implementado, observar suas particularidades relevantes e implement-las, definindo
quais caractersticas os objetos podem assumir, e quais aes podem executar. Mas,
como fazer isso?
Naturalmente, os seres humanos costumam agrupar coisas para entend-las. Por
exemplo, observemos o objeto Carro. Facilmente podemos concluir que existem
diversas variaes de modelo, forma, cor, tamanho, etc. Porm, mesmo assim
reconheceramos um carro como sendo um carro, por caractersticas que eles tm em
comum, como cor, modelo, fabricante, a ao de frear, de acelerar, e enfim, uma
infinidade de caractersticas similares, ainda que cada um possua suas diferenas.

Informtica - POO/JAVA

42

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fonte: http://vidadeprogramador.com.br/
Figura 40 Tirinha sobre o que Programao Orientada a Objeto

9.3.2

Objeto x Classe x Instncia

Na POO (Programao Orientada a Objetos), os objetos do mundo real so


analisados de uma forma abstrata, ou seja, as caractersticas do objeto que so
levadas em considerao so apenas as que so fundamentais para o sistema. E
aquilo que importante ser definido na classe.
Mas, o que uma classe?
uma abstrao das caractersticas relevantes de um grupo de coisas do mundo
real. A classe, em orientao a objeto, criada para definir no sistema como o objeto
vai ser criado, quais sero suas caractersticas (atributos) e suas aes (mtodos). J o
objeto o componente de software que representa o objeto do mundo real, reunindo
atributos e mtodos relacionados, e se relacionando entre si atravs de mensagens.
Uma classe pode gerar vrios objetos.
Chamamos de instncia o ato de a classe criar um novo objeto. Em outras
palavras, um objeto uma instncia de uma classe.
Vamos voltar ao nosso exemplo e refletir como podemos criar uma classe para ele:

Informtica - POO/JAVA

43

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Classe:

Figura 41 Exemplo classe Carro

Comumente os conceitos de classe e objetos so confundidos por aprendizes, mas


importante entender bem essa diferena. Uma classe no um objeto, mas ela
usada para criar um. Usamos a classe carro para definir diversos tipos de carro, como
ilustra a tabela a seguir:
Classe Carro
Atributos de Objeto

Mtodos de Objetos

Placa
Cor
Fabricante
Velocidade
Mtodo Acelerar
Mtodo Frear

Objeto Fusca
XYZ 0000
Preto
Wolks
30km/h

Objeto Opala
ZYX 9999
Vermelho
Wolks
120km/h

Observe que a classe define quais os tipos de caractersticas que o objeto vai ter, e
quando construdos, cada um adquire um conjunto novo de estados. Cada objeto
nico, mesmo que possuam dados idnticos.
Agora, vamos considerar como exemplo um estudante, sendo nosso objeto um
aluno. Para que esse objeto possa ser instanciado, precisamos definir a classe.
Fazendo uma anlise abstrata, temos de relevante que um aluno possui nome, idade,
matrcula, notas e mdia geral. Como ao, temos o ato de calcular a mdia geral das
disciplinas.Observe:
Classe:

Figura 42 - Exemplo de classe: Aluno

Informtica - POO/JAVA

44

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Mas, afinal, como escrever uma classe em cdigos? Ao definir como a classe ser
usada, temos que obedecer a estrutura a seguir:
<modificador> class <nome_da_classe> {
<atributos>
<construtor>
<mtodos>
}
Onde:
modificador: a forma como a classe ser acessada (estudaremos mais
adiante);
nome_da_classe: nome da classe, a ser definido pelo programador;
atributos: declarao dos atributos do objeto;
construtor: construtor da classe (estudaremos mais adiante);
mtodo: declarao dos mtodos da classe.
Veja como fica em Java:

Figura 43 - Criao da Classe Aluno em Java

Dicas de Programao
Pense em nomes apropriados para a sua classe. No a chame simplesmente de
classe XYZ ou qualquer outro nome aleatrio.
Os nomes de classes devem ser iniciados por letra MAISCULA.
O nome do arquivo de sua classe obrigatoriamente possui o MESMO NOME da
sua classe pblica.

9.3.3

Observao: Fonte das Dicas de Programao:


Balagtas, Florence Tiu. Projeto J.E.D.I. Students Manual.s.l..

Mensagem

Mensagens so requisies enviadas de um objeto para outro para que alguma


operao seja realizada. a forma como os objetos interagem entre si, enviam e
recebem mensagens e respostas. Eles manifestam essa interatividade atravs da
Informtica - POO/JAVA

45

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

invocao de mtodos que definem e implementam uma determinada responsabilidade


que o objeto tem.
9.3.4

Atributo

Os objetos possuem atributos, que so informaes que definem seu estado. Os


atribtos de cada objeto de uma classe tm seus prprios valores. Em uma classe,
podemos encontrar dois tipos de atributos: atributos de objeto e atributos de classe.
Atributos de objeto: cada objeto tem seus atributos, e no compartilham com
os outros.
Atributos de classe so aqueles que tm valores compartilhados por todos
os objetos da classe.
Vamos analisar nosso exemplo, a classe Aluno. Sabemos que a classe tem como
atributos de objeto o nome, a matricula, idade, as notas das disciplinas e a mdia geral
do aluno. Poderemos ter tambm um atributo que guarda a mdia de notas dos alunos
da sala, no fazendo sentido algum essa informao constar em todos os objetos.
Acrescentemos, ento, o atributo (de classe) media_turma.

Figura 44 - Exemplo classe Aluno com o atributo de classe media_turma

A seguir, a estrutura para a declarao de um atributo. Escrevemos, dentro da


classe:
<modificador> <tipo_do_atributo> <nome_do_atributo> [= <inicializao>];
Onde:

modificador: forma como o atributo ser acessado;


tipo: tipo de dado;
nome: nome escolhido pelo programador;
inicializao: valor inicial que o atributo vai receber.

Informtica - POO/JAVA

46

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Veja como fica em Java:

Figura 45 - Atributos de objeto e atributos de classe da Classe aluno

Dicas de Programao
1 Declare todos os atributos de objeto na parte superior da declarao da classe.
2 Atributos de objeto, assim como qualquer outro atributo devem iniciar com letra
MINSCULA.
3 Use o tipo de dado apropriado para cada atributo declarado.
4 Declare atributos de objetos como private de modo que somente os mtodos da
classe possam acess-los diretamente.

9.3.5

Mtodo

Os mtodos so as aes que a objeto poder realizar. a descrio, em forma de


cdigo, das operaes que um objeto executa quando recebe uma mensagem. Pode
ser chamado por qualquer outro mtodo para realizar alguma funo especfica. Por
exemplo, vamos imaginar um aparelho de som. Sua funo reproduzir msicas, mas
s a executa se receber uma ordem para isso. E essa ordem passada pelo boto de
ligar, que ao ser acionado, faz com que a msica toque. Nesse caso, teramos que
implementar um mtodo que tivesse a ao de fazer o som tocar. Perceba que um
aparelho de som possui outros botes, cada um com suas responsabilidades diversas
como parar de tocar, gravar, aumentar volume, diminuir.
Os mtodos possuem as seguintes caractersticas:
Podem retornar ou no algum valor;
Podem aceitar ou no repasse de argumentos;
Aps o encerramento de sua execuo, o fluxo de controle retorna para
quem o solicitou.
A seguir, a estrutura para a declarao de um mtodo. Escrevemos, dentro da
classe:
<modificador> <tipo_do_retorno> <nome_do_mtodo> (<argumentos>){
<instrues>
}
Informtica - POO/JAVA

47

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Onde:
modificador: como o mtodo ser acessado;
tipo_do_retorno: tipo de dado do valor que o mtodo retornar (podendo
tambm ser void);
nome_do_mtodo: nome escolhido para o mtodo;
argumentos: argumentos que sero recebidos pelo mtodo, separados por
vrgula., precedido pelo seu tipo de dado.
Veja como fica em Java:

Figura 46 - Mtodo que calcula a mdia geral do aluno

Dicas de Programao
1 Nomes de mtodos devem iniciar com letra MINSCULA.
2 Nomes de mtodos devem conter verbos.
3 Sempre faa documentao antes da declarao do mtodo. Use o estilo
javadoc para isso.

9.3.6

Construtores

O construtor de uma classe utilizado para a construo de um objeto pertencente


quela classe. Ao ser chamado, todas as inicializaes do objeto so declaradas de
forma organizada. Deve ser criado com o mesmo nome da classe, e pode ou no
receber um argumento, podendo inicializar, assim, j com algum tipo de informao
atrbuda.
Definindo um construtor:
<modificador> <nome_da_classe> (<argumento>){
<instruo>
}
Vejamos agora exemplo de construtor sem parmetros. Um objeto instanciado
atravs desse construtor ter os valores dos atributos de notas inicializados com 0.

Figura 47 Exemplo de construtor para a classe Aluno sem parmetros

Informtica - POO/JAVA

48

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Vejamos agora exemplo de construtor com parmetros. Nesse caso, ao ser


chamado, o construtor ir inicializar os atributos de nome e matrcula com os valores
dos parmetros.

Figura 48 Exemplo de construtor para a classe Aluno com parmetros

Exemplo
Considerando que voc j conhece os comandos bsicos, vamos ilustrar nossos
exemplos na linguagem de programao Java. A seguir, a implementao a classe
Aluno com definio de mtodos, atributos e objetos instanciados. Observe e
acompanhe os comentrios explicativos no cdigo.

Figura 49 Implementao da classe Aluno com atributos, mtodos e construtores

Agora, vejamos a criao de objetos (instncia) da classe Aluno na classe principal:

Figura 50 - Instncia e utilizao de mtodo da classe Aluno

Informtica - POO/JAVA

49

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Exerccios Propostos

Informtica - POO/JAVA

50

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

10 Encapsulamento
10.1 O que Encapsulamento?
Encapsulamento um princpio da programao orientada a objeto que permite
que determinados elementos de uma classe possam ser ocultados de outras classes.
Ou seja, encapsulando, conseguimos esconder dados contidos em uma classe,
podendo ser acessados apenas por intermdio de mtodos prprios.
Para que alguma funcionalidade seja utilizada, no necessrio que a forma como
ela foi implementada seja conhecida. Vamos imaginar o funcionamento de um telefone
celular. O usurio faz ligaes, recebe, usa a calculadora e o alarme sem ter
conhecimento de como aquelas funes foram desenvolvidas, mas, para que ele as
utilize, basta apenas acessar da forma correta que o aparelho atender suas
expectativas, independente de ter sido implementado de uma forma ou de outra.
10.1.1 Modificadores de Acesso

Agora j sabemos que o encapsulamento nos d a opo de esconder dados de


objetos. Mas como? Podemos definir esse acesso aos dados de trs formas: Pblico,
Protegido e Particular.
10.1.2 Acesso Pblico (Public)

No acesso pblico, os elementos da classe podero ser acessados tanto de dentro


como de fora da classe. Ou seja, qualquer objeto que interage com a classe poder
acessar seus elementos que esto pblicos.
10.1.3 Acesso Privado (Private)

J no acesso Privado, o atributo ou o mtodo s poder ser acessado


internamente, apenas na classe que o definiu.
10.1.4 Acesso Protegido (Protected)

Somente classes do mesmo pacote podem ter acesso aos atributos e mtodos no
modo protegido.
10.1.5 Mtodos Get e Set

Vimos que podemos definir a forma como os nossos dados sero acessados e
modificados por outros objetos, utilizando os modificadores de acesso. Muitas vezes o
acesso aos dados se d de forma privada (private), porm, em algumas situaes se
faz necessrio que outros objetos acessem esses dados. Devemos ter muita cautela ao
declarar esses mtodos, s devendo ser declarados em caso de real utilidade. Mas de
qual forma ele far este acesso, se o dado foi definido como privado?

Informtica - POO/JAVA

51

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Set
Utilizamos o mtodo Set para modificar o valor de um atributo. Ele necessita de um
argumento, qual seja, o novo dado a ser atribudo, devendo ser do mesmo tipo de dado
do atributo declarado.
Veja como fica em Java:

Figura 51 Implementao dos mtodos Set para atributos da classe Aluno

Agora, veja como o mtodo Set chamado na classe principal:

Figura 52 Chamada do mtodo Set na classe principal para atribuio de valores

Get
Podemos utilizar o mtodo Get para ler valores de atributos (de objeto ou de
classe). O mtodo dever retornar um valor, que a informao contida no atributo,
obviamente com o mesmo tipo de dado. Ao mtodo Get, no necessrio passarmos
nenhum argumento.

Informtica - POO/JAVA

52

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Veja como fica em Java:

Figura 53 Implementao dos mtodos Get para atributos da classe Aluno

Veja abaixo como o mtodo Get chamado na classe principal. Observe a


chamada do mtodo calculaMediaAluno() definido anteriormente.

Figura 54 - Chamada do mtodo Get na classe principal

Informtica - POO/JAVA

53

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Resultado do processamento do programa:

Figura 55 - Sada do programa

Exerccios Propostos

Informtica - POO/JAVA

54

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

11 Herana
11.1 O que herana?
Uma das grandes vantagens do uso da orientao a objetos justamente a
utilizao do conceito de herana. Com a herana o trabalho do programador pode ser
otimizado, pois proporciona uma eficiente e segura poltica de reutilizao de cdigos,
evitando assim o retrabalho.
A herana nos permite que caractersticas que so comuns a diversas classes
sejam reunidas em uma nica classe base. A partir desta, outras classes herdam suas
especificaes, e nelas apenas implementado o que lhes falta, a diferena.

11.2 Superclasse e Subclasse


Essa classe base, que rene informaes comuns a outras classes, chamada de
Superclasse. J a Subclasse uma classe mais especfica, que herda as
funcionalidades da Superclasse e ainda adiciona funcionalidades especficas que por
ventura venha a ter.
Esse conceito de Superclasses e Subclasses faz com que exista uma estrutura de
hierarquia entre as classes.

11.3 Herana mltipla


Algumas linguagens de programao suportam a herana mltipla, que permite
que uma subclasse tenha capacidade de herdar caractersticas de duas ou mais
superclasses. Assim, uma nica classe pode agrupar atributos e mtodos de vrias
classes. No o caso de Java, que no permite essa funcionalidade.

11.4 Classe Object


No Java, a classe Object a raiz principal, a classe suprema, e a partir dela todas
as outras subclasses so criadas. Ainda que voc no expresse que sua classe est
herdando de outra, o Java considera que voc est herdando de Object. Sem exceo,
todas as classes herdam de Object, de forma direta ou indireta.

Figura 56 Hierarquia entre classes

Informtica - POO/JAVA

55

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Exemplo:
Vimos o exemplo da implementao da classes Aluno. Imagine agora que
desejamos criar objetos Alunos, mas com uma particularidade: aluno de uma EEEP.
Por estar em uma Escola Profissional, o aluno, alm das notas de portugus,
matemtica e cincias, tem tambm nota de TESE, FPC e PPE. Vamos utilizar o
conceito de herana para adicionar esses dados, sem precisar repetir todas as demais
infromaes que j constam na classe Aluno. Nesse caso, criaremos a classe
AlunoEEEP, que herda funcionalidades da classe Aluno, e podemos acrescentar o que
est faltando.
Veja baixo a implementao da subclasse de Aluno, a AlunoEEEP. A primeira
coisa que devemos fazer mudar na classe Aluno o modificador de acesso de private
para protected, para que os atributos sejam visualizados tambm pela subclasse.

Figura 57 -Modifi ador de a esso prote ted para ser a essado ta

pelas su lasses

Agora vejamos a implementao da classe AlunoEEEP:

Figura 58 Implementao da subclasse AlunoEEEP, que herda da superclasse Aluno

Informtica - POO/JAVA

56

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Implementao dos mtodos SETs e GETs na classe AlunoEEEP:

Figura 59 Mtodos SETs e GETs da classe AlunoEEEP

Agora, vejamos a criao de objetos (instncia) da classe AlunoEEEP e


atribuio de valores na classe principal:

Figura 60 - Instncia de objetos e chamada do mtodo Set na classe principal para atribuio de valores

Veja a chamada dos mtodos GETs na classe principal. Observe como o


conceito de herana praticado pelo objeto da subclasse AlunoEEEP. Ele utiliza
mtodos de sua prpria classe (calculaMediaTecnicaAluno()) e herda mtodos de sua
superclasse (calculaMediaAluno()).

Informtica - POO/JAVA

57

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 61 Instncia de objetos e chamada do mtodo SET na classe principal para atribuio de valores

Resultado do processamento do programa:

Figura 62 - Sada do programa

Exerccios Propostos

Informtica - POO/JAVA

58

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

12 Polimorfismo
12.1 O que polimorfismo?
A palavra Polimorfismo vem do grego, e significa muitas formas. Em orientao a
objetos, a capacidade de uma referncia mudar de comportamento de acordo com o
objeto a que se refere. Significa que um mesmo tipo de objeto, sob certas condies,
pode se comportar de formas distintas ao receber uma mensagem. Ou seja,
dependendo do contexto da execuo, o sistema decidir qual mtodo ser executado.
Atravs do polimorfismo, a aplicao dos mtodos se d de forma automtica, de
acordo com o tipo do objeto. Por exemplo, j implementamos a superclasse Aluno e
criamos objetos aluFabricio e aluCamila. Depois, criamos uma subclasse
AlunoEEEP, para os estudades de escola profissionalizante, que herda funcionalidades
de Aluno. Dessa classe, criamos os objetos AluMilena e AluRafaela.
Na classe Aluno, criamos o mtodo calculaMediaAluno() que faz a mdia
aritmtica das notas de portugus, matemtica e cincias. J na classe AlunoEEEP,
criamos o mtodo calculaMediaTecnicaAluno(), que calcula a mdia aritmtica das
disciplinas tcnicas, quais sejam TESE, FPC e PPE.
Vamos refletir sobre a seguinte situao: no momento em que um objeto da classe
AlunoEEEP chama o mtodo calculaMediaAluno(), ele se comporta da mesma forma
como para um objeto da classe Aluno: calcula as mdias de portugus, matemtica e
cincias. Mas, e se ns quisermos que ele calcule a mtica artimtica de todas as
disciplinas, inclusive as tcnicas, como fazemos? Utilizando o polimorfismo,
conseguimos definir a forma como queremos que nosso objeto se comporte.
Analise o cdigo a seguir e observe que o mesmo mtodo calculaMediaAluno()
implementado de forma a atender as particularidades de cada uma das classes.
Mtodo calculaMediaAluno() na classe Aluno:

Figura 63 Mtodo para calcular a mdia do aluno na classe Aluno

Mtodo calculaMediaAluno() na classe AlunoEEEP:

Figura 64 - Mtodo para calcular a mdia do aluno na classe AlunoEEEP

Informtica - POO/JAVA

59

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Agora, na classe principal, vamos ver como objetos das classes Aluno e
AlunoEEEP se comportam ao chamarem o mtodo calculaMediaAluno():

Figura 65 - Cha ada do

todo

al ulaMediaAlu o

de o jetos de lasses disti tas

Observe a sada do sistema. Para os objetos da classe Aluno, o sistema calculou a


mdia aritmtica entre as disciplinas de portugus, matemtica e cincias, como
definido em Aluno. J para os objetos da classe AlunoEEEP, calculou a mdia
aritmtica das notas de portugus, matemtica, cincias, TESE, PFC e PPE.

Figura 66 Sada do programa: mdias calculadas de acordo com o tipo de objeto

12.2 Sobrecarga de mtodos


Sobrecarga de mtodos a propriedade que torna possvel a criao de mtodos
com o mesmo nome, que executam funes diferentes. Ele saber de qual maneira
dever se comportar atravs da quantidade de argumentos informada. A sobrecarga de
mtodos facilita a implementao, pois muitas vezes a mesma operao tem
implementaes diferentes para cada situao, e ao invs de criarmos nomes para
cada uma delas, podemos diferenciar apenas atravs dos argumentos enviados.
Vamos refazer o mtodo calculaMediaAluno() para que funcione de outra forma.
Agora, vamos passar as notas a serem calculadas por parmetro.
Informtica - POO/JAVA

60

Escola Estadual de Educao Profissional

Figura 67 - Mtodo

Ensino Mdio Integrado a Educao Profissional

al ulaMediaAlu o

i ple e tado o

passage

de par etro

Chamada do mtodo na classe principal:

Figura 68 - Cha a do

todo

al ulaMediaAlu o

a lasse pri ipal

A sada do sistema a mdia calculada das trs notas enviadas por parmetro:

Figura 69 - Sada do programa

Agora vamos refletir sobre a seguinte situao: em alguns momentos a mdia do


aluno de uma escola profissionalizante deve ser calculada apenas com as discilplinas
da base comum, porm em outros momentos necessrio que a nota seja calculada
tambm incluindo as disciplinas tcnicas. Usando o conceito de polimorfismo, podemos
implementar o mtodo calculaMediaAluno() na classe AlunoEEEP de forma que,
automaticamente, o programa saiba de que forma calcular: somente com as notas da
base comum, ou incluindo, tambm, as disciplinas tcnicas. Esse reconhecimento
possvel devido a quantidade de argumentos passados. Se a mdia deve ser calculada
apenas com as notas da base comum, o mtodo deve ser chamado e enviado a ele
apenas os trs argumentos. Se para ser calculada incluindo tambm as disciplinas
tcnicas, ento o mtodo chamado e a ele enviado os seis parmetros. Vejamos:

Figura 70 Implementao do mtodo calculaMediaAluno na classe AlunoEEEP, com seis parmetros

Agora, um mesmo objeto da classe AlunoEEEP chama o mtodo


calculaMediaAluno() de duas formas diferentes: uma passando trs (03) parmetros,
e outra, seis (06).

Informtica - POO/JAVA

61

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 71 Chamada do mtodo calculaMediaAluno pelo mesmo objeto

O programa retornar resultados diferentes. O conceito de polimorfismo,


sobrecarga de mtodos o que torna possvel esse reconhecimento automtico de
como o mtodo deve se comportar atravs os parmetros informados.

Figura 72 Resultados diferentes

12.3 Classes e mtodos abstratos


Uma classe abstrata uma superclasse criada apenas para representar entidades
e conceitos abstratos, e dela no so gerados objetos, ou seja, a classe abstrata no
instanciada.
Geralmente criamos uma classe com um propsito especfico, porm, a classe
abstrata tem outra funo, ela criada com a inteno de que outras classes herdem
funcionalidades delas. definida como um modelo genrico a ser utilizado pelas suas
subclasses.
A utilizao de classes abstratas nos proporciona uma reduo de cdigo e um
ganho considervel na utilizao do polimorfismo, pois com elas podemos criar
mtodos mais genricos que se adaptam a diversos tipos de objetos.
Vejamos um outro exemplo em que se aplica a utilizao de classes abstratas.
Imagine uma superclasse Pessoa e duas subclasses que herdam suas
funcionalidades, quais sejam PessoaFisica e PessoaJuridica. Quando cadastramos
um cliente, temos que defini-lo como pessoa fsica ou pessoa jurdica. Sendo assim,
podemos criar a Pessoa como sendo abstrata para herdar funcionalidades e
ganharmos polimorfismo, no fazendo sentido ser instanciada.
Agora vamos imaginar a nossa classe Aluno contendo os dados bsicos comuns a
todos os alunos da rede estadual de ensino. A superclasse Aluno poder ser abstrata,
tendo como subclasses AlunoConv, AlunoEEEP e AlunoSuperior, que so,
respectivamente, alunos de escolas convencionais, alunos de escolas
profissionalizantes e alunos de ensino superior. Se todos os alunos se encaixam em
um desses trs tipos, no faz sentido instanciar a classe Aluno, sendo ela, portanto,
uma classe abstrada.

Informtica - POO/JAVA

62

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 73 - Classe abstrata Aluno e subclasses

Vejamos como implementar uma classe abstrata em Java:

Figura 74 Implementao da classe abstrata Aluno

Mtodos abstratos so mtodos da classe abstrata que no tm implementao.


Eles so declarados apenas com a assinatura, sem o corpo e com a palavra-chave
abstract.

Dicas de Programao (9)


Use classes abstratas para definir muitos tipos de comportamentos no topo de uma
hierarquia de classes de programao orientada a objetos. Use suas subclasses para
prover detalhes de implementao da classe abstrata.

Exerccios Propostos

Informtica - POO/JAVA

63

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fase IV Projeto Orientado a Objetos


13 Conhecendo e Organizando um Projeto no Padro MVC
13.1 Entendo o Padro Model-View-Controller MVC
Em um sistema grande e complexo composto por vrias classes, no
interessante ter todo o cdigo da aplicao misturado, ou seja, termos em um nico
pacote: a codificao da tela grfica de interao do usurio, as aes do sistema, os
cdigos de negcio da aplicao e os cdigos de acesso a um banco de dados. Essa
metodologia de desenvolvimento de software torna muito difcil realizar manuteno e
reuso de cdigo em outros sistrmas.
Para solucionar nosso problema podemos utilizar o padro Model-View-Controller
MVC, que um padro de arquitetura de software utilizado para separar partes da
aplicao a fim de melhorar o entendimento e aproveitamento das partes.

Figura 75 - Estrutura padro MVC

A Figura 75 - Estrutura padro MVC, acima, demonstra como ocorre a comunicao


entre os mdulos do padro MVC, que consiste em dividir as classes do sistema em
trs pacotes: Model, View e Controller. Perceba, a classe de viso chama a classe de
controle que por sua vez manipula a classe de negcio (Model), quando a operao
realizada a classe de negcio retorna para a classe de controle que chama a classe de
viso para exibir o resultado da operao.
O pacote Model ser constitudo das classes de negcio do sistema. Nesse
momento voc pode se perguntar como identificar as classes de negcio do meu
sistema? O negcio aquilo que trata o sistema, ou seja, razo do sistema existir a
estrutura que ser manipulada pelo sistema. Por exemplo, em um sistema de cadastro
de alunos qual razo do sistema existir? O que ele ir manipular? Se voc observar
para todas as perguntas, a resposta alunos, o sistema existe para manipular alunos,
e armazenar informaes sobre eles. Ento aluno ser uma classe de negcio (Model)
da sua aplicao.

Informtica - POO/JAVA

64

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

J o pacote Controller ter as classes de manipulao sobre o negcio, ou seja,


as aes que sero realizadas com o negcio da aplicao. Por exemplo, no nosso
sistema de cadastro de alunos pode ser necessrio as aes cadastrar, excluir, alterar
e visualizar os alunos, essas aes sero a nossa classe de controle.
E por fim o pacote View ser a interface de comunicao com o usurio, ela
permitir que ele escolha uma opo a ser realizada, essa escolha chamar a
funcionalidade correspondente da classe de controle que manipular a classe de
negcio. O resultado da operao tambm ser mostrado para usurio atravs da
classe de viso.

Classe

Classe Java de
Interface para o
usurio

View

Objeto
View

Classe
Model

Janela de
Interface para o
usurio criada
pela classe main
ou outra janela
de interface a
partir da Classe
View
correspondente

Objeto
Model

Classe Java que


corresponde a
um elemento do
mundo real
modelado para o
sistema,
contendo seus
atributos e
mtodos
Objeto criado por
uma janela de
interface a partir
de uma Classe
Model
correpondente

Classe
Controller

Objeto
Controller

Classe Java
correspondente a
uma classe
model que
contm os
mtodos que
permitem o
acesso ao banco
de dados
Objeto criado por
uma janela de
interface a partir
de uma Classe
Controller e
alimentado por
um objeto model

Figura 76 - Padro MVC

Exerccios Propostos

Informtica - POO/JAVA

65

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

14 Implementao do Projeto
14.1 Identificao do Projeto
Turma chegamos parte final da nossa apostila, nessa fase vamos criar um
sistema passo a passo utilizando o projeto MVC criado anteriormente. Portanto voc ir
aprender muito sobre a interao entre as classes em um projeto MVC, tambm ir
conhecer os componentes para criar interfaces grficas do Java e utilizar um vetor de
objetos como banco de dados. Tudo isso implementando os conceitos de orientao a
objeto apresentados na fase anterior.
Agora vamos aprender como organizar nosso projeto no padro MVC, durante todo
o nosso curso iremos utilizar a IDE Netbeans para desenvolver nossos projetos.

14.2 Criando o Projeto


Voc j deve ter o Java e Netbeans instalado em sua mquina.
Primeiro abra a IDE Netbeans.

Figura 77 - Tela inicial NetBeans

Crie um novo projeto clicando em Arquivo Novo projeto

Figura 78 - Criando um novo projeto

Informtica - POO/JAVA

66

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Na tela para criao do novo projeto escolha a opo Java Aplicativo Java e
clique em prximo.

Figura 79 - Escolha o tipo do projeto

Na tela seguinte coloque o nome do projeto de ProjetoMVC e clique em finalizar

Figura 80 - Nome do projeto

Pronto nosso projeto foi criado.


Perceba que temos um pacote com o nome de projetomvc que possui uma classe
chamada ProjetoMVC.java.

Figura 81 - Projeto criado

Informtica - POO/JAVA

67

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

14.3 Criando os Pacotes MVC


Clique com o boto direito no pacote projetomvc, escolha a opo Novo depois
Pacote Java.

Figura 82 - Criando um novo pacote

Na tela seguinte coloque o nome do pacote de projetomvc.model e clique em


finalizar. Em seguida crie mais dois pacotes chamados projetomvc.controler e
projetomvc.view.

Figura 83 - Nomeando o pacote

Seu projeto deve estar da seguinte forma.

Figura 84 - Pacotes criados

Agora exclua o pacote projetomvc.java, para isso clique com o boto direito no
projeto e escolha a opo excluir. Seu projeto deve ficar com a seguinte aparncia.

Informtica - POO/JAVA

68

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 85 - Projeto criado

Nosso projeto agora est organizado no padro MVC.


Primeiro vamos definir sobre o que ser o nosso sistema. Iremos construir um
sistema de controle de produtos que ter como funcionalidades bsicas; cadastrar,
excluir, alterar e visualizar. Tudo manipulando um vetor de objetos de produtos.

14.4 Pacote Model


Precisamos definir nossa classe de negcio (Model) da aplicao. Se o sistema
ser para manipulao de produtos est claro que o negcio da nossa aplicao so
produtos, ento devemos criar uma classe chamada Produto.
Para isso clique com o boto direito no projetomvc.model, escolha a opo Novo
em seguida Classe Java, coloque o nome da classe de Produto(Lembre-se nome de
classe inicia com letra maiscula) e clique em Finalizar .

Figura 86 - Projeto MVC

Veja se o projeto est dessa forma:


A classe Produto foi criada e est pronta para ser programada.

Figura 87 - Criao da classe produto

Informtica - POO/JAVA

69

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Agora vamos definir quais so as informaes que precisamos ter sobre o produto
no momento que for cadastrado.
Vamos solicitar que seja informado o nome, cdigo, o preo e data de validade do
produto.
Tudo isso sero variveis da nossa classe produto, ento vamos cri-las? Lembrese de colocar todas como private, pois vamos implementar o conceito de
encapsulamento, no queremos que as nossas variveis sejam vistas por todos.
O cdigo ser o seguinte:
private String nome;
private int cdigo;
private double preco;
private String data;
Veja se ficou da seguinte forma:

Figura 88 - Variveis classe produto

Agora precisamos criar os mtodos de acesso as variveis (mtodos get e set).


Vamos usar um atalho do Netbeans.
Dentro da classe pressione as teclas ALT e INSERT e escolha a opo Getter e
Setter.

Informtica - POO/JAVA

70

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 89 - Atalho para get e set

Depois marque todas as variveis que deseja gerar os mtodos get e set e clique
em gerar.

Figura 90 - Gerando mtodos get e set

Informtica - POO/JAVA

71

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Pronto os mtodos Getters e Setters detodas as variveis foram gerados.

Figura 91 - Classe produto pronta

14.5 Pacote View


Terminado a classe de negcio da nossa aplicao, vamos agora criar a interface
grfica do sistema que ser no nosso pacote View.
14.5.1 Tela de Login

Vamos aprender como criar uma interfacegrfica em nosso projeto. Clique com o
boto direito no projetomvc.view, Escolha a opo Novo Formulrio JFrame.
Coloque o nome de JfLogin e clique em finalizar.

Figura 92 - Criando a tela de login

Informtica - POO/JAVA

72

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Veja se ficou como na figura abaixo.

Figura 93 - Iniciando a tela de login

Para que possamos montar nossas telas precisamos conhecer a funcionalidade da


paleta de componentes. Portanto vamos estud-los agora.
Cada componente uma classe do pacote Swing (javax.swing) do Java, portanto
cada componente possui mtodos (aes) prontos para que possamos utilizar em
nossos sistemas.
Vamos estudar os componentes mais comuns com os seus mtodos mais
importantes.
Componente JLabel

Figura 94 - Componete JLabel

O JLabel utilizado para mostrar um texto na tela que normalmente oferece


informao para o usurio de forma a tornar a tela mais compreensvel.

Figura 95 - Inserindo componente JLabel

Vamos agora inserir um JLabel em nossa tela inicial. Clique no componentee arrate
e solte em cima de sua tela. O resultado desta operao pode ser visto na Figura 95.
possvel redimensionar o componente, como fazemos para redimensionar uma
imagem.

Informtica - POO/JAVA

73

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Vamos aprender agora algumas propriedades do nosso componente JLabel. Voc


pode utilizar essas propriedades atravs da barra ao lado

Figura 96- propriedades JLabel

Background: Altera a cor de fundo.


Font: Altera o tamanho e o tipo da letra.
Foreground: Altera a cor do texto.
Text: Altera o texto exibido dentro do componente.

Agora altere a propriedade Text para Sistema Controle de Produtos, coloque a font
High Tower Text, tamanho 24 e altere a cor do texto para vermelho. Sua tela deve ficar
como ostrado na Figura 97:

Figura 97 - Inicio da tela de Login

Componente JTextField
Um textfield como um label, s que pode ser editado e modificado pelo usurio.
Textfields so usados geralmente para entrada de dados pelo usurio. Na paleta de
componentes voc encontra o componente com o nome Campo de Texto.

Informtica - POO/JAVA

74

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 98 - Componente JTextField

Deixe sua tela agora com a seguinte aparncia

Figura 99 - Adicionando JTextField a tela de Login

Para isso adicione dois JLabel e altere seus textos para Login e Senha. Coloque
tamanho da letra 14. Em seguida adicioneum JTextField. Para retirar o nome que
aparece dentro do textFieldbasta apagar o texto dentro da sua propriedade text.
Componente JPasswordField
Vamos utilizar esse componente paraque ao digitar a senha ningum possa
visualiz-la. Ele ir adicionar uma mscara na senha. Na paleta de componentes ele
chamado de Campo de senha. Adicione um JPasswordField na tela de Login, no
Campo senha.

Figura 100 - Componete JPasswordField

Componente JButton
Um boto uma regio clicvel coma qual o usurio interage de forma a disparar
uma ao. Na paleta de componentes ele chamado Button.

Informtica - POO/JAVA

75

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 101 - Componente JButton

Insira um componente JButton em nossa tela inicial e altere a sua propriedade text
para Login. A tela deve ficar da seguinte forma:

Figura 102 - Tela de Login finalizada

Alterando o nome da varivel dos componentes


Cada um dos componentes adicionados precisa ser identificado por um nome
internamente, como sendo uma varivel. Isso ajuda o programador na hora de
identificar os componentes.

Para alterar o nome da varivel de um componente clique sobre ele com o boto
direito e escolha a opo Alterar o nome da varivel.

Figura 103 - Alterando o nome das variveis

Por conveno, costumamos nomear os componentes de acordo com o tipo de


componente. Por exemplo, um JTextField comeamos o nome com Jtf um JButton com
Jb, JPasswordField com Jpf e assim por diante.
Informtica - POO/JAVA

76

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Agora altere o nome da varivel do do JTextField para JtfLogin e


do
JPasswordField para JpfSenha e o nome do JButton para JbLogin. Dessa forma
saberemos que tipo de componente , e qual a sua funcionalidade no sistema.

14.5.2 Tela de Cadastro de Produtos

Vamos criar a tela para cadastro dos produtos, para isso crie um nova tela
(Formulrio JFrame) no pacote View coloque o nome de JfCadastro e adicione a ele os
seguintes componentes:
Componente

jLabel

jTextField

Componente

jButton

Nome da Varivel

Texto

Alterao
desnecessria

Cadastro de Produto

Alterao
desnecessria

Nome do Produto

Alterao
desnecessria

Preo do Produto

Alterao
desnecessria

Data de Validade

JtfNome

Sem texto

JtfPreco

Sem texto

JtfData

Sem texto

Nome da Varivel

Texto

JbCadastrar

Cadastrar

JbBuscar

Buscar

JbExcluir

Excluir

JbAlterar

Alterar

A tela deve ficar no final com a aparncia da Figura 104:

Informtica - POO/JAVA

77

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 104 - Tela cadastro de produto

14.5.3 Codificando o Boto OK da Tela de Login

J criamos nossas telas grficas, mas elas ainda no tm nenhuma funcionalidade.


Por exemplo, na tela de Login o usurio dever digitar um usurio e senha e depois
clicar no boto Login, se o usurio e a senha estiverem corretos ser permitido o
acesso ao sistema.
Porm, nosso boto ainda no consegue ter nenhuma funcionalidade. Para
resolver esse problema iremos chamar o evento ActionPerformed do boto tudo que for
programado dentro desse evento ser executado no momento que o usurio clicar no
boto. Ou seja, o evento funcionar como um mtodo sendo invocado.
Evento ActionPerformed componente JButton
Vamos agora programar nossa tela de Login. Para chamar o evento
actionPerformed, clique com o boto direito no boto Login escolha a opo Eventos
Action actionPerformed.

Informtica - POO/JAVA

78

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 105 - Evento actionPerformed do boto Login

Nesse momento voc ser direcionado para o cdigo fonte da sua interface, no se
preocupe com todos os cdigos existentes, vamos nos preocupar somente com o
evento de nosso boto.

Figura 106 -Mtodo do boto login

Como pode perceber na imagem acima o mtodo de ao do nosso boto foi


gerado. Agora precisamos inserir o cdigo para validao do usurio e senha. Digite o
cdigo abaixo.

Figura 107 - Cdigo fonte do boto Login

Informtica - POO/JAVA

79

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Nesse exemplo estamos utilizando um usurio e senha padro, ou seja todas as


pessoas que desejarem fazer login em nosso sistema devem usar o usurio informtica
e a senha java.
Vamos entender o cdigo.
Linha 110 Criao da varivel usurio que recebe o valor capturado pelo mtodo
getText() do campo JtfLogin.
Linha 111 Criao de um objeto da classe String chamado senha que recebe
como valor a senha capturada pelo mtodo getPassword() do campo JpfSenha
Linha 112 Verifica se um dos dois campos esto vazios, se sim, retorna uma
mensagem de erro pedindo ao usurio que digite os valores.
Linha 115 Se os campos no estiverem vazios, verificado se o usurio e a
senha digitados so informtica e java, se sim, o login realizado.
Linha 116 Criao do objeto da tela de cadastro, necessrio criar objeto para
que a tela seja chamada.
Linha 117 Setando a tela de cadastro como visvel.
Linha 118 Caso o usurio ou a senha no sejam compatveis com o esperado,
retornar uma mensagem de erro para o usurio.
Linhas 122 e 123 Aps todas as operaes os campos de usurio e senha so
limpos.
14.5.4 Codificando o Boto Cadastrar da Tela de Produto

Primeiro passo ativar o evento ActionPerformed de cada boto. Faa isso! O


resultado deve ser esse abaixo. Todos os botes com seus eventos ativos.

Figura 108 - Eventos ActionPerformed botes cadastro de produtos

Informtica - POO/JAVA

80

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Vamos agora comear pelo boto cadastrar. Para realizar o cadastro necessrio
capturar os dados do produto da tela de cadastro. Para isso no evento do boto
cadastrar digite o seguinte cdigo:

Figura 109 - Captura de dados do boto cadastrar

Pronto, agora j capturamos os valores. Precisamos agora armazenar os dados do


produto. Mas temos um problema. Onde vamos armazenar os dados? Voc lembra?
Isso mesmo em vetor de objetos. Porm esse vetor ainda no foi criado, e muito menos
a classe de controle que ir controlar as aes no vetor. Ento o primeiro passo criar
a classe de controle.
Crie uma classe chamada ControleProduto no pacote projetomvc.controler. Dever
ficar da seguinte forma:

Figura 110 - Criao da classe ControleProduto

Na classe de controle vamos criar nosso vetor. Lembre-se que o vetor deve ser do
tipo de Produto para que possamos armazenar objetos de produto. Teremos que
informar o tamanho do vetor vamos colocar 5. Vamos tambm criar uma varivel do
tipo de produto, uma varivel chamada i inicializada com 0 e uma varivel cod tambm
inicializada com 0, e uma varivel com nome achou do tipo boolean. Veja como ficou.

Figura 111 - Variveis da classe de Controle

Informtica - POO/JAVA

81

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Agora vamos codificar o nosso mtodo cadastrar na classe ControleProduto.

Figura 112 - Mtodo cadastrar classe ControleProduto

Vamos entender o cdigo.


Linha 16 Declarao do mtodo cadastrar que ir receber como parmetro os
dados para cadastro da tarefa, ou seja esses dados sero repassados a partir da
classe de interface.
Linha 17 - Incremento da varivel cod, essa varivel ser o controle do cdigo de
cada produto, portanto cada vez que o mtodo cadastrar for chamado o valor dela ser
alterado gerando um novo cdigo para o produto.
Linha 18 Criao do novo objeto de produto passando como parmetro os
valores do produto que sero armazenado nas suas respectivas variveis na classe
produto.
Linha 19 Armazenando o objeto gerado no vetor.
Linha 20 Incrementando a varivel i. Essa varivel funcionar como controle para
as posies do vetor.
Agora vamos ver como fica o restante da implementao do evento no boto
cadastrar. Utilizamos um objeto chamado pro da classe ControleProduto para
chamarmos o mtodo cadastrar.

Figura 113 - Mtodo cadastrar na classe JFCadastrar

Linha 168 Nessa linha estamos chamando o mtodo limpar(). O cdigo dele esta
demonstrado logo abaixo a sua funo limpar os campos aps o cadastro.

Informtica - POO/JAVA

82

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 114 - Mtodo Limpar classe JFCadastro

14.5.5 Codificando o Boto Buscar da Tela de Produto

Para implementar a busca usaremos a seguinte lgica: o usurio ir informar o


nome do produto que deseja buscar e depois clicar no boto buscar. A classe de
controle ir percorrer o vetor e localizar o objeto, realizando assim o retorno do mesmo.
Se a classe no encontrar o objeto ela ir retornar null, e o programa ir mostrar uma
mensagem que o produto no existe. Vamos ver como fica a implementao do evento
do boto Buscar.

Figura 115 - Mtodo Buscar tela JfCadastro

Linha 171 Declarao do mtodo de ao para o boto Buscar


Linha 172 A varivel nomeBusca est recebendo o nome para busca digitado no
campo nome.
Linha 173 O objeto da classe ControleProduto chamado pro esta chamando o
mtodo buscar da classe de controle(ControleProduto) e esta passando como
parmetro o nome do produto para busca. O retorno do mtodo buscar ser um objeto
contendo as informaes do produto buscado.
Linha 174 Se o produto no existir ir retornar null, e a mensagem informando
que o produto no existe ir aparecer, em seguida os campos sero limpos.
Linha 178 O objeto produto retornado esta capturando o nome do produto e
setando no campo de texto do nome.

Informtica - POO/JAVA

83

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Linha 179 O objeto produto retornado esta capturando a data do produto e


setando no campo de texto da data.
Linha 180 O objeto produto retornado esta capturando o preo do produto e
setando no campo de texto referente ao preo. A utilizao do comando String.valueOf
para converter o preo do produto de double para String, dessa forma possvel
exibir o valor no campo de texto.
Vamos ver agora como fica o mtodo buscar na classe ControleProduto.

Figura 116 - Mtodo buscar classe ControleProduto

Linha 25 Criao do mtodo para realizar a busca, com parmetro chamado


nomeBusca do tipo String, o tipo de retorno do mtodo Produto, pois no final ir
retornar um objeto de produto.
Linha 26 Inicializao da varivel achou como false, esse valor ser importante
caso no seja encontrado o objeto da busca.
Linha 27 Criao do for para realizar o loop at a varivel a ser menor que o
vetor chamado produto, o mtodo length serve para analisar o tamanho do vetor.
Linha 28 A varivel nome recebe o nome do objeto armazenado no vetor produto
Linha 29 Verifica se o nome retornado igual ao nome que foi passado na
busca.
Linha 30 Se os nomes forem iguais o objeto do vetor ser guardado em objeto
do tipo produto.
Linha 31 Como o objeto foi encontrado a varivel achou passa a ser true.
Linha 32 Verifica se a varivel achou igual a false, se for na linha 33 o objeto
de retorno recebe null.
Linha 36 O objeto retornado para o mtodo buscar da nossa tela.

Informtica - POO/JAVA

84

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

14.5.6 Codificando o Boto Alterar da Tela de Produto

Para fazer uma alterao em um produto, o usurio precisa realizar primeiro a


busca dos dados, s ento ele pode alterar um dado e em seguida clicar no boto
alterar para que a modificao seja salva.
Vamos ver como fica a implementao do evento do boto Alterar.

Figura 117 - Mtodo alterar na classe JfCadastro

Linha 195 Declarao o evento actionPerformed do boto alterar.


Linha 196 A varivel nomeAltera recebe o contedo do campo nome.
Linha 197 A varivel precoPro recebe o contedo do campo preo convertido
para double.
Linha 198 A varivel data recebe o contedo do campo data
Linha 199 O objeto pro chama o mtodo altera da classe de controle e passa
como parmetro o nomeBusca, essa varivel contm o nome do objeto que ser
alterado, e as variveis que contm os novos valores que sero armazenados no
objeto.
Linha 200 e 201 Exibe uma mensagem de sucesso na alterao e limpa os
campos.
Vamos ver agora como fica o mtodo alterar na classe de Controle

Figura 118 - Mtodo alterar na classe ControleProduto

Linha 39 Declarao do mtodo alterar que recebe 4 parmetros, o primeiro ser


o nome do objeto que servir como referencia para alterao e os outros so os dados
do produto que sero alterados.
Informtica - POO/JAVA

85

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Linha 40 O for para percorrer o vetor.


Linha 41 A captura do nome de cada objeto para verificar se o objeto certo.
Linha 42 Verifica se o objeto certo para ser alterado.
Linha 43 Captura o objeto e guarda na varivel pro.
Linha 44, 45 e 26 Seta os novos valores para o objeto.
14.5.7 Codificando o Boto Excluir na Tela de Produto

O mtodo excluir vai partir do mesmo principio do alterar, ou seja, necessrio


primeiro realizar a busca do produto e s depois clicar em excluir.
Vamos ver como fica a implementao do evento do boto Excluir.

Figura 119 - Mtodo excluir na classe JfCadastro

Linha 188 Declarao do mtodo actionPerformed do boto excluir.


Linha 190 O objeto pro chama o mtodo da classe de controle excluir e passa
como parmetro o nome do produto que ser excludo, esse nome foi capturado devido
a busca que foi realizado no produto.
Linha 191 e 192 exibe uma mensagem de sucesso e limpa os campos aps a
excluso.
Vejamos como ficou o mtodo excluir na classe de controle

Figura 120 - Mtodo excluir na classe ControleProduto

Linha 52 Declarao do mtodo excluir que recebe como parmetro o nome do


produto que ser excludo.
Linha 53 O for que ir percorrer o vetor.
Linha 54 Captura do nome de cada produto para verificao
Informtica - POO/JAVA

86

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Linha 55 Verifica se o nome do produto igual ao nome do produto que ser


excludo.
Linha 56, 57 e 58 Se o nome for compatvel com o nome do produto para
excluso, as variveis do produto so setadas como vazia e a varivel preo como 0.

14.6 Gerando um arquivo executvel do sistema


Em Java no temos arquivos exe, como tnhamos em outras linguagens de
programao como VB ou Delphi. Ento como fazemos para executar nossa aplicao
para qualquer lugar, sem ter que abrir o cdigo fonte dela?
O Java preza pela portabilidade, por isso no cria arquivos exe, ele gera arquivos
com a extenso .jar, isso possibilita que qualquer mquina com qualquer sistema
operacional possa executar os aplicativos feitos em java, basta que tenha o kit de
desenvolvimento Java instalado.
Um arquivo fonte Java (.java) visto da mesma forma por qualquer sistema
Operacional, o mesmo arquivo compilado no Windows, pode ser compilado no Linux,
no MacOs, no Unix e assim por diante, que sempre ir ter o mesmo resultado e a
mesma GUI(Interface). J os conjuntos de bytecodes (.class), que so os arquivos que
a Mquina Virtual Java (JVM), usa para rodar os programas Java, tambm podem ser
lidos pela JVM de qualquer Sistema Operacional.
Um arquivo .jar (Executable Jar File), tem o mesmo funcionamento de um arquivo
executvel .exe, ele esconde a implementao (cdigo) do usurio, e roda o programa
sozinho, basta clicar duas vezes sobre o mesmo, que ele dispara o programa. A
principal vantagem de arquivo .jar que ele portvel, como toda a linguagem Java.
Isto quer dizer que voc pode criar um arquivo executvel (.jar) que vai funcionar em
qualquer Sistema Operacional, sem voc ter que mudar nada, nem mesmo uma linha
ou virgula.
Para gerar o arquivo jar clique com o boto direito do mouse em cima do projeto e
escolha a opo limpar e construir. Veja a imagem abaixo:

Figura 121 - Gerando o jar do projeto

Pronto o arquivo jar est criado, para localiz-lo v at a pasta onde est seu
projeto e localize a subpasta dist.

Informtica - POO/JAVA

87

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 122 - Pasta dist do projeto

Dentro da pasta dist est o arquivo .jar que voc poder levar para qualquer lugar e
executar o seu sistema bastando apenas dar dois cliques.

Figura 123 - Arquivo jar do projeto

Saiba
Para criar uma aplicao que seja inicializada automaticamente junto com o
sistema operacional Windows, coloque seu arquivo .jar na pasta inicializar do
sistema.

Chegamos ao fim do nosso projeto, certo que ele no est 100% implementado,
e que algumas funcionalidades e componentes poderiam ser adicionadas. Espero que
tenha gostado de entender como funciona o padro MVC e como podemos construir
um sisteminha capaz de manipular informaes sem precisar de um banco de dados.
Posteriormente, iremos otimizar o nosso sistema, migrando para um banco de
dados, adicionando novas funcionalidades e utilizando mais recursos da linguagem
Java.

Informtica - POO/JAVA

88

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

15 Assuntos Complementares
15.1 Tratamento de Excees em Java
Exceo um evento que acontece durante a execuo de um bloco de cdigo e,
por algum motivo indevido (um erro), altera o curso normal de sua execuo.
Uma exceo indica um problema que ocorre durante a execuo de um programa.
O tratamento de excees permite aos programadores criar aplicativos que podem
tratar os problemas, permitindo que o programa continue funcionando.
O tratamento de excees existe para processar erros que ocorrem quando uma
instruo executada, como ndice de array inexistente, diviso de numero por zero,
parmetros invlidos de mtodos e etc.
O Java possui uma hierarquia de classes que realizam tratamento das excees
mais comuns. As classes de excees do Java herdam da classe Exception.
Estendendo essa classe possvel cria suas prprias classes de excees.
Veja abaixo a hierarquia de classe de excees em Java:

Figura 124 - Hierarquia de excees em Java

Throwable: superclasse de todas as exceptions.


Error: erros irreparveis, onde no adianta utilizar o mecanismo de tratamento
de exceo. Exemplos: estouro de memria, erros na JVM;
Exception: excees tratadas pelo programador e o compilador obriga o
programador a tratar os possveis erros. Exemplos: Diviso por zero, ndice do
array inexistente.
RuntimeException: excees causadas por erros de lgica, ou seja, erros do
programador. Exemplo: NullPointerException.
Iremos estudar as excees do tipo RunTimeException.
Informtica - POO/JAVA

89

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

AritmeticException: Esse tipo de exceo disparada sempre que ocorre problemas


relacionados a aritmtica . Ex: diviso de um nmero por zero.

Figura 125 - Possvel exceo do tipo ArithmeticException

Figura 126 - Exceo ArithmeticException lanada

No exemplo acima perceba que disparada uma exceo quando tentamos dividir
um nmero por zero, e que a classe ArithmeticException informa o erro com a
mensagem by zero.
InputMismatchException: ocorre quando o usurio digita um valos que no do tipo
do valor esperado. Ex: quando o mtodo nextInt da classe Scanner recebe uma String.
ClassCastException: um erro que ocorre quando tentamos fazer um cast
(converso explcita) de uma classe para outra classe diferente desta ou que no seja
uma superclasse desta. Ou seja, as classes no possuem nenhuma relao portanto
no pode haver a converso de objetos.

Figura 127 - Exceo do tipo ClassCastException lanada

ArrayIndexOutOfBoundsException: esse tipo de exceo ocorre quando tentamos


acessar um elemento de um array inexistente, portanto deve-se lembrar que o array
inicia sempre em 0 e estar atento ao limite das posies do array.
NullPointerException: ocorre quando tenta-se utilizar um atributo ou mtodo de um
objeto que no fora inicializado, ou seja, que esteja no estado null.

Informtica - POO/JAVA

90

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 128 - Possvel exceo do tipo NullPointerException

Figura 129 - Exceo do tipo NullPointerException lanada

No exemplo acima perceba que o objeto carro no foi instanciado por isso gerado
uma exceo do tipo NullPointerException.
A estrutura try-catch-finally
Essa estrutura tem como funo desviar a execuo do programa caso ocorra
certos erros, predefinidos durante a codificao.
Veja abaixo como funciona a estrutura try-catch-finally

Figura 130 - Estrutura try-catch-finally

1. Try: bloco de cdigo que tentar ser executado, mas que pode causar uma
exceo;
2. catch: declara o bloco de cdigo usado para tratar uma exceo;
Informtica - POO/JAVA

91

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

3. finally: bloco de cdigo, aps um try-catch, que executado


independentemente do fluxo de programa seguido ao lidar com uma exceo, ou
seja, o finally sempre executado.
Regras no uso do try-catch-finally

no permitido ter um block catch e fnally sem um block try.


Figura 131 - Erro, catch sem try

no permitido inserir qualquer cdigo entre os blocos try e catch.


Figura 132 - Erro, cdigo entre o try e catch

no permitido ter um bloco try sem ter um bloco catch ou finally.


Figura 133 - Erro, try sem catch ou finally

Lanamento de excees
Uma exceo lanada usando-se a palavra chave throw seguida da referncia
exceo.

No exemplo abaixo se a varivel s for null ser disparado uma execeo do tipo
NullPointerException, se o tamanho da varivel for igual a 0 ser uma exceo do tipo
IlegalArgumentException, se no for nenhuma das duas ser disparada uma exceo
padro de exception.

Informtica - POO/JAVA

92

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 134 - Lanamento de exceo

Figura 135 - Lanamento de exceo

Se o programador desejar que a exceo assim lanada seja tratada fora do


mtodo que a gerou, ele deve explicitar isto usando a palavra chave throws seguida do
tipo de exceo, na declarao do mtodo.

Informtica - POO/JAVA

93

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

No exemplo abaixo o mtodo calcularFolha est informando que pode disparar


uma exceo do tipo IlegalArgumentException para isso ele est utilizando o comando
throws.

Figura 136 - Passando uma exceo

No confundir throws e throw.


throw: usado para lanar uma exceo para o mtodo que o chamou;
throws: indica que um mtodo pode passar uma exceo para o mtodo que o
chamou.
Veja como fica o mtodo cadastrar na interface do nosso projeto, utilizando o
tratamento de excees:
Perceba que agora estamos implementando o tratamento de excees e estamos
tratando uma exceo do tipo NumberFormatException, que ser disparada caso o
usurio insira uma letra no campo do preo, dessa forma no ser possvel realizar a
converso para Double e a mensagem de erro ser disparada, consequentemente o
produto no ser cadastrado e os campos sero limpos, para digitar novamente os
dados do produtos.

Exercicios

15.2 Convenes de cdigo Java


importante programar seguindo convenes de cdigo, isso ajuda a deixar o
cdigo mais legvel, facilitando assim o entendimento do mesmo por parte dos
integrantes da equipe de desenvolvimento.
No processo de desenvolvimento de software a maior parte dedicada a
manuteno do mesmo, portanto ter um cdigo fcil de entender, facilita o processo de
manuteno.
80% do custo do tempo de vida de uma pea de software vai para manuteno.
Dificilmente qualquer software mantido por toda a sua vida pelo autor original.
Convenes de cdigo melhorar a legibilidade do software, permitindo que os
engenheiros para entender o novo cdigo mais rapidamente e completamente.
Informtica - POO/JAVA

94

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

As convenes de cdigo para o documento Linguagem de Programao Java foi


revisado e atualizado em 20 de abril de 1999.
Arquivos de cdigo Java
A organizao bsica de um arquivo de cdigo Java deve obedecer seguinte
ordem:
1. Comentrios iniciais
2. Declaraes de pacotes e importaes
3. Declarao da classe/interface
Comentrios iniciais
Todo arquivo de cdigo deve iniciar com comentrios de incio, que devem conter
informaes a respeito da classe/interface, como por exemplo, nome da classe,
informaes de verso, data e autor.
/*
* NewJFrame.java
* Created on 02/01/2013, 09:41:08
* @author cintia
*/
Figura 137 - Comentrios inicio da classe

Declaraes de pacotes e importaes


A primeira linha de cdigo aps os comentrios iniciais deve ser a declarao do
pacote e em sequncia as declaraes de importaes.

Figura 138 - Declarando pacote e importando

Declarao da classe/interface
A tabela abaixo mostra cada parte de um classe/interface, na ordem em que elas
devem aparecer.

Informtica - POO/JAVA

95

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Figura 139 - Ordem de declarao na classe

Edentao (recuo de cdigo)


Os recuos so utilizados para alinhar visualmente comandos pertencentes a blocos
de cdigo. Um bloco o cdigo envolvido pelos delimitadores { e }, como por exemplo
o if. A regra geral abrir o bloco na linha do comando e fechar alinhado a ele.

Figura 140 - Exemplo de identao

Normalmente se utiliza 4 espaos como medida padro da tabulao, porm


algumas vezes necessrio utilizar 8 espaos para obter uma visualizao melhor do
cdigo. Devem ser evitadas linhas com mais de 80 caracteres.
Quebras de linha
Quando uma expresso no couber numa nica linha, quebr-la de acordo com as
seguintes regras bsicas:
Aps uma vrgula
Antes de um operador
Alinhar a nova linha com o incio da expresso da linha anterior

Informtica - POO/JAVA

96

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Se as regras acima gerarem cdigo confuso, ou se a linha de baixo ficar colada na


margem, use uma tabulao de 8 espaos. Exemplos de quebra de linha:

Figura 141 - Quebra de linha em um mtodo

Figura 142 - Quebra de linha expresso aritmtica

Declaraes de variveis
Ao declarar variveis, observe as seguintes regras:
Faa apenas uma declarao por linha, de modo a incentivar o uso de
comentrios.
Inicialize apenas uma varivel por linha.
Use letras minsculas e evite caracteres especiais.
Convenes de nomenclatura

Figura 143 - Convenes de nomenclatura

Informtica - POO/JAVA

97

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

16 Referncias Bibliogrficas
1. Davenport, T H e Prusak, L. Conhecimento empresarial. Rio de Janeiro : Campus, 1988.
2. ScriBD. Desenvolvimento de Software Orientado a Objetos.
[http://pt.scribd.com/doc/56735259/2/Desenvolvimento-de-Softwares-orientado-a-objetos]
01/06/2012.
3. Wikipedia. Java (linguagem de prograo).
[http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29 10/05/2012]
2012.
4. Caelum Ensino e Inovao. Java e Orientao a Objetos. [www.caelum.com - 10/05/2012]. So Paulo,
So Paulo, Brasil : www.caelum.com, 10 de 05 de 2012.
5. Wikipedia. Java Runtime Environment. [http://pt.wikipedia.org/wiki/Jre 11/05/2012] 2011.
6. . Java Development Kit. [http://pt.wikipedia.org/wiki/Jre Em: 11/05/2012] 2011. a.
7. School of Information System. Java Virtual Machine.
[https://wiki.smu.edu.sg/is200/Java_Virtual_Machine - 09/05/2012] s.l. : Singapore Management
University.
8. Kathy Sierra, Bert Bates. Use a Cabea - Java. Rio de Janeiro : O'Reilly, 2005.
9. Antonio Manso, Clio Marques, Pedro Dias. http://www.dei.estt.ipt.pt/portugol. s.l. : Instituto
Politcnico de Tomar.
10. Balagtas, Florence Tiu. Projeto J.E.D.I. Students Manual. s.l. :
http://edu.netbeans.org/contrib/jedi/Intro-to-Programming-1/student-manual.pdf, 2006.
11. de Souza, Marcos Antnio Furlan e Gonclio, Marcelo Marques. Algoritmos e Lgica de
Programao. s.l. : Thomson.
12. Deitel, Harvey M. e Deitel, Paul J. Java como Programar 8 Ed. s.l. : Pearson.
13. Forbellone, Andr Luiz Villar. Lgica de Programao A Construo de Algoritmos e Estruturas de
Dados. So Paulo : Makron, 1993.
14. Puga, Sandra e Rissetti, Gerson. Lgica de Programao e Estruturas de Dados. s.l. : Pearson.
15. Gomes, Ana Fernanda e Veneruchi, Edilene Aparecida. Fundamentos da Programao de
Computadores Algoritmos, Pascal, C/C++, JAVA 2 Edio. s.l. : Pearson Prentice Hall.
16. Villar, Andr Luiz e Eberspacher, Henri F. Lgica de Programao a Construo de Algoritmos e
Estruturas de Dados 3 Ed. s.l. : Pearson.
17. Paterlini, Roberto Ribeiro. Frmula versus algoritmo da resoluo de um problema - RPM n. 27, 1.
quadrimento de 1995.
Informtica - POO/JAVA

98

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

18. Echeverra, M.D.P.P. e Pozo, J.I. Aprender a resolver problemas e resolver problemas para aprender.
[A. do livro] Juan Ignacio Pozo. Porto Alegre : Artmed, 1998.
19. Plya, G. A . Arte de Resolver Problemas. Rio de Janeiro : Intercincia, 1978.
20. Soares, M. T. C e N.B., Pinto. Metodologia da resoluo de Problemas. 24 Reunio Anual da ANPED.
Caxambu : ANPED, 2001.
21. Brando, Mirna Geyla Lopes. Minha apostila. 2012.

Informtica - POO/JAVA

99

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

17 Exerccios Propostos
FASE I A UML COMO FERRAMENTA DE PROGRAMAO ORIENTADA A OBJETOS
1 INTRODUO A SISTEMAS
2 Requisitos
3 Histria e Evoluo da UML
1. Explique porque importante modelarmos os sistemas antes de constru-los.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
2. Explique o que a UML e como ela surgiu.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
3. Detalhe como composta e dividida a UML.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

4 Diagramas Estrutrais da UML


4. Explique porque o diagrama de classe um dos diagramas mais importante na
modelagem de sistemas.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Informtica - POO/JAVA

100

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

5. Descreva com suas palavras o que so mtodos e atributos de uma classe.


______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
6. Desenhe as seguintes classes com seus mtodos e atributos.
a)
Pessoa
b)
Veiculo
c)
Aluno
7. Qual a importncia dos diagramas estruturais na modelagem de sistemas?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
8. Faa uma comparao detalhando as caractersticas de cada um dos diagramas
abaixo:
a)
Diagrama de classe:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
b)

Diagrama de Objeto:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
c)

Diagrama de componentes:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Informtica - POO/JAVA

101

Escola Estadual de Educao Profissional

d)

Ensino Mdio Integrado a Educao Profissional

Diagrama de Implantao:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
e)

Diagrama de pacotes:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
f)

Diagrama de estrutura:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

5 Diagramas Comportamentais
9. Qual o objetivo dos diagramas de caso de uso?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
10. Defina o que significa um ator? E qual a notao utilizada para representar um
ator e um caso de uso?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
11. Como podemos identificar os atores do nosso sistema?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Informtica - POO/JAVA

102

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

______________________________________________________________________
12. Construa um modelo de caso de uso para a seguinte situao fictcia:
Estamos criando um servio de entregas. Nossos clientes podem
requisitar a entrega de volumes. Alguns volumes so considerados
de maior valor por nossos clientes, e, portanto, eles querem ter tais
volumes segurados durante o transporte. Contratamos uma
companhia de seguros para segurar volumes de valor.
13. Diferencie cada um dos diagramas abaixo, detalhando suas caracteristicas.
a)
Diagrama de mquina de estados:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
b)

Diagrama de atividades:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
c)

Diagrama de sequncia:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
14. Identifique e explique cada um dos diagramas abaixo:
Diagrama 1:
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________
___________________________________

Informtica - POO/JAVA

103

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Diagrama 2:
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________
____________________________

6 Relacionamentos em UML
15. Explique cada um dos relacionamentos abaixo, demonstrando sua notao
grfica.
a)
Relacionamento de Dependncia:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
b)

Relacionamento de Associao:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
c)

Relacionamento de Generalizao:

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
16. Desenhe um diagrama de classes com relacionamentos, e cardinalidade para as
seguintes situaes.
a)
Uma pessoa pode ser casada com outra pessoa
b)
Uma disciplina pr-requisitos para outra disciplina
c)
Uma pea pode ser composta de diversas outras peas
17. Construa um diagrama de atividade e sequncia para a ao de Login em um
sistema.
18. Construa um diagrama de caso de uso para a ao de emitir nota Fiscal em um
sistema.
Informtica - POO/JAVA

104

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fase II Programao Orientada a Objetos


7 Viso Geral das Tecnologias Java
19. Explique com suas palavras porque o Java uma das linguagens mais usadas
no mundo atualmente.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
20. O que a API do Java? E como ela facilita a programao de softwares.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
21. Porque o conceito da Maquina Virtual Java to importante para o
desenvolvimento de aplicaes.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
22. Descreva como ocorre a compilao de um programa escrito em Java.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
23. Conceitue:
JDK:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Informtica - POO/JAVA

105

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

GarbageCollection:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
IDE:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
24. Porque no podemos utilizar as palavras reservadas do Java para nomear as
variveis do programa.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
25. Diferencie as seguintes tecnologias Java
J2SE:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
J2EE:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
J2ME:
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Informtica - POO/JAVA

106

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

8 Classes Java
26. Escreva um programa para ler uma palavra e imprimir cada letra existente na
palavra (uma em cada linha).
27. Crie uma classe Nome. Esta classe possui um objeto String inicializado na
construo.
a. Crie um mtodo tudoMinusculo, que coloque todos os caracteres da string
em minsculo (caixa baixa).
b. Crie um mtodo que retorne o tamanho, em nmero de caracteres, da
string armazenada.
c. Crie um mtodo que conte o nmero de ocorrncias de um determinado
caractere recebido como parmetro.
28. Crie uma classe para fazer o arredondamento dos seguintes valores:
5.2, 5.6 e -5.8 para o valor inteiro mais prximo.
29. Crie uma classe para calcular a raiz quadrada dos nmeros 900 e 30.25.
30. Crie uma classe para calcular a potncia de 5.5 elevado a 2 e 25 elevado a 0.5.
31. Crie uma classe que gere 5 cartes de loteria com seis nmeros em cada um.

Fase III Programao Orientada a Objetos


9 Orientao a Objetos
32. Explique com suas palavras o que orientao a objetos.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
33. Descreva de forma resumida como surgiu a programao orientada a objetos.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
34. Descreva quais as diferenas existentes entre objeto, classe e instancia.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Informtica - POO/JAVA

107

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

35. Pense em um sistema de uma video locadora, quais classes deveriam ser
criadas? E quais os atributos pertencentes a cada classe.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
36. Qual a importancia da troca de mesnsagens entre os objetos.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
37. Qual a diferena entre um atributo de objeto em atributo de classe.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
38. O que so metodos na orientao a objetos. D pelo menos um exemplo de
criao de mtodo em java.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
39. Qual a funo do construtor de uma classe
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
40. Crie uma classe em java chamada Carro, e defina no mnimo 3 mtodos e 3
atributos.

Informtica - POO/JAVA

108

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

10 Encapsulamento
41. Porque importante utilizar o conceito de encapsulamento na programao.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
42. O que so modificadores de acesso, e quais as diferenas entre eles.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
43. Qual a funo dos mtodos get e set.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
44. Implemente o encapsulamento e os mtodos get e set de uma classe chamada
Aluno com no mnimo 2 atributos.

11 Herana
45. Enumere os benefcios de
desenvolvimento de software.

utilizarmos

conceito

de

herana

no

______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
46. Explique o que herana mltipla.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

Informtica - POO/JAVA

109

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

47. Qual a relao de herana existente entre a classe object e a linguagem Java?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

12 Polimorfismo
48. Sua tarefa criar uma classe que contenha um Registro de Agenda. A tabela
abaixo descreve as informaes que um Registro de Agenda deve conter:

Crie os seguintes mtodos:

Fornea todos os mtodos acessores e modificadores necessrios para


todos os atributos
Construtores
49. Crie uma classe Agenda que possa conter entradas de objetos tipo Registro de
Agenda (utilize a classe criada no primeiro exerccio). Devem ser oferecidos os
seguintes mtodos para agenda:
Adicionar registro
Excluir registro
Visualizar registros
Modificar registro
50. Neste exerccio, queremos criar um registro mais especializado de Student que
contm informaes adicionais sobre um estudante de Informtica. Sua tarefa
estender a classe StudentRecord que foi implementada nas lies anteriores e
acrescentar atributos e mtodos que so necessrios para um registro de um
estudante de Informtica. Utilize override para modificar alguns mtodos da
superclasse StudentRecord, caso seja necessrio.
51. Crie uma classe abstrata chamada Shape com os mtodos getArea() e
getName(). Escreva duas de suas subclasses Circle e Square. E acrescente
mtodos adicionais a estas subclasses.
Fonte: Balagtas, Florence Tiu. Projeto J.E.D.I. Students Manual.s.l..

Informtica - POO/JAVA

110

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

Fase IV Projeto Orientada a Objetos


13 Conhecendo e Organizando um Projeto no Padro MVC
52. Com suas palavras escreva um resumo de no mnimo 10 linhas sobre o padro
MVC, qual a sua importncia e como estruturar um projeto nesse padro.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________

14 Implementao do Projeto
53. Implemente as seguintes mudanas no sistema:
a. Modifique o mtodo cadastrar para que seja possvel cadastrar um novo
produto na posio do vetor que tinha um produto, mas foi excludo.
b. Codifique o tratamento de excees do sistema.
c. Escreva comentrios no padro Javadoc em todo o sistema, e em
seguida gere a documentao (Para gerar automaticamente no netbeans,
clique em Executar Gerar Javadoc)
d. Crie um manual do usurio para utilizao do sistema.

15 Assuntos Complementares
15.1 Tratamento de Excees
54. Liste quatro exemplos de excees comuns.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
55. Se nenhuma exceo lanada em bloco try, onde o controle do programa
procede quando o bloco try completa a execuo?
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
Informtica - POO/JAVA

111

Escola Estadual de Educao Profissional

Ensino Mdio Integrado a Educao Profissional

56. Um aplicativo convencional deve capturar objetos Error? Explique.


______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
57. Qual o propsito de utilizar o bloco finally
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
58. Descreva a funcionalidade de cada uma das subclasses de RunTimeException
estudadas.
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
59. Digite o cdigo abaixo, trate a exceo (ArrayIndexOutOfBoundsException) com
um bloco try/catch/fnally.

Informtica - POO/JAVA

112

Hino Nacional

Hino do Estado do Cear

Ouviram do Ipiranga as margens plcidas


De um povo herico o brado retumbante,
E o sol da liberdade, em raios flgidos,
Brilhou no cu da ptria nesse instante.

Poesia de Thomaz Lopes


Msica de Alberto Nepomuceno
Terra do sol, do amor, terra da luz!
Soa o clarim que tua glria conta!
Terra, o teu nome a fama aos cus remonta
Em claro que seduz!
Nome que brilha esplndido luzeiro
Nos fulvos braos de ouro do cruzeiro!

Se o penhor dessa igualdade


Conseguimos conquistar com brao forte,
Em teu seio, liberdade,
Desafia o nosso peito a prpria morte!
Ptria amada,
Idolatrada,
Salve! Salve!
Brasil, um sonho intenso, um raio vvido
De amor e de esperana terra desce,
Se em teu formoso cu, risonho e lmpido,
A imagem do Cruzeiro resplandece.
Gigante pela prpria natureza,
s belo, s forte, impvido colosso,
E o teu futuro espelha essa grandeza.
Terra adorada,
Entre outras mil,
s tu, Brasil,
Ptria amada!
Dos filhos deste solo s me gentil,
Ptria amada,Brasil!
Deitado eternamente em bero esplndido,
Ao som do mar e luz do cu profundo,
Fulguras, Brasil, floro da Amrica,
Iluminado ao sol do Novo Mundo!
Do que a terra, mais garrida,
Teus risonhos, lindos campos tm mais flores;
"Nossos bosques tm mais vida",
"Nossa vida" no teu seio "mais amores."
Ptria amada,
Idolatrada,
Salve! Salve!
Brasil, de amor eterno seja smbolo
O lbaro que ostentas estrelado,
E diga o verde-louro dessa flmula
- "Paz no futuro e glria no passado."
Mas, se ergues da justia a clava forte,
Vers que um filho teu no foge luta,
Nem teme, quem te adora, a prpria morte.
Terra adorada,
Entre outras mil,
s tu, Brasil,
Ptria amada!
Dos filhos deste solo s me gentil,
Ptria amada, Brasil!

Mudem-se em flor as pedras dos caminhos!


Chuvas de prata rolem das estrelas...
E despertando, deslumbrada, ao v-las
Ressoa a voz dos ninhos...
H de florar nas rosas e nos cravos
Rubros o sangue ardente dos escravos.
Seja teu verbo a voz do corao,
Verbo de paz e amor do Sul ao Norte!
Ruja teu peito em luta contra a morte,
Acordando a amplido.
Peito que deu alvio a quem sofria
E foi o sol iluminando o dia!
Tua jangada afoita enfune o pano!
Vento feliz conduza a vela ousada!
Que importa que no seu barco seja um nada
Na vastido do oceano,
Se proa vo heris e marinheiros
E vo no peito coraes guerreiros?
Se, ns te amamos, em aventuras e mgoas!
Porque esse cho que embebe a gua dos rios
H de florar em meses, nos estios
E bosques, pelas guas!
Selvas e rios, serras e florestas
Brotem no solo em rumorosas festas!
Abra-se ao vento o teu pendo natal
Sobre as revoltas guas dos teus mares!
E desfraldado diga aos cus e aos mares
A vitria imortal!
Que foi de sangue, em guerras leais e francas,
E foi na paz da cor das hstias brancas!