Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

PROGRAMAÇÃO 
DE SISTEMAS I
Professor Esp. Ronie Cesar Tokumoto
GRADUAÇÃO
Unicesumar
C397 CENTRO UNIVERSITÁRIO DE MARINGÁ. Núcleo de Educação a 
Distância; TOKUMOTO, Ronie Cesar. 
 
 Programação de Sistemas I. Ronie Cesar Tokumoto. 
 Maringá-Pr.: UniCesumar, 2017. Reimpressão - 2018 
 135 p.
“Graduação - EaD”.
 
 1. Programação 2. Sistemas . 3. Engenharia 4. EaD. I. Título.
ISBN 978-85-459-0839-5
CDD - 22 ed. 005
CIP - NBR 12899 - AACR/2
Ficha catalográfica elaborada pelo bibliotecário 
João Vivaldo de Souza - CRB-8 - 6828
Impresso por:
Reitor
Wilson de Matos Silva
Vice-Reitor
Wilson de Matos Silva Filho
Pró-Reitor de Administração
Wilson de Matos Silva Filho
Pró-Reitor Executivo de EAD
William Victor Kendrick de Matos Silva
Pró-Reitor de Ensino de EAD
Janes Fidélis Tomelin
Presidente da Mantenedora
Cláudio Ferdinandi
NEAD - Núcleo de Educação a Distância
Diretoria Executiva
Chrystiano Minco�
James Prestes
Tiago Stachon 
Diretoria de Design Educacional
Débora Leite
Diretoria de Graduação e Pós-graduação 
Kátia Coelho
Diretoria de Permanência 
Leonardo Spaine
Head de Produção de Conteúdos
Celso Luiz Braga de Souza Filho
Gerência de Produção de Conteúdo
Diogo Ribeiro Garcia
Gerência de Projetos Especiais
Daniel Fuverki Hey
Supervisão do Núcleo de Produção 
de Materiais
Nádila Toledo
Supervisão Operacional de Ensino
Luiz Arthur Sanglard
Coordenador de Conteúdo
Fabiana de Lima
Design Educacional
Ana Claudia Salvadego, Isabela Agulhon Ventura
Iconografia
Ana Carolina Martins Prado
Projeto Gráfico
Jaime de Marchi Junior
José Jhonny Coelho
Arte Capa
Arthur Cantareli Silva
Editoração
Fernando Henrique Mendes
Revisão Textual
Silvia Caroline Gonçalves
Ilustração
Bruno Cesar Pardinho
Viver e trabalhar em uma sociedade global é um 
grande desafio para todos os cidadãos. A busca 
por tecnologia, informação, conhecimento de 
qualidade, novas habilidades para liderança e so-
lução de problemas com eficiência tornou-se uma 
questão de sobrevivência no mundo do trabalho.
Cada um de nós tem uma grande responsabilida-
de: as escolhas que fizermos por nós e pelos nos-
sos farão grande diferença no futuro.
Com essa visão, o Centro Universitário Cesumar 
assume o compromisso de democratizar o conhe-
cimento por meio de alta tecnologia e contribuir 
para o futuro dos brasileiros.
No cumprimento de sua missão – “promover a 
educação de qualidade nas diferentes áreas do 
conhecimento, formando profissionais cidadãos 
que contribuam para o desenvolvimento de uma 
sociedade justa e solidária” –, o Centro Universi-
tário Cesumar busca a integração do ensino-pes-
quisa-extensão com as demandas institucionais 
e sociais; a realização de uma prática acadêmica 
que contribua para o desenvolvimento da consci-
ência social e política e, por fim, a democratização 
do conhecimento acadêmico com a articulação e 
a integração com a sociedade.
Diante disso, o Centro Universitário Cesumar al-
meja ser reconhecido como uma instituição uni-
versitária de referência regional e nacional pela 
qualidade e compromisso do corpo docente; 
aquisição de competências institucionais para 
o desenvolvimento de linhas de pesquisa; con-
solidação da extensão universitária; qualidade 
da oferta dos ensinos presencial e a distância; 
bem-estar e satisfação da comunidade interna; 
qualidade da gestão acadêmica e administrati-
va; compromisso social de inclusão; processos de 
cooperação e parceria com o mundo do trabalho, 
como também pelo compromisso e relaciona-
mento permanente com os egressos, incentivan-
do a educação continuada.
Pró-Reitor de 
Ensino de EAD
Diretoria de Graduação 
e Pós-graduação
Seja bem-vindo(a), caro(a) acadêmico(a)! Você está 
iniciando um processo de transformação, pois quando 
investimos em nossa formação, seja ela pessoal ou 
profissional, nos transformamos e, consequentemente, 
transformamos também a sociedade na qual estamos 
inseridos. De que forma o fazemos? Criando oportu-
nidades e/ou estabelecendo mudanças capazes de 
alcançar um nível de desenvolvimento compatível com 
os desafios que surgem no mundo contemporâneo. 
O Centro Universitário Cesumar mediante o Núcleo de 
Educação a Distância, o(a) acompanhará durante todo 
este processo, pois conforme Freire (1996): “Os homens 
se educam juntos, na transformação do mundo”.
Os materiais produzidos oferecem linguagem dialógica 
e encontram-se integrados à proposta pedagógica, con-
tribuindo no processo educacional, complementando 
sua formação profissional, desenvolvendo competên-
cias e habilidades, e aplicando conceitos teóricos em 
situação de realidade, de maneira a inseri-lo no mercado 
de trabalho. Ou seja, estes materiais têm como principal 
objetivo “provocar uma aproximação entre você e o 
conteúdo”, desta forma possibilita o desenvolvimento 
da autonomia em busca dos conhecimentos necessá-
rios para a sua formação pessoal e profissional.
Portanto, nossa distância nesse processo de cresci-
mento e construção do conhecimento deve ser apenas 
geográfica. Utilize os diversos recursos pedagógicos 
que o Centro Universitário Cesumar lhe possibilita. Ou 
seja, acesse regularmente o AVA – Ambiente Virtual de 
Aprendizagem, interaja nos fóruns e enquetes, assista 
às aulas ao vivo e participe das discussões. Além dis-
so, lembre-se que existe uma equipe de professores 
e tutores que se encontra disponível para sanar suas 
dúvidas e auxiliá-lo(a) em seu processo de aprendiza-
gem, possibilitando-lhe trilhar com tranquilidade e 
segurança sua trajetória acadêmica.
A
U
TO
R
Professor Esp. Ronie Cesar Tokumoto
Pós-graduado em Gestão Escolar Integrada e Práticas Pedagógicas pela 
Faculdade Eficaz (2015), em tutoria em Educação a Distancia pela Faculdade 
Eficaz (2013), e em Docência no Ensino Superior pelo Centro Universitário 
Maringá (Unicesumar/2013). Bacharel em Informática pela Universidade 
Federal do Paraná (UFPR/2001). Atualmente é tutor mediador no EaD/
Unicesumar e professor na rede estadual de ensino do Paraná, em Sarandi, e 
em cursos Técnicos Profissionalizantes. Tem experiência em Coordenação de 
Curso Técnico (2013), e em palestras e eventos organizados para o mesmo 
curso. 
Para informações mais detalhadas sobre sua atuação profissional, pesquisas e 
publicações, acesse seu currículo, disponível no endereço a seguir:
http://lattes.cnpq.br/2653232632701400
SEJA BEM-VINDO(A)!
Caro(a) aluno(a), este material visa permitir que os conceitos fundamentais do desenvol-
vimento de sistemas utilizando a linguagem de programação Java sejam conhecidos e 
compreendidos de forma simples e objetiva.
O mercado de trabalho para desenvolvedores Java está aquecido, dando sinais de que 
tende a crescer ou, pelo menos, de se manter forte por um bom tempo, devido à evo-
lução da TI (Tecnologia da Informação) e das características favoráveis que a linguagem 
oferece.
A primeira unidade trata dos conteúdos básicos referentes à própria linguagem, como 
um resumo de sua história, características que a linguagem possui e oferece aos seus 
desenvolvedores, versões disponíveis de aplicações possíveis e de que forma são orga-
nizados os chamados pacotes disponibilizados pela Oracle, atual proprietária da própria 
linguagem em si, criada pela Sun, a qual foi adquirida pela referida empresa há algum 
tempo.
Na segunda unidade, são tratados conceitos relativos à linguagem em si, como as cer-
tificações oficiais sobre o desenvolvimento em linguagem Java, oferecidas pela Oracle, 
assim como os conceitos básicos sobre o processo de desenvolvimento de aplicações 
em Java, seu ambiente de desenvolvimento, plataforma de execução e formas de pro-
gramação na linguagem. Também são tratados os conceitos do processo de compilação 
e execução de códigos em linguagem Java usandoos utilitários do pacote JDK de de-
senvolvimento.
Na terceira unidade, são vistos os conceitos de programação em linguagem Java, junta-
mente com os princípios da programação envolvendo os conceitos de tipos de dados, 
variáveis, constantes e operadores. Também são vistos detalhes complementares ini-
ciais como o uso de comentários e do utilitário de documentação do pacote JDK. O uso 
da identação para um correto alinhamento de instruções também é tratado. 
Já na quarta unidade, são vistos os conceitos de fluxo de dados, juntamente com o uso 
de sua entrada e saída por meio de bibliotecas padrão Java. Também são vistos os con-
ceitos de vetores e matrizes que representam importantes estruturas de dados.
Na última unidade, temos conteúdos relacionados ao tratamento de exceções que 
possam ocorrer em tempo de execução e que sejam previsíveis, além de um pequeno 
exemplo de aplicação para auxiliar na compreensão do conteúdo geral da disciplina e 
no entendimento da fase de testes.
Assim, por meio de todo esse conteúdo, aliado à disciplina complementar de Programa-
ção de Sistemas II, será possível oferecer um material de aprendizado para uso futuro na 
carreira profissional.
APRESENTAÇÃO
PROGRAMAÇÃO DE SISTEMAS I
SUMÁRIO
09
UNIDADE I
FUNDAMENTOS DA LINGUAGEM JAVA
15 Introdução
16 Histórico Resumido da Linguagem Java 
18 Características da Linguagem Java 
20 Segurança 
22 Versões e Extensões em Java 
25 Desenvolvimento de Software Em Java 
27 Considerações Finais 
31 Referência 
32 Gabarito 
UNIDADE II
PARTICULARIDADES DA LINGUAGEM JAVA
35 Introdução
36 Ambiente de Desenvolvimento Java 
38 Plataformas Java 
41 Formas de Programação em Java 
42 Tipos de Aplicativos 
44 Pacotes de Desenvolvimento 
45 Compilação e Execução 
SUMÁRIO
10
50 Considerações Finais 
54 Referências 
55 Gabarito 
UNIDADE III
INTRODUÇÃO À PROGRAMAÇÃO JAVA
59 Introdução
60 Fundamentos de um Programa Java 
61 Instruções Básicas 
72 Expressões 
74 Identação e Espaçamento 
77 Considerações Finais 
83 Referências 
84 Gabarito 
UNIDADE IV
MANIPULAÇÃO DE DADOS
87 Introdução
88 Fluxo de Dados 
89 Entrada de Dados 
91 Saída de Dados 
95 Vetores e Matrizes 
SUMÁRIO
11
100 Considerações Finais 
104 Referências 
105 Gabarito 
UNIDADE V
COMPLEMENTOS E ESTUDO DE CASO
109 Introdução
110 Tratamento de Exceções 
117 Exemplo de Aplicação 
121 Fase de Testes 
123 Atualizações e Novas Versões 
129 Considerações Finais 
133 Referências 
134 Gabarito 
135 Conclusão 
U
N
ID
A
D
E I
Professor Esp. Ronie Cesar Tokumoto
FUNDAMENTOS DA 
LINGUAGEM JAVA
Objetivos de Aprendizagem
 ■ Conhecer a história e conceitos básicos da linguagem Java. 
 ■ Compreender os aspectos que tornam a linguagem segura.
 ■ Compreender as possibilidades de desenvolvimento de software em 
linguagem Java.
 ■ Compreender os conceitos de versão e extensão em Java.
 ■ Compreender como ocorre uma das formas de desenvolvimento de 
software.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
 ■ Histórico resumido da linguagem Java
 ■ Características da linguagem Java
 ■ Segurança
 ■ Versões e extensões em Java
 ■ Desenvolvimento de software em Java
INTRODUÇÃO
Ao iniciar os estudos sobre a programação de sistemas utilizando a linguagem 
Java, temos uma grande ferramenta de trabalho para conhecer e explorar, de 
forma a construir uma base de conhecimento para preparar futuros profissio-
nais da área de desenvolvimento, complementando o aprendizado obtido em 
outras disciplinas e linguagens, como a linguagem C. 
Nesta primeira unidade, serão tratados os aspectos fundamentais do desen-
volvimento de aplicações em Java, como sua história e demais detalhes referentes 
à poderosa e popular ferramenta de trabalho.
Iniciando os estudos por meio da história da linguagem, é possível com-
preender o motivo de sua criação e de que forma ocorreu sua evolução, desde a 
implementação até as atuais modificações que mantêm a linguagem atual e aten-
dendo às necessidades do mercado. 
São expostas também algumas características da linguagem, citando-se a 
conexão com o desenvolvimento voltado à Internet e à forma pela qual são gera-
das aplicações em Java. 
Segurança é um requisito muito importante no desenvolvimento de apli-
cações e a linguagem Java permite um bom nível de segurança pela forma de 
desenvolvimento e execução de suas aplicações. 
Nesta unidade são apresentadas informações sobre como esse nível de segu-
rança é garantido e de que forma isso ajuda na popularização da linguagem para 
o desenvolvimento de projetos para as mais diversas finalidades. 
Também será trabalhada a versatilidade da linguagem na criação de diferen-
tes tipos de aplicação para as mais diversas plataformas (sistemas operacionais).
Finalmente, a forma como pode ser desenvolvida uma aplicação é tratada para 
mostrar que existem diversas alternativas de softwares próprios para o desenvol-
vimento de aplicações, chamados de ambientes integrados de desenvolvimento, 
capazes de oferecer diversos recursos de auxílio ao desenvolvimento de software.
Introdução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
15
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E16
HISTÓRICO RESUMIDO DA LINGUAGEM JAVA
Olá caro(a) aluno(a), neste primeiro tópico, é importante citar que a linguagem 
foi concebida durante a década de 1990, na Sun Microsystems. Seus idealizadores 
foram James Gosling, Patrick Naughton, Chris Warth, Ed Frank e Mike Sheridan. 
Inicialmente com o nome de Oak, o qual, posteriormente, foi alterado para Java 
em 1995 (MANZANO, 2011), seu propósito inicial não era a Internet, mas apa-
relhos domésticos como linguagem para programação embarcada. 
Com a popularização da World Wide Web, o propósito da linguagem ser 
independente de plataforma ou hardware impulsionou a evolução da linguagem 
para que pudesse se adequar às necessidades da programação web. Sua forma 
singular de programação e a forma como permitia que o uso da Internet fosse 
muito mais interativo e repleto de novas possibilidades garantiram essa onda 
de profissionais interessados em desenvolver aplicações com a nova linguagem.
Assim como a tecnologia e a Internet, a linguagem teve atualizações em ver-
sões que foram sendo criadas para atender novas demandas e oferecer melhorias 
para o desenvolvimento web. A Sun desenvolvia novos pacotes para as novas 
versões, denominadas como J2SE, acrescidas de números indicativos da versão 
a partir 2, versões como J2SE 1.3, 1.4 e 5 foram surgindo e agregando funções 
ao desenvolvimento de programas. Conforme citado por Manzano (2011), a 
versão J2SE 5 representou uma segunda revolução na linguagem e, por isso, 
Histórico Resumido da Linguagem Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
17
mudou o padrão de numeração definido pelas duas versões anteriores, pois além 
de melhorias no ambiente de desenvolvimento e alguns recursos importantes, 
a quinta versão reformulou certos aspectos da linguagem. Ela agregou recursos 
como os tipos genéricos, uma evolução no uso do laço de repetição for, uso de 
anotações, enumerações, uso de importação estática e argumentos em quanti-
dades variáveis, por exemplo.
A versão seguinte, Java SE 6 (forma reduzidade Java Plataform, Standard 
Edition 6), gerou aprimoramentos nas bibliotecas APIs, novos pacotes e otimi-
zações para a execução dos softwares desenvolvidos.
Na versão seguinte, Java SE 7, novos recursos foram adicionados, como mais 
incrementos em suas bibliotecas APIs, melhorias no tratamento de exceções e 
mudanças no uso da instrução switch.
Um ponto marcante da versão 7 foi o fato de ser uma primeira versão lançada 
após a aquisição da empresa Sun pela Oracle, em 2009, fato que, como sempre 
ocorre em negociações entre grandes companhias de tecnologia, cria muita apre-
ensão no mercado. A Figura 1 mostra uma versão do mascote Duke utilizado 
oficialmente pela companhia para representar seu novo produto.
Figura 1- Mascote Duke criado para o projeto *7 de 1992
Fonte: Oracle (2009, on-line)1.
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E18
Em 2016, foi lançada a versão 8, que promete grandes mudanças, as quais incluem 
a transformação na ideia da programação embarcada para a tendência da “Internet 
das Coisas”, programação em nuvem, possibilidade do uso de objetos genéricos, 
melhoria no tratamento de exceções, lambdas e anotações. Parte das novas fun-
cionalidades fará parte do escopo do livro por serem relevantes aos conteúdos do 
material, e os demais conteúdos podem ser buscados em outras fontes de pesquisa 
complementares sugeridas ao longo das unidades (ORACLE, [2017], on-line)2.
CARACTERÍSTICAS DA LINGUAGEM JAVA
Algumas características fundamentais da linguagem Java são a programação 
baseada no paradigma orientado a objetos que, diferentemente do paradigma 
estruturado, é baseia no conceito de classes instanciadas em objetos indepen-
dentes para melhorar o reuso de código.
Além da reusabilidade, a portabilidade também é uma característica impor-
tante da linguagem, a qual garante que um mesmo código possa ser compilado e 
Características da Linguagem Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
19
executado em diferentes plataformas (“write once, run anywhere”). Essa carac-
terística também melhora a possibilidade de divulgação de aplicações e sua 
distribuição, pois, sendo portátil, não é necessário criar versões específicas e, 
assim, toda aplicação acaba sendo multiplataforma. Possui recursos de rede por 
meio de bibliotecas para lidar com protocolos TCP/IP, HTTP e FTP, mantendo 
níveis de segurança aceitáveis pela restrição de execução.
Outra característica que ajudou a popularização da linguagem Java foi sua 
sintaxe baseada na linguagem C++ que já era popular há muito tempo, além da 
linguagem C++ conter uma grande quantidade de bibliotecas disponíveis para 
facilitar a codificação. A linguagem JAVA, assim como a linguagem C++, não se 
utilizam de ponteiros nem registros, pois ambos os elementos podem ser subs-
tituídos por outros do paradigma orientado a objetos que permitem o uso de 
recursos que podem ser até superiores em termos de programação e resultados 
computacionais (desempenho, facilidade de implementação e controle). Além 
dessas características, algumas técnicas, como desalocação automática de memó-
ria por meio de coletor de lixo e carregamento independente de componentes 
(classes) em tempo de execução.
Por ser uma linguagem com boa ortogonalidade (pouca redundância no desen-
volvimento de código), acaba proporcionando facilidade no desenvolvimento e 
interpretação de código. Permite programação web através de APIs próprias para 
trabalho com protocolos TCP/IP, FTP e HTTP, além de possibilidade de integra-
ção com linguagens próprias para web, como HTML e Javascript. Por ser uma 
linguagem fortemente tipada, os dados processados são mais precisos e passí-
veis de validação, reduzindo a ocorrência de imprevistos em tempo de execução.
 ■ Realiza a inicialização básica automática de variáveis criadas facilitando 
a prevenção de erros decorrentes de dados indevidos já existentes na área 
reservada em memória para cada variável criada.
 ■ Permite programação de aplicações concorrentes que possam aproveitar 
recursos avançados de hardware por meio de técnicas como multithreads 
(processos podem responder solicitações concorrentemente ou simul-
taneamente), e monitores (sincronia entre duas ou mais tarefas que 
compartilham recursos).
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E20
O código fonte JAVA é compilado e gerado o código bytecode, que posterior-
mente se executado por uma JVM em tempo real. Esse processo reduz eficiência 
computacional, mas pela portabilidade proporcionada, acaba se tornando menos 
relevante para a maioria das aplicações atuais devido os melhores recursos de 
hardware e software.
SEGURANÇA
Um ponto importante no desenvolvimento de programas em Java é que, o código é 
compilar na geração do software. Códigos maliciosos não são executados diretamente 
Conhecer bem sua ferramenta de trabalho é fundamental e o mesmo vale 
na programação. Como se preparar para um mercado tão competitivo?
Segurança
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
21
sobre o sistema operacional, pois a interpretação dos arquivos intermediários Java 
(bytecode) e applets é restrita aos ambientes próprios para esses arquivos.
Assim, não tendo acesso livre fora do ambiente de interpretação de byteco-
des, não há motivo para códigos maliciosos se infiltrarem nesses tipo de arquivo 
e acabarem não sendo efetivos.
Além da segurança embutida pelo próprio sistema de uso de aplicações em 
Java, existem diversas outras formas de aumentar o nível de segurança e da garantia 
de uma correta execução por meio de diversos mecanismos adicionais, na forma 
de outros softwares que tenham função de segurança agregados ao sistema ope-
racional, como antivírus e ferramentas de proteção a invasões e perdas de dados.
Também existe a segurança que pode ser implementada na própria aplica-
ção por meio de mecanismos de segurança programados como autenticação de 
usuários, tratamento de exceções, validação de dados, e recursos programados 
como backup automático, por exemplo.
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E22
VERSÕES E EXTENSÕES EM JAVA 
Figura 2 - Tela de download do plugin Java para navegadores, versão 8
Fonte: Java ([2017], on-line)2. 
Em decorrência das contínuas evoluções da linguagem, mudanças ocorreram 
em sua forma de uso e nas aplicações desenvolvidas de acordo com as demandas 
do mercado. Assim, um recurso largamente utilizado até então - os chamados 
applets, que são aplicações criadas para serem executadas como elementos em 
páginas da Internet - perderam sua força devido às guerras travadas entre as 
empresas desenvolvedoras de software para web.
Estas resolveram utilizar os recursos oferecidos pelo Javascript e HTML 5, 
que acabaram por substituir estas aplicações feitas em Java devido à necessidade 
do uso de plugins adicionados aos navegadores, os quais geravam dependência 
das mudanças que muitas vezes mostravam incompatibilidades entre applets 
criados em diferentes implementações da linguagem e versões dos plugins.
A proposta da versão 8 da linguagem Java é oferecer melhores condições 
para a produção de software embarcado, podendo criar uma nova onda na área 
de Tecnologia da Informação.
Versões e Extensões em Java 
Re
pr
od
uç
ão
 p
ro
ib
id
a.A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
23
J2ME (MICRO-EDITION FOR PDAS AND CELL PHONES)
Pacote de desenvolvimento próprio para aplicativos para dispositivos móveis 
e embarcados, em que a forma como essas aplicações se comportam difere das 
demais plataformas devido às restrições físicas, como tamanho da tela e desem-
penho de hardware (ORACLE, [2017], on-line)2.
Aplicações para smartphones, tablets, aparelhos GPS, e eletrônicos mais 
modernos em geral, que contenham sistemas embarcados como geladeiras, reló-
gios e TVs do tipo Smart, os quais possuam recursos como acesso à Internet, 
baseiam-se na ideia de uma forte otimização no desenvolvimento de código para 
se adequar a recursos mais limitados de hardware em termos de memória tem-
porária e permanente, principalmente. Alguns dispositivos são potentes, mas 
apenas uma porcentagem dos usuários desse tipo de tecnologia possui apare-
lhos com grande poder computacional.
Em função dessa disparidade de equipamentos, códigos otimizados permi-
tem que todos tenham acesso aos aplicativos desenvolvidos, independentemente 
do dispositivo que utilizado ou do potencial do hardware a ser usado; é possível 
ajustar o código para adequar o desempenho do software, permitindo que sof-
twares sejam embarcados em dispositivos diversos.
Na onda da “Internet das coisas”, objetos antes capazes de funcionalidades 
bem específicas puderam adicionar novas funções com a inclusão de tecnologia 
e softwares embarcados capazes de adicionar novas funcionalidades aos obje-
tos. Roupas inteligentes capazes de realizar monitoramentos e eletrodomésticos 
conectados à Internet são exemplos de como a tecnologia está sendo capaz de 
alterar a forma de utilização dos objetos.
Importa destacar a preocupação que há quanto à evolução tecnológica, a qual 
está sendo retardada pela falha na infraestrutura necessária para oferecer ser-
viços de conectividade de qualidade, a fim de que os dispositivos possam estar 
conectados em qualquer lugar e com boa velocidade de transmissão e recepção 
de dados. Além da infraestrutura desequilibrada em todo planeta, não existem 
padronizações a produção desses dispositivos o que gera diferenças na produ-
ção de software e suas etapas, desde o desenvolvimento até o uso.
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E24
J2SE (STANDARD EDITION) 
Pacote padrão para desenvolvimento e execução de aplicações Java contendo o 
compilador Javac e a máquina virtual JVM, além das bibliotecas (API) da lin-
guagem, e alguns utilitários como Javadoc (ORACLE, [2017], on-line)1.
J2EE (ENTERPRISE EDITION) 
Pacote mais completo que o J2SE, pois além dos componentes citados neste 
pacote, são incluídas as funcionalidades para a produção de aplicações corpo-
rativas (ORACLE, [2017], on-line)2.
JMX (JAVA MANAGEMENT EXTENSIONS)
Pacote para desenvolvimento de aplicações distribuídas, baseadas em web, imple-
mentado para a versão 5 da linguagem, mantendo seu uso em versões posteriores 
(ORACLE, [2017], on-line)2.
O mercado de desenvolvimento em Java sofre alterações frequentes e tipos 
de aplicações que, em determinado momento, podem ser muito populares. 
Com o passar do tempo, pode praticamente desaparecer, como é o caso 
dos applets que, por mudanças nas políticas dos desenvolvedores de na-
vegadores, estão deixando de manter a compatibilidade com plugins flash 
necessários para execução dos applets.
Esses plugins servem como máquinas virtuais Java integrados aos nave-
gadores para executar os miniaplicativos desenvolvidos e que tiveram um 
auge recente como opções de marketing e entretenimento na Internet.
Fonte: o autor.
Desenvolvimento de Software Em Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
25
DESENVOLVIMENTO DE SOFTWARE EM JAVA
O desenvolvimento de software é uma das áreas mais importantes dentro do 
mercado de tecnologia da informação e depende diretamente de escolhas que 
são feitas durante o processo, desde a qualidade e quantidade de componentes 
da equipe para o projeto, até a escolha de quais linguagens poderão ser utiliza-
das no desenvolvimento dos softwares. Aliado a isso, é fundamental que, além 
do sucesso dos projetos, os custos e tempo sejam minimizados e a qualidade do 
produto seja mantida em bons níveis para aceitação. 
Usar a linguagem Java como alternativa para codificação faz com que o pro-
gramador lide com uma forma diferente de trabalho e funcionamento, na qual o 
código fonte não gere um arquivo executável, a exemplo do que ocorre com as lin-
guagens de programação compiladas para o desenvolvimento de software em geral.
Nesta linguagem, o código deve ser criado e salvo com extensão java em 
qualquer ambiente de desenvolvimento integrado (IDE) ou editor de textos sem 
formatação de tipo algum como nas demais linguagens de programação, pois 
não são considerados arquivos de texto como os arquivos do tipo doc utilizados 
na produção de documentos contendo formatações, imagens e outros elementos 
não utilizados em arquivos de código de quaisquer linguagens de programação.
Temos como exemplos de IDEs populares utilizados pelos profissionais 
de desenvolvimento de software a Netbeans ou Eclipse como opções muito 
populares entre os desenvolvedores, pelo fato de serem eficientes e gratuitas. 
FUNDAMENTOS DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IU N I D A D E26
O desenvolvimento por meio de editores de texto simples, como o Bloco de 
Notas, que faz parte dos acessórios do sistema operacional Windows, é uma 
opção viável, pois por já fazer parte do sistema operacional, sabe-se que é total-
mente compatível e que não depende da aquisição de softwares adicionais para o 
desenvolvimento. Isso aumenta o nível de segurança para o hardware a ser utili-
zado pela não necessidade de buscas na Internet para download desses softwares 
com ambientes de desenvolvimento integrado. Nos livros de programação I e 
II, durante o desenvolvimento de exemplos em Java, foi utilizado como padrão 
o desenvolvimento sem o uso destes ambientes integrados para não tirar o foco 
da programação em si.
A forma com que se desenvolvem os códigos não influencia a qualidade dos 
softwares criados, mas pode influenciar o tempo de desenvolvimento e o modo 
de trabalho durante a codificação.
Para focar o estudo na linguagem em si, serão desconsiderados o uso de quais-
quer ferramentas simplificadoras como IDEs (conforme citado) ou Frameworks, os 
quais trazem muita facilidade, pois eliminam etapas importantes do aprendizado.
Paralelamente ao estudo da disciplina, é normal que você busque outras 
fontes ou alternativas de desenvolvimento de códigos. Porém, para a disciplina 
em si, deve ser focado o desenvolvimento baseado no que é visto na mesma, 
desconsiderando alternativas pesquisadas, pois isto prejudica a avaliação dos 
conhecimentos.
Considerações Finais
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
27
CONSIDERAÇÕES FINAIS
Nesta unidade, foi possível observar que uma série de detalhes indica os moti-
vos da grande popularidade da linguagem Java e servem de parâmetro para o 
início dos estudos da linguagem.
Tendo sua história inicialmente indicando uma finalidade distinta do atual 
uso da linguagem, seu uso para desenvolvimento de aplicações para diferentes 
sistemas operacionais e tendoforte ligação com a Internet, temos que a lin-
guagem Java evolui de forma a acompanhar as mudanças que ocorrem com a 
Internet e sua rápida evolução.
Suas características indicam que, por ser uma linguagem com boa facilidade 
de aprendizado e bons níveis de segurança, tornou-se preferência entre os pro-
fissionais desenvolvedores de sistemas em função da chamada portabilidade, a 
qual permitiu o desenvolvimento de uma única versão de uma aplicação para 
diferentes sistemas operacionais.
Outro ponto fundamental é a possibilidade de criação de uma variedade de 
aplicações por meio de diferentes pacotes de desenvolvimento disponibilizados e indi-
cados para o desenvolvimento de aplicações para dispositivos móveis, por exemplo.
Também foram tratadas opções de desenvolvimento de aplicações por meio de 
ambientes integrados capazes de oferecer ferramentas facilitadoras do trabalho de 
programadores com recursos automatizados e de auxílio à construção de código.
Assim, é possível observar que a linguagem Java permite que sejam cria-
das aplicações com tranquilidade, pois, além de recursos muito bons da própria 
linguagem, há ferramentas que auxiliam o processo de desenvolvimento e per-
mitem que o profissional tenha ajuda no desenvolvimento de suas aplicações.
Dando continuidade, na segunda unidade, será focada a parte relativa ao 
ambiente e às plataformas de execução de aplicações, além das opções de aplica-
ções que podem ser desenvolvidas para diferentes fins. Finalmente, é explanado 
o processo de compilação e execução de códigos.
28 
CERTIFICAÇÕES 
Existem certificações diversas que podem ser feitas para comprovar conhecimentos 
avançados em programação Java, além de proporcionar um incremento no currículo 
pessoal. Essas certificações são importantes para o mercado de trabalho, pois são com-
provações que mostram o preparo do profissional dentro de uma especialidade e ser-
vem de parâmetro para contratações.
Alguns tipos de certificações da Oracle para Java podem ser Oracle Certified Enterprise 
Architect (OCEA), Oracle Certified Mobile Application Developer (OCMAD), Oracle Certi-
fied Developer For Java Web Services (OCDJWS), Oracle Certified Business Component 
Developer (OCBCD), Oracle Certified Web Component Developer (OCWCD), Oracle Cer-
tified Java Developer (OCJD), Oracle Certified Java Programmer (OCJP), Oracle Certified 
Java Associate (OCJA) (ORACLE, [2017], on-line)2. 
Cada certificação se presta a uma habilidade específica de uma plataforma e linguagem 
Java. Todos os testes são realizados por uma empresa chamada Person VUE, sendo acei-
tos internacionalmente (ORACLE, [2017], on-line)2.
Observando as opções existentes de certificações, vemos que existe uma sequência ló-
gica que pode ser seguida de forma que a construção do conhecimento seja gradativa 
e mais eficiente.
Ter diferencial no mercado de trabalho por meio de certificações diversas é muito im-
portante, mas não adianta ter certificações e não ser capaz de aplicar o que é visto na 
teoria em prática com eficiência.
É preciso praticar muito os conceitos vistos para que sejam realmente úteis para o mer-
cado de trabalho, pois na área de tecnologia, o saber notório é muito comum e por 
vezes suficiente para muitas empresas.
Mas os melhores empregos demandam exigências e responsabilidades maiores que jus-
tificam maiores salários e cargos em empresas que tendem a crescer rapidamente, da 
mesma forma que podem também desaparecer, pois a área de tecnologia se modifica 
rapidamente.
Para o mercado, tanto a graduação quanto a certificação são diferenciais curriculares, 
assim como a experiência de trabalho. Para se destacar, é interessante acumular todos 
esses diferenciais. 
Fonte: o autor.
29 
1. A linguagem Java possui uma característica fundamental que é a programação 
baseada em um paradigma de programação específico. Com as novas imple-
mentações, está agregando conceitos de outro paradigma. Quais os nomes 
desses dois paradigmas aos quais se refere o enunciado?
2. Uma das bases da implementação da linguagem Java foi a linguagem C++, que 
serviu de base para boa parte da sintaxe do Java. Diversos recursos de uma lin-
guagem são utilizados na outra, mas existem dois que não estão presentes de-
vido à forma como é programar em java e seu paradigma. Cite esses recursos 
importantes que são implementados de forma distinta em Java com rela-
ção à linguagem C++.
3. Uma forte característica da linguagem Java é a sua portabilidade de código. O 
que vem a ser característica?
4. Para garantir esta portabilidade citada na questão anterior, um código em Java 
não é executado diretamente, como ocorre na interpretação de linguagens 
como HTML, mas por meio de passos. Um desses passos é a compilação do códi-
go escrito em linguagem Java em um tipo de arquivo intermediário e compatí-
vel com a plataforma a ser interpretada. Como se chama esse arquivo interme-
diário gerado pelo compilador Java e como se chama o compilador?
5. Dentre os tipos de aplicações desenvolvidas em Java temos um chamado J2ME, 
voltado para um destes tipos. Descreva qual seria este tipo de aplicação e 
para qual tipo de uso.
MATERIAL COMPLEMENTAR
Java - Como Programar - 8. ed. 2010
Paul J. Deitel e Dr. Harvey M. Deitel
Editora: Prentice Hall
Sinopse: Já em sua oitava edição, este livro completo 
aborda inúmeros conceitos associados à programação 
em linguagem Java, abordando desde a programação 
básica, teoria do paradigma orientado a objetos e 
criação de interfaces grá� cas.
REFERÊNCIAS
31
MANZANO, J. A. N. G. Java 7 - programação de computadores: guia prático de 
introdução, orientação e desenvolvimento. 1 ed. São Paulo: Érica, 2011.
ORACLE, University. JAVA SE. [on-line]; Disponível em: http://education.oracle.com/
pls/web_prod-plq-dad/ou_product_category.getPage?p_cat_id=267. Acesso em 
29 mai. 2017.
REFERÊNCIAS ON-LINE
1 Em: <https://www.java.com/pt_BR/download/win10.jsp> Acesso em: 29 mai. 2017
2 Em: <http://www.oracle.com/technetwork/articles/javaee/javaee6overview-
-part2-136353.html> Acesso em: 08 jun. 2017
GABARITO
1) Ponteiros e Registros.
2) Orientado a Objetos e Funcional.
3) Capacidade de um mesmo código poder ser executado em diferentes platafor-
mas e sistemas operacionais sem a necessidade de alterações no código, tendo 
apenas que utilizar para cada plataforma a JVM compatível e adequada.
4) Bytecode gerado pelo compilador Javac.
5) É relativo às aplicações para dispositivos móveis com menor capacidade de 
hardware, normalmente como telas menores ou hardware menos potente em 
termos de processamento ou armazenamento temporário e permanente.
U
N
ID
A
D
E II
Professor Esp. Ronie Cesar Tokumoto
PARTICULARIDADES DA 
LINGUAGEM JAVA
Objetivos de Aprendizagem
 ■ Complementar os conceitos iniciais vistos na unidade anterior. 
 ■ Conhecer como se pode desenvolver software em Java tendo acesso 
a exemplos de plataformas e ambientes de desenvolvimento.
 ■ Saber como pode ocorrer o processo de programação em Java.
 ■ Conhecer quais são os tipos de aplicativos criáveis em Java.
 ■ Entender conceitos de pacotes de desenvolvimento e como ocorre a 
compilação e execução em Java.
 ■ Compreender como ocorre o processo de uso de uma aplicação 
desenvolvida.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
 ■ Ambiente de desenvolvimento Java
 ■ Plataformas Java
 ■ Formas de programação em Java
 ■ Tipos de aplicativos
 ■ Pacotes de desenvolvimento
 ■ Compilação e execução
INTRODUÇÃO
Iniciamos uma nova etapa de estudos. Essa segunda unidade complementa a 
unidade anterior, em que vimos conceitos relacionados à história da linguagem 
Java, e detalhes mais técnicos como suas características e funcionalidades que 
permitiram à linguagem se tornar tãopopular.
Nesta unidade, damos continuidade ao conhecimento de aspectos da lin-
guagem Java, mencionando aspectos de como é o funcionamento de aplicações 
em linguagem Java, tratando de como estas aplicações necessitam de um sof-
tware para interpretação das aplicações em cada diferente sistema operacional.
Comentaremos também como as evoluções tecnológicas afetam constan-
temente o mercado de desenvolvimento, criando demandas e abrindo espaços 
para novas linguagens e oportunidades, fazendo com que constantes mudanças 
na implementação da linguagem Java sejam necessárias para manter sua atrati-
vidade entre os profissionais.
As opções de aplicações diferentes possíveis de serem desenvolvidas também 
são retomadas para reforçar sua flexibilidade na criação de software e acrescentar 
pontos adicionais sobre tipos de aplicações e o uso de interfaces gráficas em projetos.
Recursos complementares, como bibliotecas com conteúdo pronto para uso 
em novos projetos são citados para mostrar, a exemplo do que ocorre em outras 
linguagens, que criar um banco de bibliotecas prontas pode facilitar e melhorar 
o processo de desenvolvimento.
Para o trabalho com Java, é preciso ter instalado na estação de trabalho um 
pacote de desenvolvimento de acordo com a plataforma instalada para realizar 
os procedimentos de compilação e execução de aplicações, além de outros recur-
sos adicionais citados ao longo do livro.
Para finalizar, o processo em si de compilação e geração do arquivo inter-
mediário para execução é tratado na última parte da unidade, exemplificando 
de que forma proceder para realizar estas etapas do desenvolvimento e teste de 
aplicações.
Seguindo adiante, na próxima unidade serão tratados os fundamentos da 
programação na linguagem Java e os primeiros aspectos como tipos de dados e 
instruções básicas já poderão ser conhecidos.
Introdução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
35
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E36
AMBIENTE DE DESENVOLVIMENTO JAVA
Olá, caro(a) aluno(a). É importante citar que neste primeiro tópico, indepen-
dentemente da opção de editor ou ambiente de desenvolvimento utilizado para 
criar programas em Java, um arquivo contendo código na linguagem Java com 
extensão “java” é convertido para criar arquivos bytecode com extensão “class” 
através de um compilador Javac, por exemplo.
Em um ambiente de desenvolvimento, o compilador Javac é componente pré-
-instalado ou que pode ser adicionado no caso de ambientes que podem aceitar 
mais de uma linguagem de programação diferentes. Este ambiente é capaz de 
compilar o código Java para geração do arquivo bytecode e interpretar o código 
em tempo real para testes de execução de dentro do próprio ambiente de desen-
volvimento (MANZANO, 2011).
Bytecodes são interpretados e executados por meio de máquinas virtu-
ais chamadas de Java Virtual Machine (JVM), que funcionam como um tipo 
de software que emula um ambiente padrão para execução de código bytecode 
próprio para cada plataforma na qual seja executado. Esse arquivo intermediá-
rio bytecode elimina incompatibilidades entre um programa Java codificado e 
as diversas plataformas em que pode ser executado, pois a máquina virtual Java 
tem versão própria para cada plataforma (MANZANO, 2011).
A JVM carrega o arquivo bytecode para memória principal do hardware, 
verifica o arquivo na busca de possíveis ameaças ao próprio sistema operacio-
nal em que será executado, e, por fim, o programa é executado de forma híbrida 
entre interpretação e compilação Just-in-Time (JIT) (MANZANO, 2011).
Ambiente de Desenvolvimento Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
37
Basicamente, no processo de execução de bytecodes em uma JVM, o compi-
lador converte partes essenciais destes arquivos bytecode utilizados com maior 
frequência em código de máquina para melhorar o tempo de execução, e os 
demais componentes do bytecode são interpretados de acordo com a execução 
em função de não serem elementos prioritários à execução.
A Figura 1 mostra um diagrama simplificado do processo completo que 
ocorre na linguagem Java, desde a criação do código até a execução do software 
compilado. É importante observar que o diagrama não se altera para as diversas 
plataformas em que seja desenvolvido. 
Figura 1 - Diagrama simplificado da criação de software com Java
Fonte: o autor.
Programar em linguagem Java oferece uma vantagem muito interessante, que 
influenciou em sua grande popularização - chamada de portabilidade -, na qual um 
mesmo código pode ser utilizado em diferentes sistemas operacionais. Por meio da 
portabilidade, códigos criados em linguagens que contemplam esta característica 
reduzem o tempo de desenvolvimento de softwares por não serem necessárias ver-
sões diferentes para cada plataforma em ques serão executados (MANZANO, 2011).
Na área de desenvolvimento de software, a redução de tempo não é a única 
vantagem, pois a portabilidade facilita a contratação de mão de obra especiali-
zada, e a mesma necessita de um menor tempo de desenvolvimento devido a não 
necessidade de desenvolver mais de uma versão do mesmo software.
Muitos profissionais da programação dizem que aplicações em Java são len-
tas e as descartam em situações com exigência de desempenho. Mas então, 
por que existem equipamentos que rodam com Java?
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E38
PLATAFORMAS JAVA
Aplicações desenvolvidas em Java permitem forte portabilidade, o que é comen-
tado diversas vezes em qualquer literatura sobre a linguagem, já que representa 
um de seus grandes trunfos, que permitiram a rápida e enorme popularização da 
linguagem.
No caso da linguagem Java, é usado um software emulador chamado de 
máquina virtual (JVM) e as chamadas API Java (Java Application Programming 
Interface), que são compostas por coleções de componentes de software prontos, 
contendo classes e métodos prontos para manipulação de estruturas de arquivos 
ou construção de aplicações gráficas, por exemplo (MANZANO, 2011).
Esta forma de desenvolvimento permite que cada sistema operacional dife-
rente, chamado de plataforma dentro do aprendizado neste livro, possua uma 
JVM adaptada ao seu sistema e permita que um mesmo código desenvolvido 
em Java possa ser executado em qualquer plataforma sem a necessidade de alte-
rações no código, salvo em casos em que algum recurso for inexistente ou não 
contemplado pela própria linguagem para determinada plataforma.
Figura 2 - Ilustração sobre plataformas de execução de aplicações
Plataformas Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
39
Cada API é como um arquivo contendo classes, métodos e interfaces agrupa-
das em pacotes, mas estes conceitos serão abordados no decorrer do livro em 
momentos oportunos e se necessário.
Tendo forte atuação no mercado de aplicativos para a plataforma Android 
da Google, conseguiu muito de sua popularidade por meio da Internet, tendo 
aplicativos desenvolvidos em uma quantidade absurda por grandes empresas 
desenvolvedoras e programadores independentes.
No caso da plataforma Android, o desenvolvimento de aplicações permitiu 
que a linguagem se popularizasse e muitos bons programadoressaíssem do ano-
nimato para reconhecimento quase instantâneo, por meio de aplicativos muito 
bem sucedidos. Em outras plataformas, como Linux e Windows, também acabou 
sendo muito utilizada a linguagem devido à portabilidade e capacidade de, além 
do desenvolvimento de softwares completos, pequenos plugins chamados Applets, 
que foram populares por muito tempo para dinamizar a navegação na Internet.
É possível perceber que a grande comunidade de desenvolvedores Java 
continua criando componentes e aplicações o tempo todo, incentivando cons-
tantemente grandes evoluções na linguagem, devido à gama de profissionais de 
desenvolvimento de diversos tipos de software que utilizam a linguagem Java e se 
adaptam às evoluções e necessidades do mercado da tecnologia da Informação.
Atualmente, com a evolução da Internet das Coisas, a qual permitiu que o 
hardware estivesse cada vez mais próximo do usuário em dispositivos antes igno-
rados em termos de software (como relógios), a linguagem se adapta às novas 
necessidades de aplicações e, assim, mantém-se forte no mercado.
Pode ocorrer de alguma linguagem mais recentes no mercado, como as lin-
guagens Go da Google, Hack do Facebook, ou Swift da Apple, desbancarem o 
reinado das linguagens C, C++ e Java no mercado de desenvolvimento. Mas ainda 
parece algo pouco provável, por motivos de portabilidade reduzida ou inexis-
tente, ou menor flexibilidade no desenvolvimento de diferentes tipos de software.
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E40
Linguagens de programação têm o poder de criar software, mas a correta 
escolha entre as linguagens é baseada em diversos aspectos, já que muitas 
linguagens são específicas para certos sistemas operacionais e plataformas, 
ou para desenvolver tipos específicos de aplicação.
Além disso, aspectos como popularidade e recursos que a linguagem possui 
para facilitar o desenvolvimento também são importantes na definição da 
ferramenta de trabalho.
Conhecer mais de uma linguagem de programação amplia a oferta de op-
ções de trabalho, mas é bom sempre ter uma linguagem principal, sobre a 
qual o desenvolvedor possua um maior domínio e seja capaz de produzir 
aplicações mais complexas.
A dúvida persiste em relação a qual linguagem focar e qual a primeira a 
aprender. É interessante buscar as linguagens líderes em popularidade e 
com maior volume de desenvolvedores que a utilizam, pois a chance de a 
linguagem durar um tempo maior é grande. Mas é preciso levar em conside-
ração a forma como o desenvolvedor queira trabalhar e o tipo de software 
que desejo programar.
Fonte: o autor.
Formas de Programação em Java
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
41
FORMAS DE PROGRAMAÇÃO EM JAVA
A linguagem Java é bastante versátil e permite a criação de diversos tipos de sof-
tware, sendo que estes podem ser utilizados em diferentes fi nalidades, desde que 
sejam executados pelas JVM adequadas para cada sistema operacional em desk-
tops comuns, notebooks ou equipamentos como dispositivos móveis, por exemplo.
Outra forma bastante comum é a criação de “miniaplicativos” ou applets, que 
são executados como complementos para navegadores utilizando appletviews 
para implementar funções adicionais a páginas web como jogos ou anúncios 
interativos, como já mencionado.
Um ponto a ser observado é que estes appletviews precisam ser compatíveis 
e estarem disponíveis nos navegadores, permitindo atualizações constantes por 
parte de seus desenvolvedores. No entanto, isso pode causar um inconveniente, 
pois algumas aplicações prontas e funcionais podem não ser totalmente compa-
tíveis com as atualizações dos appletviews e podem gerar erros em sua execução 
ou falhas repentinas (MANZANO, 2011).
A criação de bibliotecas é uma excelente forma de divulgação do profi ssio-
nal e de contribuição para a comunidade de desenvolvedores, espalhados ao 
redor do mundo, pois proporciona contato com profi ssionais que podem vir a 
ser grandes parceiros de trabalho.
Aplicativos para dispositivos móveis e soft wares de maior porte, como jogos, 
também são responsáveis por boa parte dos profi ssionais da área de desenvol-
vimento, permitindo a estes ganhos fi nanceiros diretos com a venda destes 
aplicativos, ou ganhos com itens para estas aplicações como ocorre com grande 
quantidade de jogos, os quais, muitas vezes, são até disponibilizados gratuita-
mente, mas possuem diversos itens pagos.
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E42
Sistemas complexos podem ser desenvolvidos na linguagem Java por meio 
do agrupamento de diversas classes nos chamados “pacotes”, os quais permi-
tem que aquelas que estejam ali incluídas possam se comunicar e funcionar 
conjuntamente. 
É interessante observar que o dia a dia mostra novas oportunidades, e que o 
contato com empresas e comunidades pode gerar inúmeras formas de trabalho 
com a linguagem, no desenvolvimento de variados softwares com finalidades 
específicas. 
TIPOS DE APLICATIVOS 
Além de possibilitar formas de programação diferenciadas de acordo com o 
tipo de software a ser desenvolvido, é possível criar dois tipos básicos diferentes 
de software. O primeiro é voltado a sistemas que necessitam de melhor desem-
penho em detrimento de uma interface amigável, ou, de forma alternativa, que 
sejam executados em terminais simples ou servidores em modo texto, chama-
dos de softwares de modo console (MANZANO, 2011).
Estes softwares não apresentam o tipo de interface gráfica padrão dos atu-
ais sistemas operacionais, mas são adequados para softwares que rodam em 
segundo plano ou que não necessitem de interface gráfica para facilitar seu uso, 
Tipos de Aplicativos 
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
43
permitindo uma aparência simples, porém capaz de atender às necessidades para 
as quais foram desenvolvidos.
Outra categoria de software é a desenvolvida para modo gráfico, que gera 
códigos maiores, de menor desempenho em geral, mas com uma interface muito 
mais amigável, própria para uso constante em sistemas operacionais gráficos 
como Windows, Linux, Android e OSX. Estas aplicações oferecem vantagens 
em troca da perda de desempenho como melhor aparência e experiência para 
usuários quando conectados ou não à Internet, e são responsáveis pela popu-
larização dos softwares, computadores e dispositivos móveis principalmente.
Com a inclusão de interfaces gráficas, a gama de aplicações aumenta e é pos-
sível pensar em aplicativos para desktops com sistemas operacionais de modo 
gráfico como Windows, Linux, IOS e Android, por exemplo, usando ou não 
conexão em rede ou Internet.
Por meio das conexões possíveis, vemos que é possível criar aplicações Cliente/
Servidor, comerciais ou não, como sistemas empresariais ou jogos, e aplicações 
que possam usufruir dos benefícios da Internet, como aplicações para e-busi-
ness, que podem conter funções de e-commerce também.
Também é possível aproveitar a Internet e a forte divulgação que ela promove 
para oferecer aplicativos (APPs) diversos para dispositivos móveis que possam 
ter as mais diversas utilidades e com ou sem custos. Bibliotecas próprias e com-
ponentes para aplicações de maior porte também são formas de trabalho com 
grande potencial, pois as comunidades de desenvolvedores costumam estar sem-
pre de olho em soluções prontas para partes de seus projetos (MANZANO,2011).
Também podemos nos deparar com melhores implementações de soluções 
desenvolvidas por um profissional que consulte uma comunidade em busca de 
aperfeiçoamento profissional e de otimizações para suas aplicações.
A variedade e quantidade de opções de desenvolvimento na área de progra-
mação em geral é vasta, variando com as inovações e tendências do mercado de 
tecnologia da informação. Entretanto, cabe ao profissional a busca por estas ino-
vações ou permanecer no campo de atuação ao qual já esteja adaptado.
 
Existem várias opções disponíveis de ferramentas para a produção de códi-
go em Java, com seus pontos positivos e também negativos. Sendo assim, 
com um conhecimento prévio das mesmas, qual a melhor ferramenta para 
se utilizar?
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E44
PACOTES DE DESENVOLVIMENTO
Da mesma forma que surgem diferentes implemen-
tações da linguagem Java, surgem os pacotes de 
desenvolvimento para profissionais chamados de JDK 
(Java SE Development Kit). Tais pacotes são distri-
buídos gratuitamente pela Internet, atualmente em 
sites com a logo Oracle, e são fundamentais para o 
desenvolvimento do aprendizado dos conteúdos deste 
material (ORACLE, [2017], on-line)1.
Complementarmente, temos diversas alternativas 
úteis para o desenvolvimento de aplicações, sabendo 
que a combinação de diferentes softwares pode ofere-
cer recursos para programação mais abrangente em 
termos de tipos de aplicações possíveis.
O ambiente Netbeans criado pela Sun é um dos mais utilizados, assim como 
o JDeveloper da Oracle, que atualmente é a plataforma de desenvolvimento ofi-
cial para a linguagem Java. Para uso de serviços agregados a Bancos de Dados 
há a instalação de softwares como o HypersonicSQL, que é totalmente voltado 
para uso de aplicações Java, Apache Derby que faz parte do pacote de distribui-
ção Java sob o nome de JavaDB, e PostGreeSQL, que concorre diretamente com 
outro servidor MySQL (ORACLE, [2017], on-line) 1.
Para a criação de servidores web para Java, duas opções populares são o Jetty, 
concorrente do Apache Tomcat, que possui uma versão customizada chamada 
JBossWeb, disponibilizado pela JBoss.
Compilação e Execução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
45
COMPILAÇÃO E EXECUÇÃO
Existem ambientes de desenvolvimento para Java, mas independentemente de 
qual seja utilizado, o resultado final pode ser o mesmo, pois a lógica envolvida 
no código e o correto uso de palavras reservadas, classes e seus métodos é que 
realmente determinam a funcionalidade da aplicação a ser criada.
Usando o ambiente do PROMPT DE COMANDO (CMD na busca do 
Windows), é preciso observar que o local em que se encontra armazenado o 
compilador Java e seus componentes em seu disco, precisa estar contemplado 
como parte do caminho padrão do sistema para acesso a aplicativos (PATH). A 
Figura 7 mostra um exemplo de PATH já contendo o caminho para o compi-
lador JAVAC na máquina e, caso não esteja, é preciso buscar pela pasta em que 
esteja localizado o compilador, como no exemplo da figura 7.
Pode-se selecionar o caminho indicado como indicado na figura 7 para 
copiar e colar este caminho no comando PATH, após incluir um sinal de ponto 
de vírgula (;) adicional no final do caminho PATH já existente, como ficou na 
figura 7 (;C:\Program Files\Java\jdk1.8.0_77\bin).
Assim, temos que o comando PATH mostra como estão os caminhos padrões 
para localização de aplicações e um comando similar a: 
PATH=C:\ProgramData\Oracle\Java\javapath;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E46
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Skype\Phone\;
C:\Program Files\Java\jdk1.8.0_77\bin. 
Ajusta quais são as pastas e discos válidos como padrões.
As Figuras 6 e 7 ajudam no processo de ajuste do caminho para simplificar o 
uso dos recursos do pacote JDK de desenvolvimento Java indicando como obter 
o caminho para a pasta em que estão os recursos e como conferir pelo Prompt 
de Comando do sistema operacional Windows, por exemplo.
Figura 6 - Exemplo de janela para buscar o caminho do compilador JAVAC
Fonte: o autor.
Figura 7 - Exemplo de Prompt indicando o caminho padrão com o comando PATH
Fonte: o autor.
Compilação e Execução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
47
Após o ajuste do ambiente de trabalho, é possível incluir o código em um editor 
simples qualquer como o Bloco de Notas do Windows, confome mostra a Figura 8.
Figura 8 - Exemplo de código Java digitado em editor de texto simples 
Fonte: o autor.
Depois de digitar o código, grave-o em local adequado para seus estudos como uma 
pasta exclusiva para os códigos do livro e outros para exercício da linguagem, lem-
brando que todo arquivo Java será gravado com o nome da classe principal (seguindo 
as regras de nomenclatura do sistema operacional), e a extensão java como na figura 9.
Observe que, no caso do Bloco de Notas, é interessante indicar o tipo como 
Todos os arquivos para que a gravação não corra o risco e crie um arquivo do 
tipo TXT ao invés de java. Sem esta opção, poderia ser criado um arquivo seme-
lhante a Ex1.java.txt, o que não seria compreendido pelo compilador javac.
A Figura 9 mostra a tela de gravação de arquivos, na qual podemos escolher 
o local para gravação, em que é indicado respeitar uma organização de locais 
de gravação para as diferentes aplicações desenvolvidas, e a indicação do nome 
para o arquivo fonte, respeitando a regra de este nome ser igual ao da classe con-
tida no código.
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E48
Esta é mais uma precaução do que uma ação obrigatória, pois para outras 
situações ou sistemas operacionais, pode acontecer do editor usar todo o nome 
digitado “Nome.java” como nome do arquivo.
Figura 9 - Exemplo de gravação no aplicativo Bloco de Notas 
Fonte: o autor.
Após a correta gravação do arquivo, pode-se utilizar o prompt de comando para 
compilar o código Java e depois executar o aplicativo criado, confome mostra a 
Figura 10, na qual temos a sequência de todos os passos para realizar esta tarefa.
Primeiramente, usa-se o comando E: para seguir ao disco desejado, no qual 
esteja gravado o arquivo de extensão java, lembrando que cada programador 
organiza seus arquivos em disco como achar melhor, podendo, inclusive, gra-
var tudo referente aos estudos em um pendrive vazio. Em seguida, é usado o 
comando CD para seguir até a pasta de trabalho. O comando DIR permite lis-
tar os arquivos contidos na pasta escolhida.
Assim, estando no local correto e tendo encontrado o arquivo com o código 
desejado, é possível realizar a compilação por meio do JAVAC, indicando o nome 
do arquivo com o programa (Ex1.java por exemplo). Depois, caso não ocorram 
Compilação e Execução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
49
erros, um arquivo do tipo CLASS é gerado contendo a conversão de linguagem 
Java para Bytecode, que pode ser interpretada e executada pelo JAVA confome 
a Figura 10.
Figura 10 - Exemplo de acesso aoarquivo JAVA, sua compilação e execução 
Fonte: o autor.
Com isso, encerrando a unidade, vemos que a proposta do material é de ensi-
nar os fundamentos da linguagem Java e da programação orientada a objetos, 
sem depender de ambientes integrados e receitas prontas.
PARTICULARIDADES DA LINGUAGEM JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIU N I D A D E50
CONSIDERAÇÕES FINAIS
Nesta unidade foram vistos diversos conceitos complementares à unidade ante-
rior, sendo possível conhecer mais aspectos da linguagem e compreender o 
motivo de sua popularidade e eficiência.
O ambiente em que são desenvolvidas as aplicações é muito importante, 
pois mostra de que forma linguagem Java, a qual possui uma forma um pouco 
diferente da maioria das demais linguagens de programação, desenvolve suas 
aplicações para garantir uma forte portabilidade entre as diferentes plataformas 
utilizadas em diferentes meios de execução de aplicações, como computadores 
e dispositivos móveis.
Complementando o ambiente de desenvolvimento, são citados os diferen-
tes sistemas operacionais que oferecem diversas plataformas de execução para 
as aplicações criadas e que, independentemente dessas diferenças, permitem 
que um mesmo código em Java possa ser executado em diferentes plataformas, 
devido a sua portabilidade.
Seguindo os conceitos tratados na unidade, há comentários sobre as formas 
de programação que destacam tipos diferentes de soluções com os quais um 
determinado desenvolvedor pode se especializar indicando se inclusive, áreas 
já ultrapassadas no mercado, mas que ainda apresentam situações de uso que já 
garantiram o trabalho de muitos profissionais.
Assim, as diferentes formas de criar software em linguagem Java são descritas 
oferecendo possibilidades diversas e indicando soluções mais simples para fins 
específicos, como software para máquinas sem necessidade de interface gráfica, 
sendo mais leve e eficiente, ou soluções mais complexas com interface gráfica 
para equipamentos como dispositivos móveis.
Finalizando a unidade, são tratados os pacotes utilizados para o desenvol-
vimento de software e o processo de compilação e execução de aplicações em 
diferentes plataformas.
Com esse preparo, já é possível ingressar em uma nova unidade, contem-
plando os primeiros pontos a serem vistos em relação à linguagem Java e seus 
conceitos iniciais de desenvolvimento de aplicações.
51 
Em Linux, para preparar o ambiente para programação em Java é preciso instalar o pa-
cote Java JDK, seguindo os passos indicados a seguir. Vale lembrar que tais passos po-
dem ser alterados devido às novas versões e à descontinuidade do pacote indicado no 
conteúdo a seguir.
Abrir uma janela terminal para, em seguida, usar o comando “su” para entrar em modo 
super usuário inserindo a senha necessária para tal.
Em seguida, entrar na pasta Downloads, com o comando “cd downloads”, e finalmente, 
o comando de instalação “rpm –jvh jdk-7-linux-i586.rpm”.
Depois de baixado o pacote, usar “mkdir/usr/java/jdk1.7.0/jre/classes” para criar uma 
pasta Classes para trabalho e remover o arquivo de instalação com o comando “rm jdk-
-7-linux-i586.rpm”.
Após instalado, é preciso que o Java seja visível em toda extensão do ambiente Linux e, 
para isso, é preciso manipular variáveis de ambiente do sistema operacional.
Siga a sequência de comandos a seguir para servir de guia para o processo, iniciando 
com “cd /etc/profile.d” para acessar a pasta indicada, digitando em seguida, “touch /etc/
profile.d/java.sh”.
Depois, use novamente “cd /etc/profile.d”, seguido do comando “joe” para poder editar 
as variáveis de ambiente, como indicado a seguir:
#!/bin/sh
JAVA_HOME=”usr/java/jdk1.7.0”
CLASSPATH=”.:$CLASSPATH:$JAVA_HOME/jre/classes”
PATH=”$JAVA_HOME/bin:$PATH”
export JAVA_HOME CLASSPATH PATH
Finalmente, utilize [CTRL+K] seguido de [X] para gravar o arquivo como “java.sh”.
Assim, temos uma das possíveis formas de se instalar e preparar o ambiente Java em 
Linux, lembrando que, em caso de falha no processo, a Internet oferece diversas varia-
ções em que é possível encontrar atualizações regulares do ambiente Java.
Fonte: o autor.
52 
1. Um bom profissional de desenvolvimento de software se prepara para garantir 
uma melhor qualificação em termos de conhecimento e experiência profissio-
nal. Iniciantes não possuem a experiência ainda, mas podem se preparar 
através de que recursos?
2. A JVM é por meio por interpretar e executar arquivos bytecode gerados pelo 
compilador Javac. Esta chamada máquina virtual aceita arquivos compilados 
com uma extensão específica gerada por meio do arquivo de código gravado 
com outra extensão específica. Cite as duas extensões.
3. Existem duas formas essenciais de desenvolvimento de aplicações em Java. Uma 
delas se da por meio da linha de comandos para compilar e executar programas 
através de utilitários próprios para tais tarefas inclusas no pacote JDK. Como se 
chama a alternativa de desenvolvimento que oferece alguns recursos adi-
cionais, além dos oferecidos pelo compilador e JVM de linha de comando?
4. A linguagem C++ gera aplicações por meio do seu processo de compilação, o 
qual serve para criar arquivos que podem ser executados, independentemente 
de outros softwares. No caso da linguagem Java, isso não ocorre e a aplicação 
precisa da JVM pa-ra ser executada. Qual o motivo desta diferença?
5. É possível desenvolver aplicações de tipos diferente, e com funções distintas em 
Java. Este é um exemplo da versatilidade da linguagem. Um destes tipos se cha-
ma applet e aos poucos está sendo descontinuado. Por que esta situação está 
ocorrendo?
Material Complementar
MATERIAL COMPLEMENTAR
Java Para Iniciantes: crie, compile e execute 
programas Java rapidamente - 6 ed. 2015
Herbert Schildt
Editora: Bookman
Sinopse: Conheça os fundamentos da programação 
Java com Herbert Schildt, autor best-seller de 
publicações sobre programação. O livro aborda 
recursos avançados e básicos de forma muito bem trabalhada.
REFERÊNCIASREFERÊNCIAS
54
MANZANO, J. A. N. G. Java 7 - programação de computadores: guia prático de 
introdução, orientação e desenvolvimento. 1 ed. São Paulo: Érica, 2011.
ORACLE, University; Java SE. [on-line] Disponível em: <http://education.oracle.
com/pls/web_prod-plq-dad/ou_product_category.getPage?p_cat_id=267>. Aces-
so em 30 mai. 2017.
REFERÊNCIAS
55
1) Cursos livres ou técnicos, Graduações, Especializações e Certificações na área. 
Participação em eventos e palestras também ajudam no conhecimento, além 
de proporcionar a criação de uma rede de contatos.
2) .JAVA e CLASS.
3) IDE (Ambiente Integrado de Desenvolvimento).
4) As aplicações em Java não são executáveis como em C++ devido à premissa de 
todo código Java ser portátil independentemente da plataforma, sendo que o 
arquivo bytecode de uma aplicação pode ser executado em várias plataformas, 
ao passo que na linguagem C++ é preciso recompilar o programa após corrigir 
as incompatibilidades da linguagem com cada versão de sistema operacional.
5) Os navegadores, aos poucos, estão descartando o uso de plugins que não pos-
sam ser incluídos no próprio código deles e necessitam de terceiros para de-
senvolver as mas atualizações esse. Assim, aos poucos, os navegadores estão 
deixando de ser compatíveis com este tipo de aplicativo.
GABARITO
U
N
ID
A
D
E III
Professor Esp. Ronie Cesar Tokumoto
INTRODUÇÃO À 
PROGRAMAÇÃO JAVA
Objetivos de Aprendizagem
 ■ Conhecer os conceitos básicos da programação Java. 
 ■ Compreender como elaborar instruções comuns.
 ■ Saber identificar operadores e suas regras de uso.
 ■ Compreender a elaboração de expressões na linguagem.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:■ Fundamentos de um programa Java
 ■ Instruções básicas
 ■ Expressões
 ■ Identação e espaçamento
INTRODUÇÃO
Nas unidades anteriores, foram apresentados os aspectos fundamentais da lin-
guagem Java e a forma pela qual ela permite a criação de diferentes tipos de 
software, por meio de um processo particular de compilação e execução de apli-
cações, no qual uma máquina virtual adaptada a cada plataforma de execução se 
encarrega de interpretar o projeto e manter a portabilidade do código sem que, 
geralmente, haja a necessidade de alterações.
Nesta unidade, são iniciados os estudos da linguagem em si, mostrando os 
conceitos fundamentais da linguagem Java em relação a todos os aspectos ini-
ciais que devem ser conhecidos.
Dentro das instruções básicas, será tratada a questão documental de um 
código, por meio de comentários e documentação gerada por um utilitário con-
tido no pacote de desenvolvimento.
Os tipos de dados mais importantes da linguagem também são citados, mos-
trando diferenças entre eles e indicando, a partir de exemplos, como devem ser 
utilizados em variáveis e constantes. É válido destacar que variáveis são pontos 
fundamentais da programação e não poderiam deixar de ser citadas devido a 
sua expansão para o título de atributos dentro da programação em Java orien-
tada a objetos.
Os chamados “tipos de dados” associados a estas variáveis representam a 
base de toda a funcionalidade de uma aplicação, já que, em geral, todo software 
se baseia no fundamento de servir como meio para que ocorra o processamento 
de dados de entrada, gerando dados de saída que podem representar informa-
ções mais complexas.
Atrelado à ideia de tipo de dado, será tratado o uso de operadores, os quais 
permitem realizar modificações em conteúdos de variáveis, podendo também 
ser utilizados em diversas outras funções, como cálculos que podem utilizar, 
inclusive, valores definidos para constantes.
Complementando os conteúdos da unidade, temos os conceitos de criação 
de expressões, utilizando operadores, e da chamada identação de código, que 
permite uma melhor leitura e compreensão de códigos.
Introdução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
59
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E60
FUNDAMENTOS DE UM PROGRAMA JAVA
Daremos início a mais uma unidade, caro(a) aluno(a). Neste primeiro tópico, é 
importante citar que toda a construção de código Java segue regras, as quais pre-
cisam ser respeitadas de forma que, além da sintaxe, a semântica de um código 
possa ser validado pelo compilador da linguagem para que um arquivo byte-
code válido possa ser gerado.
O uso do paradigma de orientação a objetos é uma destas regras essenciais 
e, sem ela, não é possível criar programas em Java válidos para um compilador 
(ORACLE, [2017], on-line)1. Temos basicamente dois tipos de arquivos usa-
dos na programação Java: um corresponde ao código escrito em si, gravado em 
arquivo do tipo JAVA, e outro que é gerado pelo compilador em formato byte-
code do tipo CLASS, como citado anteriormente.
Como o arquivo JAVA é um arquivo texto comum, não é preciso utilizar 
recurso especial além de um editor de textos simples para codificar programas 
em Java, assim como em outras linguagens compiláveis.
Existem diferentes formas de programação em Java, nas quais é possível criar 
softwares aplicativos no modo console, em que não existe interface gráfica e a 
programação não é fundamentada na web.
Pode-se criar software para o modo gráfico utilizando pacotes próprios para 
uso de recursos, como janelas e desenho de forma geral, amplamente voltado 
para plataformas com interface gráfica como Windows e Linux, além de amplo 
uso em plataformas web como Android.
 
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
61
INSTRUÇÕES BÁSICAS
Um programa criado em qualquer que 
seja a linguagem de programação tende a 
utilizar certos recursos básicos comuns a 
diversas linguagens e também na maioria 
dos problemas a serem resolvidos.
A seguir, serão apresentados alguns 
destes recursos, os quais devem ser com-
preendidos para se formar uma base de 
conhecimento inicial que dará suporte 
para o aprendizado futuro de conceitos 
mais avançados ou inovações que venham 
a complementar os contidos neste material.
COMENTÁRIOS
O processo de programação exige muito mais trabalho intelectual em rela-
ção ao trabalho manual de digitação, e cada profissional possui sua forma de 
implementar código. Assim, todo o ciclo de vida de um software envolve o desen-
volvimento de código, mas também envolve a manutenção do mesmo enquanto 
estiver sendo utilizado.
Alguns softwares chegam a ser utilizados por décadas, mesmo que ocorram 
evoluções tecnológicas de hardware e software, pois mudanças em certos siste-
mas são inviáveis devido ao seu tamanho e complexidade. Softwares em geral 
sofrem manutenções esporadicamente e estes softwares legados também, mas 
independentemente de qual seja o software, muitas vezes é preciso adicionar 
novas funcionalidades ou adequar outras já existentes.
Para facilitar o trabalho de manutenção, o uso de comentários dentro do 
código facilita a interpretação do que foi logicamente implementado e permite 
que, além do próprio programador que gerou o código, outros possam com-
preender e realizar a manutenção necessária no mesmo com maior facilidade.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E62
É preciso ter em mente que um software pode ter um ciclo de vida mais longo 
que o responsável pela sua criação dentro da empresa responsável pelo desen-
volvimento e/ou manutenção do mesmo por tempo indeterminado.
Importa observar que os comentários não são obrigatórios em programas; 
seu uso não influencia a lógica do código, até porque qualquer comentário colo-
cado dentro de um código é descartado já no processo de compilação e geração 
do arquivo bytecode por não ter função na execução do software.
Podemos utilizar // ou /** e */ para delimitar comentários, sendo a primeira 
forma para comentários de linha única, e a outra forma para delimitar blocos de 
comentários como indicado nos exemplos a seguir:
//código1 
 // Comentário de linha única.
 /* Início de bloco de comentário
 Que pode seguir por linhas abaixo até que seja encontrado
 O símbolo de fim do bloco de comentários */
Uma instrução pode ser colocada na mesma linha, desde que antes do símbolo 
indicador de comentário para não perder sua função por transformar-se em 
parte do texto do comentário. Já no bloco de comentários, quaisquer instruções 
colocadas entre o espaço delimitador de início e fim do comentário perde sua 
função, pois estando dentro de um comentário, qualquer conteúdo é descartado 
pelo compilador (DEITEL, 2010).
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
63
JAVADOC
O chamado comentário de documentação inicia com o indicador /** e termina 
com o outro indicador */, permitindo que as informações sejam adicionadas 
dentro desses blocos de comentários, podendo, posteriormente, ser utilizados 
pelo utilitário Javadoc e faz parte do pacote JDK, para inserir tais comentários 
em arquivos HTML. É uma boa forma de documentarprogramas e, por meio 
de tags que representam os comandos da sintaxe para o Javadoc, podem extrair 
do código o texto que possa ser utilizado (FLANAGAN, 2006).
Em geral, essas tags iniciam com o símbolo @ e possuem funções diversas, 
que serão resumidas para que sejam úteis durante o processo de desenvolvi-
mento de código Java (FLANAGAN, 2006).
 ■ A tag @author serve para identificar a autoria do código, assim como @
since indica a versão onde alterações ocorreram no código, e @version 
serve para especificar versões de classes.
 ■ {@code} é utilizada para que trechos de código possam ser colocados den-
tro do código real a ser compilado sem que o compilador enxergue esse 
código como compilável e o ignore como um comentário de texto qualquer.
 ■ A tag @deprecated pode servir para anotações em trechos de código 
não mais utilizados e que são mantidos para fins de retorno de versão de 
código ou alterações que possam ser desfeitas no futuro, por exemplo.
 ■ Para melhorar o controle sobre as tags @deprecated, podemos usar as tags 
@see ou {@link} que indicam pontos do código que podem ser conside-
rados relacionados ou substitutos do código indicado por @deprecated.
 ■ A tag {@docRoot} indica o caminho para o local em disco em que esteja 
armazenada a documentação Javadoc.
 ■ Usando @param é possível documentar parâmetros utilizados em um 
código, assim como @return serve para documentar valores de retorno 
de métodos de classes.
Existem outras tags mais capazes de oferecer demais funcionalidades a essa fer-
ramenta de documentação. Algumas das principais tags utilizadas pelo utilitário 
Javadoc na confecção de documentação estão listadas na Tabela 1.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E64
Tabela 1 - Lista de tags reconhecidas pelo utilitário Javadoc
TAG SIGNIFICADO
@author Indica o autor de uma classe ou do método.
@deprecated Identifica classes ou métodos já ultrapassados. É interessante 
informar nessa tag os métodos ou classes que podem ser usa-
das como alternativas mais recentes.
@link Indica um link para outro documento através de um URL.
@param Mostra parâmetros passados a um método.
@return Mostra o tipo de retorno de um método.
@see Indicação das referências de classes ou métodos para auxiliar a 
compreensão.
@since Indica quando classes ou métodos foram incluídos no projeto 
da aplicação.
@throws Indica tipos de exceções que podem ser tratados por métodos 
na aplicação.
@version Informa a versão de uma classe em um projeto.
Fonte: SCHILDT (2013, p. 594).
No exemplo do código 2 é possível observar de que forma pode ser colocado um 
comentário estilo Javadoc em um código Java qualquer.
 
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
65
//código2 
Import java.io.*;
/**
 * Classe genérica para soma
 * @author Tokumoto
 * @version 1.0
*/
public class calcula {
 public double soma (double valor1, double valor2) {
/**
 * Soma dois valores recebidos como argumentos
 * @param valor1 e valor2 representam valores do tipo double
 * @return a soma dos parâmetros é o resultado retornado
*/
 return (valor1 + valor2);
 }
}
VARIÁVEIS E CONSTANTES
Nomes aceitos com um ou mais caracteres alfanuméricos, sendo que o primeiro 
obrigatoriamente precisa ser alfabético. A linguagem é case sensitive e nomes 
podem incluir o caractere _.
Por ser uma linguagem tipada, toda declaração de variável precisa da declara-
ção do tipo associado de valor aceito e se, antes da declaração do tipo for incluída 
a palavra final, a variável não poderá ter seu valor inicialmente atribuído modi-
ficado e esta se torna uma constante.
Além de variáveis, é possível bloquear outros elementos com a palavra-chave 
final, como classes que se tornam privadas e métodos que não permitem mais 
sua modificação por classes que herdem a mesma por meio de uma técnica da 
orientação a objetos chamada polimorfismo e que será vista na segunda disci-
plina nas Unidades I e II.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E66
Tendo como sintaxe básica a forma [final] <tipo> nome [<= valor>]; podemos 
ilustrar a declaração de algumas variáveis de tipos diferentes através do código 3.
 
//código3
import java.lang.String;
 
public class Variaveis{
 public static void main(String[] args) {
 int a;
 int b, c;
 int d = 0;
 double e;
 char f;
 char g = ‘ ‘;
 String h;
 }
}
 
TIPOS DE DADOS
Tipos de dados são fundamentais na linguagem Java por ela ser fortemente 
tipada e exigir que toda estrutura de dados criada tenha tipos para os dados 
aceitos pelas mesmas, definido para a devida alocação de memória durante o 
processo de execução.
A Figura 1 mostra os tipos básicos mais utilizados no desenvolvimento, indi-
cando também a quantidade de bits ocupados em memória, delimitando valores 
limite para armazenamento nessas estruturas de dados.
 
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
67
Quadro 1 - Ilustração dos tipos básicos de dados aceitos.
Nome e bits ocupados
byte (8 bits)
short (16 bits)
int (32 bits)
long (64 bits)
float (32 bits)
double (64 bits)
char (16 bits)
boolean (1 bit)
Descrição
Números inteiros (128 a 127)
Números inteiros (-32768 a 32767)
Números inteiros (-2147483648 a 2147483647)
Números inteiros (-9,22 . 10-17 a 9,22 . 1017)
Números reais de ponto flutuante
Números reais de ponto flutuante
Caracteres Unicode UTF-16 de ‘\u0000’ a ‘\zffff’
Valores 0 e 1 representativos para falso e verdadeiro
Fonte: o autor.
Todos os tipos têm usos indicados de acordo com a maneira como serão utiliza-
dos os dados coletados durante a execução de um programa em variáveis usadas 
para armazenar idade, peso ou altura, por exemplo. Cada variável é declarada 
com o tipo de dado que seja adequado ao seu propósito no programa como, por 
exemplo, a idade que utiliza números inteiros, ou em peso e altura, que necessi-
tam de números do tipo ponto flutuante (MANZANO, 2011).
Além dos tipos básicos, algumas bibliotecas (APIs), oferecem tipos adicionais 
de dados para facilitar o desenvolvimento de novos programas que necessitem 
de dados mais específicos. Um tipo bem conhecido se chama string, contido na 
Classe String de uma API bastante utilizada no desenvolvimento, em que cadeias 
de caracteres podem ser armazenadas nesse tipo de dado.
Toda variável tem a função de armazenar dados, assim como constantes que 
também utilizam espaços de memória para tal finalidade. No entanto, uma dife-
rença fundamental é que as constantes têm, como princípio básico, a ideia de que 
um valor atribuído a ela não será alterado em tempo de execução. No caso das vari-
áveis, sendo elas fortemente tipadas ou não, a função se mantém, variando a forma 
como ocorre esse armazenamento de dados, pois, para cada dado a ser alocado em 
uma variável, existe uma quantidade adequada de memória necessária a ser alocada.
No caso de linguagens fortemente tipadas, essa quantidade de memória é 
determinada pela escolha do tipo de dado que será aceita pela variável. Porém, 
em linguagens fracamente tipadas, a alocação é feita de forma diferente, pois não 
há como garantir sempre, antes da execução, qual tipo de valor será alocado à 
variável, alterando em tempo de execução a quantidade de memória que seria 
necessária para esse dado (MANZANO, 2011).
INTRODUÇÃO À PROGRAMAÇÃOJAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E68
OPERADORES ARITMÉTICOS
Na programação, os operadores são fundamentais, pois permitem que valores 
sejam trabalhados para gerarem novos valores desejados dentro da lógica do 
programa. Os operadores mais simples e de uso mais frequente são os aritmé-
ticos, utilizados para realizar cálculos matemáticos em geral, sendo que alguns 
dos símbolos usados são diferentes daqueles aprendidos nas escolas, conforme 
citado por Manzano (2011).
 ■ O operador de som (+) pode ter duas funcionalidades. Como operador 
unário de sinal, indicando a positividade de um valor numérico, e como 
operador de soma, o qual realiza o cálculo a partir de dois valores para 
gerar um terceiro valor de resultado.
 ■ O mesmo ocorre com o operador subtração (-), que também serve como 
operador unário de indicação de sinal para números negativos e como 
operador para subtração de dois valores, gerando também um terceiro 
valor resultante da operação.
 ■ A multiplicação representada pelo asterisco (*) é um operador apenas 
para a realização do cálculo entre dois valores numéricos, resultando um 
terceiro valor, assim como o operador para divisão aritmética indicada 
pela barra (/), que também se utiliza de dois valores para gerar um ter-
ceiro valor de resultado.
 ■ O operador de resto indicado pelo símbolo de porcentagem (%), realiza 
um cálculo não convencional da matemática. O chamado resto da divisão 
é o valor que sobra após a divisão entre dois valores numéricos, podendo 
valer zero, em caso de divisões perfeitas, ou valores maiores, quando o 
primeiro valor não é múltiplo do primeiro.
 ■ Os operadores unários de incremento (++) e decremento (--), são utili-
zados para alterar valores de variáveis realizando um cálculo simples em 
que é acrescentada ou reduzida uma unidade do valor da variável a qual 
se aplica algum desses operadores.
Existem também métodos que realizam a função de operadores não padrões 
da linguagem, que são incluídos à programação a partir de bibliotecas especí-
ficas como Math. Exemplos de métodos dessa API so Math.pow, que realiza a 
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
69
potenciação por meio de parâmetros passados a ele, representando os valores de 
base e expoente necessários para a realização do cálculo, assim como o método 
Math.sqrt, que recebe um valor como parâmetro para realizar o cálculo da raiz 
quadrada desse valor.
OPERADORES RELACIONAIS E LÓGICOS 
Outro tipo de operador é o relacional, o qual não realiza cálculos, sendo utilizado 
para comparações em expressões lógicas para desvios condicionais, por exemplo.
Os operadores maior (>), menor (<), maior ou igual (>=), e menor ou igual 
(<=) são também utilizados na matemática com a diferença para os símbolos ≥ e 
≤, que não existem como caracteres no teclado e foram substituídos por combina-
ções de símbolos existentes em todos os modelos de teclado (MANZANO, 2011).
Os operadores de igualdade (==) e diferença (!=) também são representa-
dos por símbolos diferentes, mas mantêm o significado igual ao da matemática, 
como sinais de = e ≠ respectivamente. Eles são essenciais para elaborações de 
condições em desvios de fluxo e laços de repetição.
Os operadores lógicos E (&), OU (|), Negação (!) e OU Exclusivo (^) são 
importantes na construção de expressões lógicas por permitirem a construção 
de expressões lógicas maiores e mais complexas, em que são avaliadas múltiplas 
condições, se necessário.
Existem variações disponíveis para os operadores OU e E que, em certos 
casos, podem aumentar o desempenho do programa durante a execução, já que 
funcionam de forma distinta por avaliarem de uma forma particular uma expres-
são, sendo chamados de operadores de curto-circuito || (OU curto-circuito), e 
&& (E curto-circuito).
Operadores de curto-circuito só avaliam a segunda opção caso valer à pena, 
pois AND precisa de dois V para ser verdadeiro e OR pelo menos o primeiro V 
já seria suficiente.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E70
OPERADOR DE ATRIBUIÇÃO
O símbolo de igualdade (=) usado na matemática (e que foi substituído na lin-
guagem Java por uma dupla igualdade ==), tem uma função muito importante, 
chamada atribuição. 
A atribuição é a forma pelo qual é possível atribuir dores diretamente a uma 
variável, alocando o valor na posição de memória previamente reservada a ela, 
de acordo com o tipo de dado atribuído no momento de sua declaração. Durante 
esse processo, pode ocorrer uma conversão automática de tipos quando o tipo 
a ser atribuído for compatível com o tipo receptor esse que seja superior àquele 
do valor a ser atribuído (MANZANO, 2011).
Pode-se usar o sistema de coerção “cast” para forçar tipos incompatíveis a acei-
tarem uma atribuição forçada, independentemente do tipo que automaticamente 
seria usado ou se for uma conversão permitida pelo compilador naturalmente. 
Por exemplo, a coerção pode ser utilizada seguindo a sintaxe (tipo) <expres-
são>, na qual é indicado o tipo para forçar a mudança de tipo, lembrando que 
funciona apenas se o valor contido na variável for compatível com o tipo dese-
jado (DEITEL, 2010).
Um exemplo poderia ser escrito como y= (int) x; no qual, caso estivesse toda 
a instrução dentro do esperado em termos de valores e tipos, seria y uma vari-
ável que deveria aceitar valores inteiros convertidos de x.
Operadores lógicos podem servir como operadores bit a bit para realizar 
deslocamento de bits como & e |, e isso pode ser confundido com operado-
res lógicos. Cuidado.
Instruções Básicas
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
71
PRECEDÊNCIA ENTRE OPERADORES 
Dada a existência de muitos operadores, é importante conhecer a ordem na qual 
são realizadas as operações em uma expressão, pois essa ordem afeta diretamente 
os resultados caso não seja observadas e devidamente utilizada.
Expressões simples da matemática são fortemente influenciadas pela ordem 
em que as operações são colocadas nas expressões, e qualquer mudança de opera-
dores e valores em relação ao seu posicionamento numa expressão normalmente 
muda a resolução.
Observe a Figura 5 e perceba como pequenas mudanças em uma expressão 
afetam seu resultado. Em cada variação da expressão, temos diferentes resultados, 
e podemos observar na mudança da expressão 1 para a expressão 2 que a passa-
gem da multiplicação para o início da expressão já tem influência no resultado.
Na passagem da expressão 1 para a expressão 3, na mesma Tabela 2, tam-
bém é obtido um resultado diferente pela mudança de posição dos símbolos na 
expressão, mostrando a influência de uma correta elaboração de uma expressão.
 
Tabela 2 - Exemplo de expressões matemáticas
EXPRESSÃO 1 EXPRESSÃO 2 EXPRESSÃO 3
5 * 2 + 3 2 + 3 * 5 5 + 2 * 3
10 + 3 2 + 15 5 + 6
13 17 11
Fonte: o autor.
A seguir, temos uma lista com a ordem de precedência de operadores, con-
forme a Tabela 3, indicando a ordem do operador com maior prioridade para o 
operador com menor prioridade, mostrando aqueles que naturalmente seriam 
utilizados antes em um expressão.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E72
Tabela 3 - Ordem de precedência de operadores 
++, -- (pós fixo) Incremento e decremento após o uso de uma variável.
++, --, ~,!, +(unário),
-(unário), (cast)
Incremento e decremento antes do uso de uma variá-
vel, negação, sinais de positivo e negativo
*, /, % Multiplicação, divisão e resto
+, - Soma e subtração
>>, >>>, << Deslocamento de bits (direita, direita sem sinal, e 
esquerda)
>, >=, <, <=, instanceof Operadores relacionais maior, maior ou igual, menor, 
menor ou igual, operador de instância de objetos
==, != Igualdade e diferença lógica
& Operador E lógico
| Operador | lógico
&& Operador E lógico de curto-circuito
|| Operador | lógico de curto-circuito
?: Operador condicional
=, op= Atribuição ou atribuição com cálculo (+, -, *, /, &)
Fonte: o autor.
EXPRESSÕES
Expressões representam todo tipo de instrução relacionada à manipulação de 
valores e englobam desde a atribuição de valores a variáveis até expressões mate-
máticas mais complexas, contendo operadores diversos e conversões de valores. 
Operadores, variáveis e literais são componentes de expressões. Pode ocorrer 
a conversão de tipos em uma expressão, mas precisam ser todos compatíveis 
(FLANAGAN, 2006).
A atribuição é a forma mais comum de expressão, pois todo valor de entrada 
em um programa depende da sua atribuição a um atributo ou parâmetro, por 
exemplo. Expressões matemáticas podem ser simples, utilizando apenas um 
Expressões
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
73
operador, conter cálculos mais elaborados, bem como 
podem utilizar funções contidas em bibliotecas exter-
nas ao conjunto básico de comandos da linguagem.
No código4, temos um exemplo de código que rea-
liza alguns cálculos simples, e que consegue, por meio 
da biblioteca MATH, obter o valor da constante matemá-
tica PI para utilizá-la em um dos cálculos. Temos também 
uma expressão simples de conversão de valor absoluto em 
porcentagem utilizando uma variável inteira inicializada 
com valor 100 para a realização do cálculo.
//código4 
import java.lang.Math;
class Expressoes
{
public static void main(String[] args)
{
 int porcentagem = 100; 
 System.out.println(“0,5 equivale a “ + 0.5*porcentagem + “%”);
 System.out.println(“O valor de PI é “, Math.PI);
 System.out.println(“Para calcular a área de um círculo, usa-se a fórmula 
PI x (RAIO x RAIO)”);
System.out.println(“Um círculo de raio 10 tem área igual a “ + Math.PI * 
(10*10));
}
}
* 0.5 ao invés de 0,5 na fórmula
** concatenação de strings com sinal + ao invés de vírgula
*** O mesmo nas linhas abaixo
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E74
IDENTAÇÃO E ESPAÇAMENTO
A identação serve para organizar um código em níveis e auxilia a leitura e compre-
ensão de um código, sem influenciar sua lógica ou funcionamento na linguagem 
Java, diferentemente do que pode ocorrer em outras linguagens. O espaçamento 
também não prejudica a codificação em Java, ajudando apenas a leitura e com-
preensão de códigos, principalmente, em expressões longas e instruções com 
muitos parâmetros.
Algumas linguagens podem inclusive se basear na identação para indicar o 
aninhamento de instruções contidas em outras, como ocorre em blocos de ins-
truções pertencentes a estruturas condicionais e laços de repetição. Sem uma 
correta identação, padrões de codificação em empresas são perdidos e a manu-
tenção em códigos já criados se torna mais custosa pela dificuldade de se ler, 
compreender e procurar pontos específicos a serem alterados em um código 
sem o espaçamento.
No exemplo do código5, podemos observar bem a importância da identação 
já em exemplos pequenos de código, em que quanto mais à esquerda, mais o ele-
mento deve representar uma estrutura primária como uma classe, por exemplo. 
Já elementos mais à direita representam elementos que fazem parte de elemen-
tos como classes e métodos, assim como estruturas de desvios e laços, os quais 
podem conter entre os símbolos de { e }, blocos de instruções e estruturas iden-
tadas mais à direita para indicar que estejam dentro do escopo da estrutura ao 
qual estejam associados (MANZANO, 2011).
No código5, podemos observar um exemplo do mesmo código, visto ante-
riormente, sem a identação, mostrando como sua leitura e compreensão podem 
Identação e Espaçamento
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
75
ser prejudicados, lembrando que sua lógica e funcionamento não são alterados 
em função de falta de espaçamento na linguagem Java.
 
//código5
import java.lang.Math;
class Expressoes
{
public static void main(String[] args)
{
int porcentagem = 100;
System.out.println(“0,5 equivale a “ + 0.5*porcentagem + “%”);
System.out.println(“O valor de PI é “ + Math.PI);
System.out.println(“Para calcular a área de um círculo, usa-se a fórmula 
PI x (RAIO x RAIO)”);
System.out.println(“Um círculo de raio 10 tem área igual a “ + Math.PI * 
(10*10));
}
}
* 0.5 ao invés de 0,5 na fórmula
** concatenação de strings com sinal + ao invés de vírgula
*** O mesmo nas linhas abaixo
O desenvolvimento de software é algo complexo, sendo necessário muito empenho para 
se criar bons programas. Entretanto, a manutenção associada a estes pode demandar 
maior esforço. Isso ocorre devido a fatores como a falta de documentação do software, 
ou, pelo menos, a existência de comentários no mesmo, auxiliando a sua interpretação.
Outro ponto é a falta de identação correta, que facilita a leitura organizada do código, 
mostrando onde iniciam e finalizam blocos de instruções e estruturas maiores de ele-
mentos, como métodos e classes.
É bom lembrar que, em muitos casos, a manutenção de um software não é realizada 
pelo mesmo profissional ou equipe de desenvolvimento que criou a aplicação, e isso 
pode gerar demora extra na manutenção.
Fonte: o autor.
INTRODUÇÃO À PROGRAMAÇÃO JAVA
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IIIU N I D A D E76
Ao final desta unidade, é possível perceber quais são os elementos essenciais para 
se iniciar os estudos da linguagem, como tipos e operadores, sem os quais pou-
quíssimos códigos podem ser produzidos.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Considerações Finais
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
77
CONSIDERAÇÕES FINAIS
Nesta terceira unidade, foram explicados os aspectos iniciais da linguagem Java, 
contemplando aspectos básicos de programação comuns a todas as linguagens, 
mas que, por especificidades de cada uma delas, devem ser discutidos.
Iniciando com a parte de documentação, foram tratadas tanto a forma de 
como comentar o próprio código quanto o uso de um utilitário chamado Javadoc, 
o qual faz parte do pacote de desenvolvimento JDK para uma documentação 
externa ao código.
Em seguida, a unidade tratou de citar e explanar vários aspectos de como 
são utilizados e organizados os dados dentro da programação em Java, defini-
dos como tipos de dados. Estes se referem a dados simples de diversos tipos, os 
quais são armazenados em variáveis e constantes para uso dentro das aplicações 
nas mais diversas situações.
Um uso muito comum para variáveis é o simples armazenamento dinâ-
mico de dados, mas estes podem ser manipulados por instruções ou expressões 
que podem envolver cálculos matemáticos ou não. Para criar estas expressões, 
são utilizados operadores de diferentes tipos e com funçõesespecíficas defini-
das por símbolos, os quais podem ser utilizados em diferentes situações dentro 
da programação e permitir que cálculos e tomadas de decisões ocorram dentro 
de aplicações desenvolvidas.
Os operadores utilizados em situações variadas foram divididos em catego-
rias para organizá-los estes como operadores aritméticos, relacionais e lógicos, 
formando conjuntos de operadores para cada situação específica.
Complementando a unidade, temos a parte relacionada - a identação -, res-
ponsável por facilitar a leitura e interpretação +de código devido à disposição 
em blocos alinhados.
Na sequência do livro, a Unidade 4 trará conceitos relacionados à continui-
dade dos estudos da linguagem, tratando de meios de o usuário se comunicar 
com a aplicação.
78 
JAR
A extensão JAR se refere a compactação de classes Java, de forma a criar um pacote de 
classes representando ou não uma aplicação completa, por meio de um utilitário que 
faz parte do pacote JDK de desenvolvimento Java.
Com a popularização da linguagem, outras ferramentas de compactação acrescentaram 
em seus algoritmos de compactação o padrão JAR e também são capazes de gerar estes 
arquivos.
Todo arquivo jar possui um arquivo manifesto na pasta META-INF/MANIFEST.MF. Este 
arquivo manifesto contém as definições de uso do conteúdo compactado e funcionam 
como arquivos executáveis, tendo uma de suas classes determinadas como a responsá-
vel por iniciar a execução da aplicação.
Main-Class:Aplicacoes.Classe é uma entrada possível para este arquivo manifesto cria-
do na compactação. Usando o comando java -jar exemplo.jar, podemos executar a 
aplicação direto do arquivo JAR. Isto permite maior segurança do conteúdo do arquivo 
compactado. 
Como exemplo, podemos imaginar que temos uma aplicação que contenha os seguin-
tes componentes: Teste.class, audio/som1.au, audio/som2.au, images/foto1.gif, e 
images/foto2.gif.
Com o comando jar cvf Teste.jar Teste.class audio images, podemos adicionar a classe 
Teste e as pastas audio e imagem no arquivo JAR compactado.
A execução do utilitário irá mostrar o progresso de sua compactação indicando todos 
os arquivos adicionados e compactados, mostrando o grau de compactação atingida 
naquele arquivo em porcentagem sobre o tamanho do conteúdo original como aparece 
a seguir.
//código6 
adding: Teste.class (in=9999) (out=9999) (deflated 50%)
adding: audio/ (in=0) (out=0) (stored 0%)
adding: audio/som1.au (in=4032) (out=3572) (deflated 11%)
adding: audio/som2.au (in=2566) (out=2055) (deflated 19%)
adding: images/ (in=0) (out=0) (stored 0%)
adding: images/foto1.gif (in=157) (out=160) (deflated -1%)
adding: images/foto2.gif (in=158) (out=161) (deflated -1%)
79 
O arquivo JAR, como citado anteriormente, contém, além das classes e arquivos comple-
mentares, a indicação do conteúdo compactado em arquivo manifesto.
//código7 
META-INF/MANIFEST.MF
foto1.gif
foto2.gif
som1.au
som2.au
Para executar uma classe em forma de plugin em um navegador, por exemplo, basta 
utilizar a tag <applet> para acionar o arquivo que contém a classe desejada, além de 
outros parâmetros como tamanho da janela, etc.
A seguir, podemos ver um exemplo de como poderia ser implementado o código HTML 
para chamar esta applet criado anteriormente em uma página html.
//código8 
<applet code=Teste.class
 width=”100” height=”100”>
</applet>
 
Um ponto importante é que como a classe está dentro de um arquivo JAR, é preciso in-
dicar este detalhe dentro da tag de chamada da classe, assim como mostrado no código 
9.
//código9 
<applet code=Teste.class
 archive=”Teste.jar”
 width=”100” height=”100”>
</applet>
É possível indicar a localização do arquivo, exibindo dentro da tag, o caminho completo 
para acesso ao arquivo compactado como indicado no código a seguir.
80 
//código10 
<applet code=Teste.class
 archive=”applets/Teste.jar”
 width=”100” height=”100”>
</applet>
 
Podemos também executar um arquivo JAR como aplicação independente de um na-
vegador por meio do utilitário java que ativa a JVM usando um comando semelhante 
a java -jar Teste.jar” ou “java -jar App1\Teste.jar para indicar o caminho completo da 
aplicação.
Fonte: o autor.
81 
1. O chamado Javadoc foi tratado dentro da unidade e se refere a algo muito inte-
ressante ofertado pela linguagem Java. Descreva o que seria Javadoc.
2. Dentre os diversos tipos de dados disponíveis, existem dois tipos chamados de 
int e double. Explique a diferença entre ambos.
3. Temos duas simbologias para indicar comentários dentro da linguagem Java 
que podem ser utilizadas livremente sem afetar a lógica de um código. Quais 
são?
4. Operadores são divididos em categorias para melhor organização e compre-
ensão de suas funções. Cite quais são os operadores relacionais usados em 
Java.
5. Existem diversos operadores na linguagem Java. Qual a diferença entre os 
operadores = e ==?
MATERIAL COMPLEMENTAR
Java Para Games: o tutorial para sua 
grande aventura
Helder Henrique do Nascimento Peres
Editora: Viena
Sinopse: livro indicado para programadores Java que desejam iniciar estudos para desenvolvimento 
de jogos 2D.
DEITEL, P. J. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010.
FLANAGAN, D. Java: o guia essencial. 5. ed. Porto Alegre: Bookman, 2006.
MANZANO, J. A. N. G. Java 7 programação de computadores: guia prático de in-
trodução, orientação e desenvolvimento. São Paulo: Érica, 2011.
SCHILDT, H. Programação com Java. Sáo Paulo: Mcgraw Hill Education, 2014.
REFERÊNCIAS
83
1) É um utilitário de geração de documentação que acompanha o pacote de de-
senvolvimento JDK.
2) int se refere a um tipo de dado para números inteiros, enquanto que double se 
refere a um conjunto maior de números contendo os números inteiros e núme-
ros com casas decimais.
3) // e /* */
4) > maior, < menor, >= maior ou igual, <= menor ou igual, == igualdade e != 
diferença.
5) = se refere ao operador de atribuição, e o sinal == se refere a igualdade nos 
operadores relacionais.
GABARITO
U
N
ID
A
D
E IV
Professor Esp. Ronie Cesar Tokumoto
MANIPULAÇÃO DE DADOS
Objetivos de Aprendizagem
 ■ Compreender a teoria relacionada ao fluxo de dados.
 ■ Conhecer alguns dos recursos existentes para entrada de dados em 
Java.
 ■ Conhecer alguns dos recursos existentes para saída de dados em 
Java.
 ■ Compreender como são estruturas de dados do tipo vetor e matriz 
para dados. 
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
 ■ Fluxo de dados
 ■ Entrada de dados
 ■ Saída de dados
 ■ Vetores e matrizes
INTRODUÇÃO
Após uma unidade introdutória aos conceitos fundamentais da programação em 
linguagem Java, na qual foram tratados aspectos iniciais sobre documentação, 
tipos de dados e seu uso em variáveis, foi possível iniciar o caminho para com-
preender o trabalho do desenvolvedor de software em Java.
Complementando os conceitos vistos anteriormente, essa unidade traz a 
ideia de como ocorre a interação homem-máquina dentro do papel do usuário 
e a maneira pela qual é realizada a entrada e saída de dados que compõem a fun-
ção das aplicações em geral, juntamente com o processamento.
Iniciando com o conceito base de fluxo de dados que representa um dos fun-
damentos da linguagem Java, é possível compreender como ocorre o uso desses 
fluxos dentro da ideia da linguagem Java.
Na sequência, é tratada a entrada de dados em Java, que tem a finalidade de 
servir de porta de entrada para dados na aplicação, em geral, por meio da inte-
ração do usuário que informa dados ao sistema.
Posteriormente, a saída de dados demonstra o lado inverso, em que dados 
processados geram novas informações, que são devolvidas ao usuáriopor men-
sagens no monitor, por exemplo. Esta saída de dados pode também ocorrer como 
o armazenamento desses dados processados em um arquivo físico permanente 
ou meio de transmissão de dados.
Em Java, como existem diversos complementos denominados de bibliote-
cas, os quais contêm métodos já implementados para tratar ações específicas, 
com a finalidade de realizar as tarefas de entrada e saída, é possível escolher a 
forma decodificar essas ações.
Finalmente, um tipo especial de dado é utilizado para declarar as estruturas 
que agrupam maiores quantidades de dados que variáveis, chamadas de vetores 
ou matrizes com linhas e colunas de dados.
Assim, com os conteúdos dessa unidade, será possível avançar para novas 
etapas do estudo na última unidade desse livro e do material da disciplina de 
Programação de Sistemas II.
Introdução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
87
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E88
FLUXO DE DADOS
A linguagem Java se baseia em fluxos para processos de entrada e saída de dados 
em seus programas. Sendo assim, é preciso compreender como funcionam tais 
fluxos antes de explicar de que forma utilizá-los dentro da linguagem.
A passagem de dados entre os métodos das classes de uma aplicação se dá 
pelas chamadas mensagens e tem uma ideia diferente da passagem de dados em 
programação estruturada, uma vez que, devido às características da orientação 
a objetos, esta passagem é mais restrita e com pouca visibilidade entre os com-
ponentes da aplicação (MANZANO, 2011).
Mensagens são passadas de um objeto a outro por meio de seus métodos que 
manipulam dados recebidos e os retransmitem para outros métodos que possam 
dar sequência aos eventos na execução da aplicação. As mensagens em si podem 
representar tipos de dados simples ou compostos de acordo com as necessida-
des na aplicação e respeitando limitações da linguagem.
É importante perceber que o chamado fluxo é o trabalho de processamento 
gerado por demandas de uma aplicação que podem resultar a partir de dados 
que precisam circular pelo sistema.
Tais dados podem ser obtidos a partir da interação de usuários ou de outras 
fontes que geram esses processamentos para depois retornarem outras informa-
ções enviadas por meio de canais de saída como monitores e impressoras.
Sistemas de bancos de dados são exemplos típicos de aplicações que geram 
grandes quantidades de fluxos de dados em função da enorme demanda de con-
sultas a bases de dados para gerar relatórios e atualizações de dados.
Entrada de Dados
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
89
ENTRADA DE DADOS
 Como a linguagem Java se baseia no fluxo de dados (stream) para controlar 
entrada de dados, tendo como padrão, o teclado. O método InputStreamReader() 
serve de parâmetro para o construtor BufferedReader do tipo Unicode para 
receber caracteres em geral, mas pode-se usar outros métodos além deste para 
a mesma função (DEITEL, 2010).
No caso de números, é possível utilizar dois métodos da classe Integer para 
receber tipos específicos de valores com o método parseint() para a entrada de 
valores inteiros, e parsefloat() da classe Float para valores de ponto flutuante 
(com casas decimais).
Outra possibilidade de trabalhar a entrada de dados é por meio da classe 
Scanner, que tem uma forma mais simples de uso e, dentro dos exemplos deste 
material, será a mais usual.
A entrada de dados pode ocorrer de diversas formas e existem bibliote-
cas indicadas para cada tipo de atividade, mas pode ser necessária a criação de 
bibliotecas novas de acordo com as particularidades que uma aplicação especí-
fica necessite.
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E90
De qualquer maneira, é importante que, sempre que precisar de algum tipo 
de entrada de dados, verifique se já existe uma biblioteca que trabalhe com o 
tipo de atividade desejada e que contenha até métodos mais completos e melho-
res do que os inicialmente esperados e desejados. 
Todo tipo de entrada de dados permite que uma aplicação receba dados para 
utilizar ou não em algum processamento e, por meio deste, poder também gerar 
ou não algum tipo de dado de saída que gere informações ao usuário, por exemplo.
A digitação direta de dados pelo usuário é uma forma bastante comum de 
entrada de dados, mas em sistemas, esta é apenas uma das etapas desta alimen-
tação de dados. Depois de o sistema ter sido alimentado com dados em volume 
suficiente para que possa acionar seus mecanismos de gerenciamento destes dados, 
a aplicação já pode usar estes próprios dados como entrada sem a necessidade 
de interação de um usuário em diversos processos, como ocorre em processos 
automáticos como backups e geração de relatórios pré-programados em siste-
mas de banco de dados.
Outro tipo de entrada pode vir de arquivos de dados gravados em disco 
que podem alimentar processos de uma aplicação, como no caso de consultas 
a bases de dados. 
Também existe o acesso a dados remotos por meio de redes corporativas ou 
pela nuvem da Internet, em que é possível que um sistema possa colher dados 
diversos da rede mundial para através de buscas refinadas, gerar novos dados que 
tragam diferentes tipos de dados não antes obtidos diretamente através de entradas 
de dados por usuários ou consultas a bases de dados locais (MANZANO, 2011).
Um processo que utiliza ideia semelhante é o chamado Big Data, o qual tra-
balha dados já existentes de consultas a produtos de interesse na Internet para 
formular publicidades mais otimizadas de acordo com ofertas que sejam dentro 
daquilo que o usuário costuma procurar, e assim, tendo maior chance de êxito 
em sua função de gerar vendas onl-ine.
Saída de Dados
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
91
SAÍDA DE DADOS
Para a saída de dados, a linguagem Java possui o monitor como dispositivo 
padrão de saída de fluxo de dados e os métodos da classe System print e println 
são alguns dos mais utilizados seguindo a sintaxe System.out.print() e System.
out.println(). A saída de dados também segue a forma de trabalho da entrada de 
dados e depende de bibliotecas, mas existem certos tipos de entradas de dados 
não contempladas pelas saídas de dados e vice-versa (MANZANO, 2010).
Existe um dispositivo padrão, tanto para saída, quanto para entrada de dados, 
e isso já mostra a necessidade e a provável preexistência de uma biblioteca ade-
quada a cada necessidade em relação a entrada ou saída de dados.
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E92
//código1 
Exemplo de Entrada e Saída de Dados
import java.io.*;
...
try {
 System.out.println(“Exemplo de Entrada e Saída de Dados”);
 BufferedReader br = new BufferedReader (new 
InputStreamReader(System.in));
 varTexto = br.readLine();
 BufferedReader br = new BufferedReader (new 
InputStreamReader(System.in));
 varNumero = Integer.parseInt (br.readLine ());
 System.out.println (“Texto: “ + varTexto);
 System.out.println (“Número: “ + varNumero);
}
catch (Exception e) {
 varTexto = “”;
 varNumero = 0;
} ...
A seguir, um exemplo de uso da classe Scanner para receber dados pelo teclado, 
assimcomo feito no exemplo anterior para receber texto e depois valor numérico.
//código2 
import java.util.Scanner;
...
 Scanner s = new Scanner (System.in);
 System.out.print (“Nome: “);
 varTexto = s.nextLine();
...
 
Pode-se usar além de nextLine(), nextInt(), nextFloat(), nextByte(), nextLong(), 
nextDouble(), e nextLine().charAt(0). por exemplo, para os tipos específicos 
Saída de Dados
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
93
desejados, nos quais o compilador se encarrega de averiguar as entradas de dados 
fornecidas para cada método desses.
É possível fixar ainda um formato para valores de ponto flutuante utilizando 
a classe DecimalFormat, comforme exemplo de trecho de código a seguir:
//código3
import java.text.DecimalFormat;
...
DecimalFormat df = new DecimalFormat ();
 df.applyPattern (“0.00”);
 System.out.println (“Valor formatado: “ + df.format (varNumero));
... 
Como um segundo exemplo, é apresentado um código Java para o cálculo da 
potência de um número com expoente 2 em um código simples e sem recursos 
especiais gráficos:
 
//código4
import java.util.Scanner;
public class Teste {
 public static void main(String[] args) {
 Scanner input = new Scanner (System.in);
 int x,y;
 x = input.nextInt();
 y = x * x;
System.out.printf(“Quadrado de %d é %d\n”, x,y);
 }
}
* 0.5 ao invés de 0,5 na fórmula
** concatenação de strings com sinal + ao invés de vírgula
*** O mesmo nas linhas abaixo
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E94
A exemplo do que ocorre na entrada de dados, a saída pode oferecer diferentes 
formas de executar-se em função de processamentos que podem ocorrer na forma 
de exibição de dados em uma saída padrão, conforme mostrado nos exemplos.
Além disso, podem ser armazenados dados em um arquivo gravado em 
disco, alimentando bancos de dados ou arquivos simples de dados em aplicações 
com menor volume de dados, ou para destinos remotos por meio da Internet, 
por exemplo.
Existem bibliotecas prontas contendo diversos tipos de opções de métodos 
para gerar saídas de dados, mas não é preciso conhecer todos já em uma etapa 
inicial de estudos, pois, pela grande quantidade de opções, é algo inviável.
É interessante conhecer opções e, de acordo com a necessidade, aumentar a 
gama de bibliotecas que se utiliza na confecção de novos projetos, por meio de 
pesquisas sobre alternativas que possam atender cada demanda que um novo 
projeto possa gerar.
Trabalhar com entrada e saída de dados é fundamental no desenvolvimento 
de aplicações, pois normalmente toda a funcionalidade de uma aplicação 
depende de sua interação com usuários e dados.
Algumas técnicas são importantes para lidar com essa funcionalidade e 
são tratadas no decorrer das duas disciplinas de Programação de Sistemas, 
como o tratamento de exceções e interface com o usuário.
O tratamento de erros melhora a experiência de uso da aplicação e solucio-
na falhas que podem ocorrer devido a problemas na lógica ou em situações 
indesejáveis, mas que podem ser evitadas.
Já a interface pode ser textual ou gráfica. Entretanto, independentemente 
da opção de escolha do desenvolvedor, deve ser confortável ao uso, con-
tendo informações claras e com o mínimo de pontos que criem confusão 
durante o uso.
Fonte: o autor.
Vetores e Matrizes
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
95
VETORES E MATRIZES
Variáveis são estruturas de dados extremamente úteis, utilizadas em pratica-
mente todos os programas criados em Java. O problema é que cada variável pode 
armazenar apenas um valor de um tipo específico por vez. Para melhorar a cria-
ção de programas que necessitem conter maior quantidade de valores de um 
mesmo tipo, uma saída é utilizar estruturas mais complexas, capazes de arma-
zenar maior quantidade de valores. Por meio de vetores ou matrizes podemos 
armazenar grandes quantidades de valores, utilizando uma estrutura de dados 
identificada por um nome único.
Existem outras formas de realizar ações de entrada ou saída de dados com a 
programação Java, mas cabe ao programador adotar a maneira que atenda 
as suas necessidades e seja mais agradável de programar.
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E96
É importante lembrar que os elementos contidos em um vetor ou matriz 
precisam ser todos de um mesmo tipo e que sua organização dentro da estru-
tura de dados ocorre por meio de índices da posição na qual determinado dado 
deve estar armazenado nessa estrutura.
Foi citado que os elementos são de um mesmo tipo, mas não necessariamente 
são tipos simples, como números inteiros ou caracteres. Podem ser atribuídos 
a vetores ou matrizes elementos mais complexos como objetos, por exemplo.
Para definir um vetor, temos que compreender antes a forma pelo qual ele é 
estruturado, pois sua declaração e uso dependem da compreensão da diferença 
entre os dois tipos de estrutura.
Vetores são listas de valores com apenas uma dimensão, ou seja, seus valo-
res contêm apenas um índice para referência e busca dentro da estrutura. Mas 
matrizes podem conter mais dimensões, sendo que cada uma necessita do uso 
de um índice diferente para apontar a posição de valores dentro da estrutura 
(MANZANO, 2011).
Assim, podemos declarar um vetor por meio de uma sintaxe semelhante à 
indicada no exemplo a seguir:
//código5 
 tipo[] vetor = new int[quantidade];
 
Um exemplo para essa declaração de vetores pode ser dado por meio da 
declaração indicada no código a seguir, no qual é declarado um vetor chamado 
lista para depois ser instanciado como um vetor de 10 posições.
//código6 
int[] lista = new int[10];
 
Aqui, temos um vetor com capacidade de armazenamento de até 10 valo-
res numéricos inteiros, com índices variando de 0 a 9 para a identificação dos 
dados dentro da estrutura. 
Vetores e Matrizes
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
97
Podemos atribuir valores a vetores de duas formas distintas, proporcionando 
maior flexibilidade na codificação e atendendo a um maior número de situações 
possíveis. Uma delas é através da atribuição direta de um valor a uma posição 
específica do vetor usando, por exemplo, uma instrução como a mostrada no 
exemplo a seguir, em que é atribuído o valor 50 à quinta posição do vetor.
//código7 
lista[5] = 50;
 
Outra forma é por meio da atribuição de uma lista de valores a diversas posi-
ções do vetor diretamente, sem a necessidade da indicação de cada posição a ser 
preenchida com estes valores indicados, como mostra o código 8, no qual são 
passados dez valores para completar todo o vetor.
//código8 
lista = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
 
Caso fosse informada uma lista com menor quantidade de valores, seriam 
preenchidas apenas as posições necessárias do vetor, para acomodar todos os 
valores pedidos e, caso a lista de valores informada seja maior que a capacidade 
do vetor, os valores restantes são descartados.
No caso de uma matriz, muda-se apenas a parte sintática da instrução de 
declaração desta estrutura, incluindo uma quantidade adequada de índices para 
comportar todos os elementos desejados de forma organizada.
Um ponto interessante de imaginar é que podemos criar matrizes com duas, 
trêsou mais dimensões, gerando um pouco de dúvida em relação a como imagi-
nar a estrutura fisicamente. Por ser algo lógico e não físico, a linguagem suporta 
tranquilamente diversas dimensões, bastando apenas que a forma de organização 
dos dados dentro dela seja compreendida pelo programa durante a codificação. 
A sintaxe básica para a declaração de uma matriz segue o modelo ilustrado 
na Figura 9, na qual são utilizados, como de costume, termos genéricos para ele-
mentos que possam assumir diferentes nomes ou valores.
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E98
//código9 
tipo[]...[] matriz = new tipo[quantidade]...[quantidade];
 
O uso das reticências foi adequado pelo fato de podermos criar matrizes 
com duas ou mais dimensões, sendo que cada uma é representada por um par 
[]. Um exemplo de matriz de duas dimensões é ilustrado no exemplo do código 
a seguir, em que é declarada uma matriz de caracteres.
//código10 
char[][] = new char[3][3];
 
Caso seja desejada maior quantidade de dimensões, basta adicionar mais 
[] (colchetes) com a indicação da quantidade de índices para cada dimensão. 
A seguir, temos um pequeno exemplo ilustrativo para demonstrar o uso de um 
vetor contendo valores e que são exibidos com a ajuda de algumas instruções, 
as quais fazem parte do estudo de Java dentro da disciplina.
//código11
public class Vetor
{
 
 public static void main(String[] args)
 {
 final int limite = 3;
 int[] vetor = { 1, 2, 3 };
 for (int i = 0; i < limite; i++)
 {
 System.out.println(“Valor “ + i + “: “ + vetor[i]);
 }
 }
}
Vetores e Matrizes
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
99
Assim, por meio destes vários exemplos, foi possível compreender um pouco 
mais desta linguagem de programação cheia de recursos, moderna e capaz de ser 
utilizada juntamente com muitas das tecnologias de ponta dentro da área de TI.
 
 
 
 
 
 
MANIPULAÇÃO DE DADOS
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
IVU N I D A D E100
CONSIDERAÇÕES FINAIS
Nesta unidade, com os avanços no estudo da programação em Java, foi possível 
conhecer mais conceitos da linguagem Java, por meio de exemplos que auxi-
liam na compreensão destas ideias, permitindo a formação de conhecimento 
base para o aprendizado da linguagem.
Iniciando a unidade com conceitos de fluxo de dados, foi possível compre-
ender como o funcionamento da comunicação de dados dentro da programação 
orientada a objetos.
Na sequência de conteúdos, foi vista a parte que cita o mecanismo de entrada 
de dados dentro da aplicação por usuários, sabendo que podem ocorrer entradas 
por meios, como a leitura de dados em um arquivo, e via rede local ou Internet.
O mais importante é saber o conteúdo base para depois encaminhar os estu-
dos sobre os demais conceitos da linguagem e compreender, também, além do 
método de entrada, o de saída, que é semelhante àquele, mas em caminho inverso.
Foram apresentados exemplos de saída de dados, mostrando a versatilidade 
da biblioteca, a qual permite que sejam realizadas tarefas de diferentes manei-
ras na linguagem Java. Também foram tratados os detalhes de como estruturas 
de dados mais complexas que variáveis são utilizadas na linguagem Java, com 
exemplos para melhor aprendizado e conceitos diversos.
Exemplos demonstram variações no uso destas estruturas e servem para 
introduzir todos ao conteúdo, mas não a dizer que é programador e já sabe tudo, 
precisando, inclusive, de computadores para estas atividades. Vetores que repre-
sentam linhas de dados, enquanto que matrizes são consideradas de agrupamentos 
de vetores, só que estas duas estruturas de dados devem ser consideradas como 
estruturas semelhantes dentro de seus conceitos e aplicações.
Finalmente, na quinta unidade, serão tratados temas complementares ao 
que é trabalhado nesta disciplina e na disciplina referente à segunda parte das 
disciplinas do curso.
101 
Vetores e matrizes são estruturas de dados muito úteis que permitem a solução de di-
versos problemas de armazenamento temporário de dados em memória de forma or-
ganizada e prática.
Imaginando seu uso em uma aplicação prática de programação, é possível usar matrizes 
em jogos diversos, como no caso de caça-palavras, jogo da velha, damas, xadrez, batalha 
naval e outros que necessitem de elementos dispostos em linhas e colunas.
Utilizando a ideia de alguns desses exemplos, podemos ter que, um tabuleiro de damas 
ou xadrez possui 8 linhas e 8 colunas. Assim, teríamos que criar uma matriz 8x8 para 
comportar elementos de um jogo de xadrez. 
No caso de um jogo da velha, temos 3 linhas e 3 colunas para a inclusão dos símbolos 
“X” e “O” para cada jogador na partida, tendo, então, que utilizar uma matriz 3x3 como 
base para o jogo.
Jogos como caça-palavras e batalha naval podem ter tamanhos variados e necessitam 
de matrizes com dimensões MxN, sendo M a quantidade de linhas e N a de colunas para 
formar o tabuleiro para esses jogos.
Poderíamos, então, declarar matrizes diversas para servir como base para os jogos cita-
dos, utilizando instruções como as dos exemplos a seguir:
//código11 
 int tabuleiro [8][8];
 char jogoDaVelha [3][3];
 int batalhaNaval [M][N];
 
Um detalhe dos exemplos do código 11 são M e N, que seriam variáveis ou constantes 
com valores inteiros para definir as dimensões para linhas e colunas da matriz.
Após essa análise, pode surgir a dúvida em relação a como seriam utilizadas essas matri-
zes, sendo que os jogos lidam com representações gráficas para peças de tabuleiro ou 
elementos utilizados para cada jogo.
A matriz seria apenas uma referência para o de posicionamento de elementos do jogo e 
para a análise da lógica e funcionamento do mesmo, sendo que os valores contidos na 
matriz seriam base para a associação com os elementos gráficos de cada tipo a serem 
exibidos graficamente no tabuleiro gráfico caso o jogo tenha interface gráfica.
Fonte: o autor.
102 
1. O fluxo de dados representa uma das características do paradigma orientado a 
objetos. Descreva o que seria esse fluxo de dados.
2. A entrada de dados representa uma forma de uma aplicação ter acesso a dados. 
Cite uma biblioteca capaz de oferecer métodos capazes de realizar essa ta-
refa.
3. O processo de saída de dados é muito utilizado na interface entre o usuário e 
o sistema. Dê um exemplo de linha de código capaz de exibir a mensagem 
“Exemplo de Saída de Dados”.
4. Qual o nome da biblioteca Java capaz de oferecer recursos de entrada de 
dados para a seguinte instrução:
x = input.nextInt();
5. Dê exemplos de instruções de declaração para as seguintes estruturas de 
dados:
5.1. vetor de inteiros para armazenar idades de 100 pessoas.
5.2. matriz de números capazes de armazenar até 50 pesos e alturas.
Material Complementar
MATERIAL COMPLEMENTAR
Java - Uma Abordagem Sobre 
Programação Java
Geraldo Cesar Cantelli
Editora: Viena
Sinopse: livro que abrange o desenvolvimento de 
aplicativos e serviços para diversas plataformas de forma evolutiva e bem estruturada.
REFERÊNCIASREFERÊNCIAS
104
DEITEL, P.J. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010.
MANZANO, J. A. N. G. Java 7 - programação de computadores: guia prático de 
introdução, orientação e desenvolvimento. São Paulo: Érica, 2011.
REFERÊNCIAS
105
GABARITO
1) Passagem de dados entre métodos e classes de uma aplicação.
2) Java.io.
3) System.out.println(“Exemplo de Saída de Dados”).
4) Scanner.
5.1. int idade[100].
5.2. double valores[2][50].U
N
ID
A
D
E V
Professor Esp. Ronie Cesar Tokumoto
COMPLEMENTOS E ESTUDO 
DE CASO
Objetivos de Aprendizagem
 ■ Conhecer métodos de detectar e criar mecanismos para prevenir 
erros.
 ■ Compreender aspectos teóricos por meio da visualização de um 
exemplo.
 ■ Compreender algumas etapas da codificação de software em testes.
 ■ Compreender algumas etapas da codificação de software como 
manutenção, atualizações e liberação de novas versões.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
 ■ Tratamento de exceções
 ■ Exemplo de aplicação
 ■ Fase de testes
 ■ Atualizações e novas versões
INTRODUÇÃO
Na unidade anterior, vimos que recursos de entrada e saída de dados muito bons 
são disponibilizados por classes diversas para uso na linguagem Java, e estas 
diversas alternativas mostram um pouco da variedade de opções tanto internas 
à linguagem quanto externas, por meio de bibliotecas que podem ser importa-
das durante a codificação em linguagem Java.
Inicialmente, para complementar a ideia do uso de métodos para entrada e 
saída de dados, é introduzido o conceito do tratamento de exceções que se refe-
rem a métodos para prevenção e correção de falhas em código. O tratamento 
preventivo de erros é a melhor forma de se obter uma aplicação eficiente e capaz 
de reduzir ao máximo a ocorrência de situações indesejadas, as quais podem 
comprometer a funcionalidade ou a experiência de uso de software.
Além do tratamento preventivo, o tratamento de erros, os quais podem vir 
a acontecer durante a execução, devido a processamento incorreto ou entradas 
de dados inválidas não tratadas, é um inconveniente maior, pois muitas vezes 
são detectados apenas durante o uso cotidiano, gerando demandas emergenciais 
de manutenção de software.
Completando a unidade, é criado um exemplo de aplicação simples, o qual 
serve para unificar conteúdos tratados no livro e para complementar os estudos 
com a visualização de um problema completo a ser resolvido.
Desde a verificação das funcionalidades que a aplicação deva contemplar, é 
preciso imaginar como será a interface de uso e como ocorrerá a interação do 
usuário com o software.
Um código é proposto como solução para o problema, atendendo os requi-
sitos mínimos e não apresentando erros diretos no seu funcionamento. Porém, 
é preciso fazer uma verificação por meio de testes para impedir que os inconve-
nientes - os quais podem ser tratados previamente - sejam identificados apenas 
pelos usuários finais.
Assim, os testes poderão verificar se existem falhas ou pontos a serem melho-
rados na aplicação para que seja entregue uma melhor experiência aos seus 
usuários.
Introdução
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
109
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E110
TRATAMENTO DE EXCEÇÕES
Consideremos exceções como 
eventos (esperados ou não), que 
possam ocorrer em tempo de 
execução, podendo ser estes 
esperados ou não, e de forma 
que sejam previstos durante 
o projeto do software. Alguns 
comandos são próprios para 
lidar com situações desse tipo, 
capturando valores de retorno 
referentes a diferentes erros, e 
permitindo que o programador 
possa lidar com esses valores no 
próprio código.
Caso a exceção não possa 
ser tratada por algum motivo 
pelo próprio software, o sistema operacional também possui recursos para o tra-
tamento de diversos tipos de erros. Sabendo-se que podem ocorrer casos em que 
nem o próprio sistema operacional possa lidar com estes e tenha problemas em man-
ter sua estabilidade, podendo chegar ao ponto de ocorrer travamento do mesmo.
O comando try é capaz criar uma situação controlada de funcionamento do 
código de forma que seja possível a captura de erros com o comando catch, e seu 
devido tratamento quando possível. Complementando o tratamento de erros, 
temos o comando finally que é responsável por realizar o bloco de comandos 
em caso de erros não ocorrerem e a execução do programa poder seguir nor-
malmente seu fluxo (DEITEL, 2010).
 
Tratamento de Exceções
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
111
//código1
try {
 <instrucoes>
}
catch (Erro1 <valor) {
 <Instrucoes de tratamento>
}
catch (Erro2 <valor) {
 <Instrucoes de tratamento>
}
finally {
 <Instrucoes normais>
}
//código2
System.out.println (“X: “);
try {
 BufferedReader br = new BufferedReader (new InputStreamReader(System.
in));
 Altura = float.parseFloat (br.readline());
}
catch (Exception e) {
 altura= 0;
}
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E112
//código3
public void BuscaVetor(int i)
{
 try
 {
 // Tentativa de busca de elemento em vetor
 System.out.println(lista[i]);
 }
 // Comando que captura o erro retornado pela busca no vetor
 catch(ArrayIndexOutOfBoundsException erro)
 {
 System.out.println(“Busca falhou”);
 }
 // Captura erro não ligado a busca no vetor
 catch(Excecao erro)
 {
 System.out.println(“Erro inesperado”);
 }
 // Comando que encerra o tratamento de erros
 finally
 {
 System.out.println(“executou finally”);
 }
} 
É possível implementar tratamentos de exceções de acordo com a necessidade 
do software por meio do comando extend, que amplia a flexibilidade do tra-
tamento de exceções e permite maior personalização de feedbacks ao usuário 
(DEITEL, 2010).
Tratamento de Exceções
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
113
//código4
public class BuscaSemSucesso extends Excecao
{
 // Sobrecarga de método Excecao para ampliação das exceções tratadas
 public String getMessage()
 {
 return “Índice indicado não encontrado na lista”;
 }
}
 
Após a criação de novas opções de tratamentos realizada pelo comando extend, 
é possível utilizar dentro do restante do código os novos métodos livremente 
para situações nas quais se aplique o mesmo tipo de exceção.
//código5
public void OutraBusca(int i)
{
 try
 {
 System.out.println(lista[i]);
 }
 catch(BuscaSemSucesso erro)
 {
 System.out.println(erro.getMessage());
 }
}
 
Em alguns casos, é possível antecipar exceções e criar mecanismos para realizar 
o tratamento de erros previsíveis e reduzir a chance de falhas do software, que 
poderiam ser evitadas por meio de um bom conjunto de métodos para o trata-
mento de exceções.
Aqui, temos o controle da faixa de valores que podem ser buscados no vetor 
utilizado, pois sendo um vetor de tamanho pré-definido, parâmetros que tragam 
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E114
valores fora da faixa aceita para o índice de busca podem ser verificados antes 
mesmo da tentativa de busca no vetor.
//código6
public void OutraBusca (int i) throws BuscaSemSucesso
{
 if(i>-1 && i<50)
 {
 throw new BuscaSemSucesso ();
 }
 else
 {
 System.out.println(lista[i]);
 }
}
 
Existem métodos diversos para uso com o tratamento de exceções, podendo ser 
encontrados na biblioteca classe java.lang.Throwable, na qual métodos como 
printStackTrace() e getMessage() podem ser úteis e largamente usados.
O método printStackTrace() mostra informações de depuração da exceção,como tipo de exceção, linha, método e classe na qual foi gerada.
Já o método getMessage() traz apenas uma mensagem padrão da exceção 
gerada. Na codificação de novas exceções é possível personalizar textos a serem 
retornados ao usuário.
Tratamento de Exceções
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
115
//código7 
public class BuscaEmLista
{
static public void main(String[] args)
{
 new BuscaEmLista ();
 }
 BuscaEmLista ()
 {
 Sistema s = new Sistema();
 try
 {
 s. OutraBusca();
 }
 catch(AlunoInexistente erro)
 {
 System.out.println(erro.getMessage());
 }
 catch(Exception erro)
 {
 erro.printStackTrace();
 }
 finally
 {
 s = null;
 }
 }
}
 
O tratamento de erros é algo rotineiro para programadores; alguns deles ocorrem 
regularmente devido às imperfeições na lógica ou com parâmetros que possam 
ser passados a métodos sem que possam ser previamente analisados e descar-
tados se forem indevidos.
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E116
Erros matemáticos, como divisões por zero (ArithmeticException), de 
acessos a dados, como aqueles ocorridos por índices indevidos ou negativos, 
ou, ainda, valores nulos passados como referências (NullPointerException ou 
NegativeArraySizeException), índices com valores fora de limites em vetores 
(ArrayIndexOutOfBoundsException), ou erros mais fortes, como tentativas de 
acesso a recursos protegidos pela JVM (SecurityException).
Observe os trechos de código a seguir para compreender um pouco des-
sas formas indevidas de codificação que provavelmente gerariam exceções em 
tempo de execução de softwares Java.
//código8 
valor = -1;
Image[] imagens = new Image[10];
 System.out.println(imagens[valor]); // Tentativa de índice negativo
 System.out.println(imagens[10]); // Vetor conta de 0 a 9 neste caso 
O tratamento de erros está intimamente ligado à percepção de bom ou mau 
software pelo cliente, e esta deve ser explorada de forma a oferecer ao usu-
ário a melhor experiência possível de uso.
Exemplo de Aplicação
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
117
EXEMPLO DE APLICAÇÃO
Para complementar os estudos, é interessante elaborar um pequeno projeto prá-
tico voltado a melhor compreensão dos conteúdos abordados e também para 
que se possa visualizar uma aplicação completa, por mais simples que seja. Os 
exemplos, em geral, trazem trechos de código ou classes avulsas que mostram 
como é a aplicação de conceitos da programação Java, mas não mostram a tota-
lidade do que é uma aplicação muitas vezes (MANZANO, 2010).
Assim, imagine a situação na qual seja necessária a criação de uma aplica-
ção capaz de receber dados de um formulário usando uma interface gráfica e 
trabalhe esses dados para convertê-los de forma a atender as funcionalidades 
padrão da aplicação.
Essa aplicação deve funcionar como uma calculadora, em que terá uma inter-
face capaz de simular a parte visual, receber valores e trabalhá-los de forma a 
permitir a realização de cálculos matemáticos simples, retornando os resulta-
dos em um campo próprio para tal função.
Depois de concluída a aplicação, fica em aberta a possibilidade de o aluno 
modificar e incrementar a mesma da forma como achar conveniente para aper-
feiçoar sua experiência de uso e funcionalidades.
A Figura 1 mostra uma ilustração de como pode ser digitado o código para 
o arquivo Calculadora.java que será compilado no Prompt do Windows em 
seguida para gerar o arquivo bytecode Calculadora.class.
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E118
Figura 1 - Ilustração de como preparar o código 
Fonte: o autor.
A Figura 2 mostra a aparência da calculadora, bem simples, pois o foco da ati-
vidade é a parte lógica e de estrutura de código na linguagem Java para fins de 
estudo, mas facilmente é possível alterar sua aparência utilizando a API Swing, 
por exemplo. Na figura é mostrado que, após estar na pasta em que se encon-
tra o código fonte da aplicação, é usado o utilitário JAVAC para a verificação de 
erros e compilação do código para gerar o arquivo bytecode.
Em seguida, o utilitário JAVA que representa a máquina virtual é usado para 
interpretar e executar o arquivo bytecode que não precisa ter sua extensão adi-
cionada na linha de comando.
Exemplo de Aplicação
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
119
Figura 2 - Ilustração do processo de compilação e execução
Fonte: o autor.
Veja como seria a aparência desejada para essa calculadora e como seria seu uso 
por meio das imagens exemplo nas Figuras 2 e 3. Na Figura 3, um teste de exe-
cução é realizado para verificar se a funcionalidade da aplicação ocorre como 
desejada.
Figura 3 - Ilustração de execução da calculadora
Fonte: o autor.
Agora veja como ficaria o código em linguagem Java para desenvolver essa apli-
cação no código a seguir, lembrando que poderia ser feita de outras maneiras, 
e em outras linguagens diferentes de programação, como C, C++, C#, PHP, etc.
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E120
//código9 
public class Menu {
 public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
 double n1, n2, resp;
 char opcao;
 
 System.out.println (“+-----------------+”);
 System.out.println (“| Calculadora |”);
 System.out.println (“+-----------------+”);
 System.out.println (“| 7 8 9 |”);
 System.out.println (“| 4 5 6 |”);
 System.out.println (“| 1 2 3 |”);
 System.out.println (“+-----------------+”);
 System.out.println (“| + - * / |”);
 System.out.println (“+-----------------+”);
 n1= sc.nextDouble();
 opcao = sc.next().charAt(0);
 n2= sc.nextDouble();
 System.out.println (“+-----------------+”);
 
 switch (opcao) {
 case ‘+’ : resp = n1+n2;
 System.out.println (“Soma: “ + resp);
 break;
 case ‘-’ : resp = n1-n2;
 System.out.println (“Subtração: “ + resp);
 break;
 case ‘*’ : resp = n1*n2;
 System.out.println (“Multiplicação: “ + resp);
 break;
 case ‘/’ : resp = n1/n2;
Fase de Testes
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
121
 System.out.println (“Divisão: “ + resp);
 break;
 default : System.out.println (“Operação Inválida”);
 }
 System.out.println (“+-----------------+”);
 }
}
 
Observe que nessa primeira versão do código temos uma calculadora bem 
simples que poderia ter sido implementada em qualquer outra linguagem de 
programação, mesmo num paradigma estruturado ou funcional. Não existem 
especificidades como a obrigatoriedade da orientação a objetos pela ausência de 
herança, ou qualquer outra característica própria desse paradigma.
Também não existe interface gráfica nem recursos especiais de acesso a ser-
vidores, bancos de dados ou aplicação web que requerem outros recursos que 
uma linguagem ou outra já não suportaria. 
FASE DE TESTES
Os chamados testes de Caixa Branca e Caixa 
Preta servem para que um produto possa ser 
verificado em suas funcionalidades e errosdiversos possam ser descobertos durante o 
desenvolvimento, sem que o usuário final 
seja prejudicado por estes. Quando é testada 
apenas a funcionalidade da aplicação, sem 
levar em consideração seu código e como 
foi implementada, este é chamado de teste 
da Caixa Preta.
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E122
Tendo o código em mãos, toda a lógica e a correta codificação do programa 
podem ser testadas inclusive com auxílio de ferramentas automáticas capazes 
de apontar diversos tipos de problemas com o código da aplicação por meio dos 
testes de Caixa Branca. Como o código está disponível, os dois tipos de testes 
podem ser realizados e, assim, pontos a serem verificados tanto no uso quanto 
no código e sua lógica podem ser observados (FLANAGAN, 2006).
Como forma de testar a aplicação, é interessante realizar todas as funciona-
lidades possíveis da aplicação de maneira a constatar se não há erros na lógica 
ou na construção do código não verificadas pelo compilador. 
Além disso, um erro que poderia ter ocorrido seria se, ao invés do uso do 
tipo double para as variáveis, fosse utilizado o tipo int, por exemplo. Na ope-
ração de divisão, erros ocorreriam frequentemente. Por meio desses testes, é 
possível verificar que um tipo de tratamento de erros deve ser realizado para 
evitar o que ocorre na Figura 4, em que uma mensagem de erro é exibida em 
função da divisão por zero.
Figura 4 - Exemplo de erro de execução
Fonte: o autor.
O tratamento do erro indicado na Figura 4 também não é contemplado, mas 
poderia ser facilmente codificado esse acréscimo em uma atualização do código 
com certa facilidade.
É possível tratar o erro depois que ele ocorra, ou, de forma preventiva, poderia 
ser criado um meio de assegurar o uso apenas de valores válidos para a divisão, 
Atualizações e Novas Versões
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
123
excluindo a possibilidade do uso do valor zero para o segundo operador n2.
O trecho de código a seguir mostra a alteração que pode ser realizada den-
tro da estrutura case, modificando o caso da divisão para incluir o tratamento 
do possível erro de cálculo constatado.
//código10 
 case ‘/’ : if (n2 == 0)
 System.out.println (“Operação inválida. Divisão por 
zero”);
 else
 {
 resp = n1/n2;
 System.out.println (“Divisão: “ + resp);
 }
 break;
 
ATUALIZAÇÕES E NOVAS VERSÕES
A Figura 5 mostra o resultado da alteração no código, agora realizando o tra-
tamento da divisão por zero e mostrando a mensagem de retorno para 
o usuário, informando a impossibilidade de realização do cálculo 
desejado.
É possível observar uma perda na aparência simples da aplica-
ção que mantinha a exibição de mensagens contida dentro de um 
layout simples usando caracteres comuns. Isso faz parte do teste 
de Caixa Preta, em que é revisada a execução da aplicação e não sua 
construção, contribuindo, assim, com detalhes na aparência e 
funcionalidades propostas pelo software (MANZANO, 2010).
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E124
Também é possível fazer o tratamento desses erros estéticos para manter o 
padrão da execução, aumentando o tamanho de todo layout da aplicação para 
conter a mensagem de maior tamanho possível, ou adicionar a exceção que 
atenda esse caso específico.
Figura 5 - Ilustração da execução com tratamento de erro 
Fonte: o autor.
O código a seguir traz uma variação do código da Figura 4 já contemplando as 
duas modificações propostas e criando, assim, uma nova versão da aplicação 
que ,por não implementar grandes modificações na aplicação original, poderia 
receber a numeração 1.1 para essa versão.
Atualizações e Novas Versões
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
125
//código11 
import java.util.Scanner;
public class Calculadora {
 public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);
 double n1, n2, resp;
 char opcao;
 
 System.out.println (“+-----------------+”);
 System.out.println (“| Calculadora |”);
 System.out.println (“+-----------------+”);
 System.out.println (“| 7 8 9 |”);
 System.out.println (“| 4 5 6 |”);
 System.out.println (“| 1 2 3 |”);
 System.out.println (“+-----------------+”);
 System.out.println (“| + - * / |”);
 System.out.println (“+-----------------+”);
 n1= sc.nextDouble();
 opcao = sc.next().charAt(0);
 n2= sc.nextDouble();
 if (n2 != 0)
 System.out.println (“+-----------------+”);
 else
 System.out.println (“+-----------------------------------+”);
 
 switch (opcao) {
 case ‘+’ : resp = n1+n2;
 System.out.println (“Soma: “ + resp);
 break;
 case ‘-’ : resp = n1-n2;
 System.out.println (“Subtração: “ + resp);
 break;
 case ‘*’ : resp = n1*n2;
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E126
 System.out.println (“Multiplicação: “ + resp);
 break;
 case ‘/’ : if (n2 == 0)
 System.out.println (“Operação inválida. Divisão por zero”);
 else
 {
 resp = n1/n2;
 System.out.println (“Divisão: “ + resp);
 }
 break;
 default : System.out.println (“Operação Inválida”);
 }
 if (n2 != 0)
 System.out.println (“+-----------------+”);
 else
 System.out.println (“+-----------------------------------+”);
 }
 }
Como resultado, a estética volta ao normal e, assim, a nova versão da calculadora 
apresenta melhorias em sua funcionalidade, além da estética já mencionada, ofe-
recendo melhor experiência ao usuário, conforme mostra a Figura 6.
Atualizações e Novas Versões
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
127
Figura 6 - Execução da versão modificada da calculadora
Fonte: o autor.
É importante observar que todas as modificações implementadas devem ser 
recompiladas para depois serem executadas e terem suas funcionalidades nova-
mente testadas. Assim, é possível comprovar a importância de uma fase de testes 
em aplicações criadas, a fim de reduzir ao máximo a chance de entrega de produtos 
incompletos ou com defeitos diversos, que podem ser previamente descobertos 
e resolvidos dentro da própria desenvolvedora.
Em uma terceira versão, é possível incrementar a forma pela qual é desenvol-
vida a aplicação, separando classes para ações do código, como receber os dados 
e realizar os cálculos, gerando uma nova versão já mais refinada.
Em uma nova versão, poderiam ser incluídas as classes MATH e SWING, 
para acrescentar recursos matemáticos mais complexos e uma interface gráfica 
em forma de formulário, o que já agregaria muitas modificações importantes 
à aplicação e, assim, a nova versão poderia ser identificada como 2.0 devido à 
mudança mais profunda em todos os aspectos.
COMPLEMENTOS E ESTUDO DE CASO
Reprodução proibida. A
rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
VU N I D A D E128
Finalizando essa unidade, é perceptível a boa contribuição do uso de um estudo 
de caso para exemplificar de que forma ocorre a aplicação dos conhecimentos 
estudados em uma simples situação de simulação do dia a dia do profissional 
da área de desenvolvimento.
De acordo com o ranking divulgadopela Tiobe, empresa especializada em 
qualidade de software, temos nas três primeira posições da lista de popula-
ridade de linguagens de programação uma soma de cerca de 25% do mer-
cado de linguagens ocupados por Java, C e C++ em ordem de ranking, e 
mais cerca de 6% das variantes da linguagem C, como C# e Objective-C.
Uma linguagem que está em posição respeitosa e vem crescendo gradati-
vamente dentre os profissionais é a Phyton, com cerca de 3,5%, ocupando a 
quarta posição. Além de Javascript, que também surge com grande fatia de 
mercado na sétima posição, com cerca de 3%.
Interessante analisar que Visual Basic.NET ocupa a sexta posição, com cer-
ca de 3,4%, e Assembly com aproximadamente mais 2,8%, observando que 
antes estava na décima segunda posição, mostrando seu crescimento em 
virtude da demanda por programação de hardware.
Aparecem também na lista, as linguagens PHP, que cairem muito nos últi-
mos tempos, Ruby e Perl. Somando essas três, temos cerca de 6,5%.
Fonte: adaptado de Tiobe ([2017], on-line).1
Considerações Finais
Re
pr
od
uç
ão
 p
ro
ib
id
a.
 A
rt
. 1
84
 d
o 
Có
di
go
 P
en
al
 e
 L
ei
 9
.6
10
 d
e 
19
 d
e 
fe
ve
re
iro
 d
e 
19
98
.
129
CONSIDERAÇÕES FINAIS
Nesta unidade, foi trabalhado um conceito muito importante, o qual complementa 
a unidade anterior: trata-se do controle da funcionalidade de uma aplicação, 
verificando-se principalmente entradas e saídas que possam ocorrer durante a 
execução e que possam gerar erros.
O tratamento de exceções é uma forma muito útil de prevenção e trata-
mento de falhas que uma aplicação pode ter, em função da interação do sistema 
com agentes externos, ou de serem causados pelo próprio processamento na 
aplicação. Esse tratamento pode ser preventivo, para verificar erros na entrada 
de dados com valores inválidos ou escolhas de opções inválidas em menus de 
opções, por exemplo.
Nas saídas de dados podem ser verificados formatos e a aparência de dados 
gerados, além de resultados indesejados por meio da criação de mecanismos que 
verifiquem os resultados antes de retorná-los ao usuário.
Depois, um exemplo completo de aplicação simples ajuda na compreensão 
do conteúdo visto, reunindo diversos aspectos tratados durante o transcorrer 
das unidades do livro. Em um primeiro momento, é apresentada a ideia do sof-
tware e seu código base para atender às necessidades e funcionalidades previstas 
na definição do problema a ser resolvido.
Em seguida, foram sugeridos testes na aplicação para verificar a existên-
cia de inconsistências e problemas diversos que possam afetar seu uso durante 
a manipulação por usuários em geral. Verificadas as inconsistências, é possível 
pensar em meios de contornar esses problemas para melhorar a qualidade do 
software e atender de melhor forma as demandas do projeto para gerar atuali-
zações de código.
Finalizando o material, é deixada a sugestão de que você tente implementar 
novas alterações funcionais ou de aparência na aplicação, para gerar uma nova 
versão mais completa da aplicação.
130 
JAVA 9 SAINDO DO FORNO EM BREVE
Uma das preocupações da equipe de desenvolvimento da nova versão é a disponibili-
zação do pacote JDK de desenvolvimento, pois, com a evolução da linguagem e suas bi-
bliotecas, esse pacote foi crescendo em quantidade de elementos e tamanho, gerando 
não só uma maior demora em sua aquisição, mas também uma perda de desempenho 
para se carregar e inicializar uma aplicação.
Assim, está sendo desenvolvido um pacote mais “inteligente”, que trabalhe de forma 
modular, em que apenas as classes relativas à aplicação tenham que ser carregadas jun-
to às classes básicas desenvolvidas no código Java, melhorando muito seu desempenho 
durante a inicialização do software.
Chamado inicialmente de Jigsaw (quebra-cabeça), o projeto sendo desenvolvido pela 
Oracle prevê suas primeiras entregas oficiais para 2017, qual algumas implementações 
são muito aguardadas.
Uma delas refere-se a um termo conhecido na comunidade de desenvolvedores, a REPL 
(Read Eval Print Loop), a qual permitirá testar expressões escritas em Java na própria li-
nha de comando, sem a necessidade de se implementar o código completo com classes 
e métodos.
Outra novidade será o chamado JMH (Java Microbenchmarking Harness), que permi-
tiraá que aplicações sejam criadas, executadas e testadas em termos de desempenho 
pelo chamado benchmark, que avalia o desempenho de software em geral, só que es-
pecífico para aplicações Java, de forma a otimizar o teste e não poluir resultados com o 
tempo de carga da aplicação, por exemplo.
Outras Mudanças serão vistas também no sistema de gerenciamento de memória para 
valores superiores a 4GB, incluindo o chamado coletor de lixo, que já existe na lingua-
gem, mas que será modificado para melhorar o funcionamento da JVM.
Também são aguardadas mudanças que visam o suporte de recursos web HTTP 2.0 e 
gerenciamento de processos dos sistemas operacionais que ainda dependem de cha-
madas ao próprio sistema, o que gera um grande tempo de espera pelo retorno da re-
quisição.
Fonte: o autor.
131 
1. Dentro dos conteúdos tratados no material, existem testes citados no livro que 
contemplam a verificação de erros em uma aplicação. Quais foram os testes 
citados?
2. Uma das palavras reservadas da linguagem Java utilizada para o tratamento de 
exceções é responsável por iniciar um ambiente controlado de execução do tre-
cho de código para permitir o tratamento de exceções. Como se chama esse 
comando?
3. Erros e exceções podem ocorrer a todo momento em um programa, mas esses 
podem ser previamente observados. O que seria criar um mecanismo de tra-
tamento preventivo de exceções?
4. Viu-se um exemplo de código para a geração de uma aplicação completa nesta 
unidade. Foi utilizada alguma biblioteca na criação do código? Qual?
5. Um código criado não pode ser considerado definitivo. No caso de haver modi-
ficações no código utilizado neste livro para gerar uma nova versão da mesma 
aplicação, qual poderia ser esse motivo?
MATERIAL COMPLEMENTAR
Programação de Computadores com Java - Série Eixos
José Augusto Navarro Garcia Manzano e Roberto Aff onso da Costa 
Júnior,
Editora: Editora Érica
Sinopse: livro voltado ao mercado de trabalho, podendo ser 
amplamente utilizado em cursos técnicos devido ao seu caráter didático.
REFERÊNCIAS
133
DEITEL, P.J. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010.
MANZANO, J. A. N. G. Java 7: programação de computadores - guia prático de intro-
dução, orientação e desenvolvimento. São Paulo: Érica, 2011.
REFERÊNCIAS ON-LINE
1 Em: <https://www.tiobe.com/tiobe-index/>. Acesso em: 31 mai. 2017.
REFERÊNCIAS
1) Teste da Caixa Preta e teste da caixa Branca.
2) Try.
3) Verificar situações que poderão produzir, falhas na execução, como entradas 
inválidas de dados, por exemplo, e trata-las para que a execução da aplicação 
possa, por si só, tratar o erro e não seja afetada.
4) Sim. A biblioteca java.util.Scanner.
5) Foi criado um mecanismo para evitar a ocorrência de divisão por zero e ajustar 
a aparência da aplicação para o caso tratado como exceção.
GABARITO
CONCLUSÃO
135
Neste material da disciplina de Programação de Sistemas I, foi possível conhecer 
parte dos conceitos essenciais da programação em linguagem Java por meio de 
explicações simples e com trechos de código para complementação dos conheci-
mentos, sendo construídos em conjunto com a segunda parte da disciplina.
Nas cinco unidades foram trabalhados elementos como os fundamentos da lingua-
gem e da forma pela qual ocorre o desenvolvimento de código. Conforme a evo-
lução das unidades, a linguagem em si foi sendo apresentada para permitir que o 
estudante fosse, aos poucos, se aprofundandonos conceitos.
Iniciando com uma introdução ao estilo de desenvolvimento proporcionado pela 
linguagem Java, em que um mesmo código é utilizável em diversos sistemas opera-
cionais diferentes como Windows, Android e Linux. 
Este conceito relacionado à portabilidade de código inicia um estudo que envol-
ve o processo de compilação e execução de aplicações que são interpretadas por 
máquinas virtuais instaladas e adequadas a cada um destes sistemas operacionais 
diferentes, permitindo esta portabilidade de código.
Conceitos fundamentais como a forma que os dados seguem regras de uso em situ-
ações diversas como expressões ou estruturas de comandos para realizar diferentes 
processamentos. 
Desvios de fluxo na execução de aplicações e laços de repetição de blocos de ins-
truções são alguns dos principais assuntos deste material, sendo que ambos são 
muitas vezes utilizados em conjunto dentro de um mesmo código.
Outro ponto fundamental no desenvolvimento de aplicações em Java é o chamado 
tratamento de exceções que permite softwares melhor desenvolvidos, contendo re-
cursos para reduzir a ocorrência de erros em tempo de execução, sendo que quanto 
mais mecanismos de controle houve, mais estáveis serão as aplicações.
O mais importante é lembrar que a disciplina não é única e através de seu estudo 
conjunto com Programação de Sistemas II, lembrando que apenas parte dos concei-
tos da linguagem são tratados.
CONCLUSÃO

Mais conteúdos dessa disciplina