Buscar

mariateixeira-EC.Programação III.Conteúdo 3.Item 1-2.2012.1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 29 
 
3 PROGRAMAÇÃO ORIENTADA A OBJETOS – LINGUAGEM JAVA 
 
3.1 INTRODUÇÃO AO JAVA (HISTÓRICO, CARACTERÍSTICAS, AMBIENTES 
DE PROGRAMAÇÃO) 
Origem: Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site 
http://www.caelum.com.br 
 
Muitos associam Java com uma maneira de deixar suas páginas da web mais bonitas, com efeitos 
especiais, ou para fazer pequenos formulários na web. 
O que associa as empresas ao Java? 
Já chegaremos neste ponto, mas antes vamos ver o motivo pelo qual as empresas fogem das 
outras linguagens. 
Quais são os seus maiores problemas quando está programando? 
• Ponteiros? 
• Gerenciamento de memória? 
• Organização? 
• Falta de bibliotecas? 
• Ter de reescrever parte do código ao mudar de sistema operacional? 
• Custo de usar a tecnologia? 
Java tenta amenizar esses problemas. Alguns desses objetivos foram atingidos muito tempo atrás, 
porque, antes do Java 1.0, a ideia é que essa linguagem fosse usada em pequenos dispositivos, 
como tvs, videocassetes, aspiradores, liquidificadores e outros. Apesar disso a linguagem teve seu 
lançamento focado no uso em clientes web (browsers) para rodar pequenas aplicações (applets). 
Hoje em dia esse não é mais o foco da linguagem: apesar de ter sido idealizada com um propósito 
e lançada com outro, o Java ganhou destaque no lado do servidor. 
O Java é desenvolvido e mantido pela Sun (http://www.sun.com) e seu site principal é o 
http://java.sun.com. (java.com é um site mais institucional, voltado ao consumidor de produtos e 
usuários leigos, não desenvolvedores). 
No Brasil, diversos grupos de usuários se juntaram para tentar disseminar o conhecimento da 
linguagem. Um deles é o GUJ (http://www.guj.com.br), uma comunidade virtual com artigos, 
tutoriais e fórum para tirar dúvidas, o maior em língua portuguesa. 
 
OBS posterior: Em 2009, a Oracle adquiriu a Sun, tornando-se assim responsável pelas 
tecnologias envolvendo JAVA (http://www.oracle.com/technetwork/java/index.html) 
 
 
3.1.1 ONDE USAR E OS OBJETIVOS DO JAVA 
Origem: Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site 
http://www.caelum.com.br 
 
No decorrer do curso, você pode achar que o Java tem baixa produtividade, que a linguagem com 
a qual você está acostumado é mais simples para criar os pequenos sistemas que estamos vendo 
aqui. 
Queremos deixar claro que a premissa do Java não é a de criar sistemas pequenos, onde temos 
um ou dois desenvolvedores, mais rapidamente que linguagens como PHP, PERL, entre outras. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 30 
 
O foco da plataforma é outro: aplicações de médio a grande porte, onde o time de 
desenvolvedores tem várias pessoas e sempre pode vir a mudar e crescer. Não tenha dúvidas que 
criar a primeira versão de uma aplicação usando Java, mesmo utilizando IDEs e ferramentas 
poderosas, será mais trabalhoso que usar uma linguagem script ou de alta produtividade. Porém, 
com uma linguagem orientada a objetos e madura como o Java, será extremamente mais fácil e 
rápido fazer alterações no sistema, desde que você siga as boas práticas, recomendações e 
design patterns. 
Além disso, a quantidade enorme de bibliotecas gratuitas para realizar os mais diversos trabalhos 
(tais como relatórios, gráficos, sistemas de busca, geração de código de barra, manipulação de 
XML, tocadores de vídeo, manipuladores de texto, persistência transparente, impressão, etc) é um 
ponto fortíssimo para adoção do Java: você pode criar uma aplicação sofisticada, usando diversos 
recursos, sem precisar comprar um componente específico, que costuma ser caro de acordo com 
sua especialização. 
Cada linguagem tem seu espaço e seu melhor uso. O uso do Java é interessante em aplicações 
que virão a crescer, em que a legibilidade do código é importante, onde temos muita conectividade 
e se temos plataformas (ambientes e sistemas operacionais) heterogêneos (Linux, Unix, OSX e 
Windows misturados). 
Você pode ver isso pela quantidade enorme de ofertas de emprego procurando desenvolvedores 
Java para trabalhar com sistemas web e aplicações de integração no servidor. 
Apesar disto, a Sun empenha-se em tentar popularizar o uso do Java em aplicações desktop, 
mesmo com o fraco marketshare do Swing/AWT/SWT em relação às tecnologias concorrentes 
(em especial Microsoft .NET). 
 
 
3.1.2 HISTÓRICO 
Origem: Material de Internet (apresentação PowerPoint). Autor não identificado; Como aprender Java, capítulo 2 – O que 
é Java. Apostila FJ-11 (Java e Orientação a Objetos), site http://www.caelum.com.br 
 
Alguns pontos ao longo da história do Java: 
• Sun Microsystems, 90/91: um grupo de desenvolvimento (Green Team) recebeu a tarefa 
de projetar uma linguagem de programação pequena que pudesse ser usada em 
dispositivos eletrodomésticos (controles remoto etc.). Esse time foi liderado por James 
Gosling, considerado o pai do Java; 
• Esses dispositivos não possuem muita memória, então a linguagem teve que ser bem 
pequena e gerar códigos restritos; 
• A linguagem foi projetada para ser utilizada em diferentes tipos de hardware, graças ao 
uso de bytecodes e de uma Máquina Virtual; 
• 1991: decidiu-se por nomear a linguagem como Java (apelido dado pelos americanos ao 
café); 
• 1992: entregue o primeiro produto chamado “*7” (controle remoto extremamente 
inteligente); 
• Não houve interesse comercial. Buscou-se outro modo para comercializar a tecnologia; 
• Enquanto isso a Internet estava crescendo e era necessário um browser para poder 
acessá-la; 
• Decidiu-se então pela construção deste browser, denominado HotJava, que foi 
inteiramente programado em Java; 
• A grande inovação em relação ao Java se deu em 1995: A Netscape decidiu dar suporte à 
linguagem a partir de seu navegador Web para Internet (Netscape Navigator 2.0); 
• A partir disto, todo usuário deste navegador passou a ser um potencial usuário da 
linguagem Java; 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 31 
 
• Desde então, um fluxo constante de novidades vem acontecendo, culminando com a 
linguagem Java tornando-se uma “coqueluche” dos programadores; 
• Atualmente os applets realmente não são o foco da Sun. É curioso notar que a tecnologia 
Java nasceu com um objetivo em mente, foi lançado com outro, mas, no final, decolou 
mesmo no desenvolvimento de aplicações do lado do servidor; 
• Você pode ler a história da linguagem Java em: 
http://java.sun.com/java2/whatis/1996/storyofjava.html; 
• E um vídeo interessante: http://tinyurl.com/histjava; 
• Em 2009 a Oracle comprou a Sun, fortalecendo a marca. A Oracle sempre foi, junto com a 
IBM, uma das empresas que mais investiram e fizeram negócios com tecnologias Java. 
 
 
3.1.3 CARACTERÍSTICAS DA LINGUAGEM JAVA 
Origem: Site do Wikipedia, Categoria: Java (Informática) (http://www.wikipedia.org/) – Plataforma e Linguagem de 
Programação; Material de Internet (apresentação PowerPoint). Autor não identificado. 
 
A linguagem Java foi projetada tendo em vista os seguintes objetivos: 
• Orientação a objeto - Baseado no modelo de Smalltalk e Simula67; 
• Portabilidade - Independência de plataforma - "write once run anywhere"; 
• Recursos de Rede - Possui extensa biblioteca de rotinas que facilitam a cooperação com 
protocolos TCP/IP, como HTTP e FTP; 
• Segurança - Pode executar programas via rede com restrições de execução. 
 
Além disso, podem-se destacar outras vantagens apresentadas pela linguagem: 
• Sintaxe similar a Linguagem C/C++ e principalmente, a C#. 
• Facilidades de Internacionalização - Suporta nativamente caracteres Unicode; 
• Simplicidade na especificação, tanto da linguagem como do "ambiente" de execução 
(JVM); 
• É distribuída com um vasto conjunto de bibliotecas(ou APIs); 
• Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de 
execução num mesmo programa); 
• Desalocação de memória automática por processo de coletor de lixo (garbage collector); 
• Carga Dinâmica de Código - Programas em Java são formados por uma coleção de 
classes armazenadas independentemente e que podem ser carregadas no momento de 
utilização. 
 
Após os comentários acima, algumas características do Java que podem ser destacadas são: 
• Simples; 
• Orientada a Objetos; 
• Distribuída; 
• Robusta; 
• Segura; 
• Neutra quanto à Arquitetura; 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 32 
 
• Portátil (Write Once Run Anywhere); 
• Interpretada; 
• De Alto Desempenho; 
• Multithreaded (multitarefa); 
• Dinâmica. 
 
Frameworks 
É possível utilizar frameworks para facilitar o desenvolvimento de aplicações. Dentre os mais 
utilizados pode-se destacar: 
• Hibernate ferramenta para ORM; 
• Spring ferramenta que auxilia principalmente na implementação de injeção de 
dependências e inversão de controle; 
• Log4j ferramenta para facilitar a criação de logs na aplicação; 
• JUnit ferramenta para auxiliar na criação de testes unitários; 
• Struts controlador MVC (Model 2) web. 
 
Ambientes de desenvolvimento 
É possível desenvolver aplicações em Java através de vários ambientes de desenvolvimento 
integrado (IDE's). Dentre as opções mais utilizadas pode-se destacar: 
• Eclipse — um projeto aberto iniciado pela IBM; 
• NetBeans — um ambiente criado pela empresa Sun Microsystems; 
• JBuilder — um ambiente desenvolvido pela empresa Borland; 
• JDeveloper — uma IDE desenvolvida pela empresa Oracle; 
• JCreator — um ambiente desenvolvido pela Xinox; 
• BlueJ — um ambiente desenvolvido por uma faculdade australiana (considerado muito 
bom para iniciantes); 
• Greenfoot — bem parecido com o BlueJ; 
• JGRASP — bom para intermediários, feito pela equipe do Projeto GRASP; 
• IntelliJ IDEA — uma IDE desenvolvida pela JetBrains (considerada por muitos a melhor 
IDE do mercado). 
 
 
 
 
 
 
 
 
 
 
 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 33 
 
Ambiente Java 
 
 
Verdades e Mentiras sobre o Java 
• Java é Simples. 
Verdade, se você conhece bem C++ (Não existem struct, union, artimética de ponteiros, 
include, classes virtuais etc.). 
Falso, se você conhece apenas programação DOS ou VB, ou se não conhece OO (sintaxe 
estranha, escreve-se muito). 
Verdade, pois seus produtos (.class, compilador e VM) são pequenos. 
Falso, pois é muito extensa (muitas características); 
• Java é Orientada a Objetos - Completamente verdade (metaclasses e reflexão, 
persistência de objetos (serialização), solução mais elegante para herança múltipla 
(interfaces), em suma, por ser recente, é uma linguagem OO pura (ao contrário do C++, 
que é híbrida)); 
• Java é Distribuída. - Completamente verdade (extensa biblioteca de rotinas para se 
trabalhar com protocolo TCP/IP (FTP, HTTP, SMTP), Comunicação entre objetos remotos 
(RMI), habilitada para funcionar também no servidor (servlets e JSP), habilitada para 
funcionar também em dispositivos portáteis (J2ME)); 
• Java é Robusta - Verdade (possibilidade de capturar e tratar erros de runtime (exceções), 
excelente gerenciamento de memória - impossível o acesso indevido à memória); 
• Java é Segura - Mais ou menos verdade (não é possível se acessar a memória fora de 
seu espaço de processamento, possibilidade de se impedir o acesso a funções de baixo 
nível quando da execução a partir de um Browser , novos releases que corrigem eventuais 
falhas de segurança descobertas); 
• Java é Neutra quanto à Arquitetura - Verdade (os bytecodes contidos em um arquivo 
.class podem ser executados em uma grande variedade de diferentes plataformas para as 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 34 
 
quais existam JVMs (Windows 9x, Windows NT, Windows 3.11, MacOS, Solaris, Linux, 
Mainframe*.* :), HP-UX, PalmTops, Web-TVs, torradeiras, cafeteiras :))) etc.); 
• Java é Portátil - Grande Verdade (Write Once Run Anywhere) (quem define as 
características particulares à cada arquitetura é a JVM e não o .class, o padrão Unicode 
facilita a tarefa de “internacionalização” do código, a aplicação tem a mesma “cara”, não 
importa o S.O. (apenas a partir da versão 1.1, com o pacote Swing que pode substituir o 
AWT)) ; 
• Java é Interpretada - Grande desvantagem (o desempenho do compilador e da JVM é 
ruim, para Wintel, a configuração mínima é Pentium 100 com 32 Mb de RAM); 
• Java é de Alto Desempenho - Pode ser verdade, graças a mecanismos como: JIT (Just in 
Time Compiler), compiladores nativos (transformam o .class em .exe), IDEs (JBuilder, 
Visual Café etc), que facilitam muito o desenvolvimento das aplicações; 
• Java é Multithreaded - “Permite que um programa faça mais de uma coisa ao mesmo 
tempo” (muito “fácil” de implementar, porém, a maneira como a JVM interpreta o código 
multithreaded varia, dependendo da arquitetura); 
• Java é Dinâmica - Os bindings são resolvidos em tempo de execução (funciona bem 
somente a partir da versão 1.1). Permite que novos métodos sejam acrescentados a uma 
biblioteca sem afetar os clientes desta biblioteca; 
• Java é a Linguagem da Internet - Do lado do “Cliente”, isto é mais ou menos verdade, 
graças aos applets, que são suportados por praticamente todos os WebBrowsers 
(diferente de outras tecnologias que exigem o uso de plug-in). Do lado do “Cliente”, 
applets são mais profissionais que linguagens script (Javascript e VBScript por exemplo). 
Do lado do “Servidor”, isto é verdade graças aos servlets (applets que rodam no servidor e 
que substituem os scripts Perl como mecanismo para CGI) e ao JSP (Java Server Pages), 
tecnologia que facilita a criação de páginas dinâmicas. 
 
O que Java não é... 
• Java não é Javascript e vice-versa; 
• Java não é uma extensão de HTML; 
• Java não é fácil de aprender; 
• Java não é um ambiente fácil de se programar; 
• Java ainda não é uma linguagem de programação universal; 
• Java não é tão lenta quanto seus inimigos dizem (madura o suficiente para o 
desenvolvimento de aplicações sérias); 
• Java não se restringe somente à Internet (boa para aplicações OO stand-alone, com ou 
sem interface gráfica). 
 
 
3.1.4 MÁQUINA VIRTUAL 
Origem: Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site 
http://www.caelum.com.br 
 
Em uma linguagem de programação como C e Pascal, temos o seguinte quadro quando vamos 
compilar um programa: 
 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 35 
 
O código-fonte é compilado para uma plataforma e sistema operacional específicos. Muitas vezes, 
o próprio código-fonte é desenvolvido visando uma única plataforma! 
Esse código executável (binário) resultante será executado pelo sistema operacional e, por esse 
motivo, ele deve saber conversar com o sistema operacional em questão. 
 
Isto é, temos um código executável para cada sistema operacional. É necessário compilar uma 
vez para Windows, outra para o Linux, etc... 
Como foi dito anteriormente, na maioria das vezes, a sua aplicação se utiliza das bibliotecas do 
sistema operacional, como, por exemplo, a de interface gráfica para desenhar as ‘telinhas’. A 
biblioteca de interface gráfica do Windows é bem diferente das do Linux; resultado? 
Você precisa reescrever o mesmo pedaço da aplicação para diferentes sistemas operacionais, já 
que eles não são compatíveis. 
Já o Java, se utiliza do conceito de máquina virtual, onde existe, entre o sistema operacional e a 
aplicação, uma camada extra, responsável por “traduzir” - mas não apenas isso - o que sua 
aplicação deseja fazer para as respectivas chamadas do sistema operacionalonde ela está 
rodando no momento. 
 
Dessa forma, a maneira com a qual você abre uma janela no Linux ou no Windows é a mesma. 
Você ganha independência de sistema operacional. Ou, melhor ainda, independência de 
plataforma em geral: não é preciso se preocupar em qual sistema operacional sua aplicação está 
rodando, nem em que tipo de máquina, configurações etc. 
Repare que uma máquina virtual é um conceito bem mais amplo que o de um interpretador. Como 
o próprio nome diz, uma máquina virtual é como um computador de mentira: tem tudo que um 
computador tem. Em outras palavras, ela é responsável por gerenciar memória e threads, a pilha 
de execução, etc. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 36 
 
Sua aplicação roda sem nenhum envolvimento com o sistema operacional! Sempre conversando 
apenas com a Java Virtual Machine (JVM). 
Essa característica é interessante: como tudo passa pela JVM, ela pode tirar métricas, decidir 
onde é melhor alocar a memória, entre outros. Uma JVM isola totalmente a aplicação do sistema 
operacional. Se uma JVM termina abruptamente, só as aplicações que estavam rodando nela irão 
terminar: isso não afetará outras JVMs que estejam rodando no mesmo computador, nem afetará 
o sistema operacional. 
Essa camada de isolamento também é interessante quando pensamos em um servidor que não 
pode se sujeitar a rodar código que possa interferir na boa execução de outras aplicações. 
Para tudo isso precisamos de um “bytecode”. Bytecode é o termo dado ao código binário gerado 
pelo compilador Java (pois existem menos de 256 códigos de operação dessa linguagem, e cada 
“opcode” gasta um byte, dando origem ao nome bytecode). O compilador Java gera esse bytecode 
que, diferente das linguagens sem máquina virtual, vai servir para diferentes sistemas 
operacionais, já que ele vai ser “traduzido” pela máquina virtual. 
 
Outro ponto importante: quando falamos de Java Virtual Machine, estamos falando de uma 
especificação. 
Ela diz como o bytecode deve ser interpretado pela JVM. Quando fazemos o download no site da 
Sun, o que vem junto é a Sun JVM. Em outras palavras, existem outras JVMs disponíveis, como a 
Jrockit da BEA, entre outras. 
Isso é outro ponto interessante para as empresas. Caso não estejam gostando de algum detalhe 
da JVM da Sun ou prefiram trabalhar com outra empresa, pagando por suporte, elas podem trocar 
de JVM com a garantia absoluta de que todo o sistema continuará funcionando, tendo em vista 
que a JVM é certificada pela Sun, precisando aceitar o mesmo bytecode. Você nem precisa 
recompilar nenhuma de suas classes. 
Além de independência de hardware e sistema operacional, você tem a independência de vendor: 
graças a idéia da JVM ser uma especificação e não um software. 
 
Write once, run anywhere 
Esse é um slogan que a Sun usa para o Java, já que você não precisa reescrever parte da sua 
aplicação toda vez que quiser mudar de sistema operacional. Muitas pessoas criticam ou criam 
piadas em cima desse slogan, por acharem que nem sempre uma aplicação Java pode rodar em 
duas plataformas diferentes sem problemas. 
 
 
3.1.5 JAVA LENTO? HOTSPOT E JIT 
Origem: Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site 
http://www.caelum.com.br 
 
Hotspot é a tecnologia que a JVM utiliza para detectar pontos quentes da sua aplicação: código 
que é executado muito, provavelmente dentro de um ou mais loops. Quando a JVM julgar 
necessário, ela vai compilar aquele código para instruções nativas da plataforma, tendo em vista 
que isso vai provavelmente melhorar a performance da sua aplicação. Esse compilador é o JIT: 
Just inTime Compiler, o compilador que aparece “bem na hora” que você precisa. 
Você pode pensar então: porque a JVM não compila tudo antes de executar a aplicação? É que 
teoricamente compilar dinamicamente, a medida do necessário, pode gerar uma performance 
melhor. O motivo é simples: imagine um .exe gerado pelo VisualBasic, pelo gcc ou pelo Delphi; ele 
é estático. Ele já foi otimizado baseado em heurísticas, o compilador pode ter tomado uma decisão 
não tão boa. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 37 
 
Já a JVM, por estar compilando dinamicamente durante a execução, pode perceber que um 
determinado código não está com performance adequada e otimizar mais um pouco aquele 
trecho, ou ainda mudar a estratégia de otimização. É por esse motivo que as JVMs mais recentes 
(como a do Mustang, Java 6), em alguns casos, chega a ganhar, em muitos casos, de códigos C 
compilados com o GCC 3.x, se rodados durante um certo tempo. 
 
 
3.1.6 VERSÕES DO JAVA... E A CONFUSÃO DO JAVA2 
Origem: Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site 
http://www.caelum.com.br 
 
Java 1.0 e 1.1 são as versões muito antigas do Java. 
Com o Java 1.2 houve um aumento grande no tamanho da API, e foi nesse momento em que 
trocaram a nomenclatura de Java para Java2, com o objetivo de diminuir a confusão entre Java e 
Javascript. Mas lembre-se, não há versão do Java 2.0, o 2 foi incorporado ao nome: Java2 1.2. 
Depois vieram o Java2 1.3 e 1.4, e o Java 1.5 passou a se chamar Java 5, tanto por uma questão 
de marketing e porque mudanças significativas na linguagem foram incluídas. É nesse momento 
que o “2” do nome Java desaparece. Repare que para fins de desenvolvimento, o Java 5 ainda é 
referido como Java 1.5. 
Até a versão 1.4, existia a terceira numeração (1.3.1, 1.4.1, 1.4.2, etc), indicando bug fixes e 
melhorias. A partir do Java 5 existem apenas updates: Java 5 update 7, por exemplo. 
Hoje a última versão disponível do Java é a 6.0, lançada em 2006. Da versão 1.4 para a 5.0, a 
linguagem sofreu muitas modificações, o que de certa forma fomentou a mudança no 
versionamento do Java. Já o Java 6.0 não trouxe nenhuma mudança na linguagem, mas trouxe 
mais recursos na API e muitas melhorias de performance na VM. 
Existe compatibilidade para trás em todas as versões do Java. Um class gerado pelo javac da 
versão 1.2 precisa necessariamente rodar na JVM 6.0. Por isso, recomendamos sempre usar a 
última versão do Java para usufruir das tecnologias mais modernas mas sem correr o risco de 
quebrar aplicações antigas. 
 
Origem: CoreJava, volume 1. Capítulo 1 – Uma introdução ao Java. Cay S. Horstmann e Gary Cornell. Ed. Pearson. 8. ed. 
Tabela: Evolução da linguagem Java 
Versão Ano Novos recursos da Linguagem No. De classes e 
interfaces 
1.0 1996 A própria linguagem 211 
1.1 1997 Classes internas 477 
1.2 1998 Nenhum 1524 
1.3 2000 Nenhum 1840 
1.4 2002 Assertivas 2723 
5.0 2004 Classes genéricas, loop “for each”, varargs, 
autoboxing, metadados, enumerações, importação 
estática 
3279 
6 2006 Nenhum 3777 
 
Informação obtida a partir do site do Java (Oracle): a versão 7 do Java começou a ser 
disponibilizada no 2º. Semestre de 2011. No intervalo de tempo entre o lançamento das versões 6 
e 7, uma série de updates sobre a versão 6 foram realizados. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 38 
 
 
 
 
3.1.7 CRIAÇÃO E EXECUÇÃO DE PROGRAMAS EM JAVA 
Origem: Capítulo 1 – Introdução aos Computadores, à Internet e à World Wide Web. Livro: Java – Como Programar, Deitel 
& Deitel, 6ª. Edição 
 
Os programas em Java em geral passam por cinco fases entre a sua criação e a sua efetiva 
execução. As fases estão identificadas na figura abaixo. 
 
 
 
3.1.8 ALGUNS TERMOS DE USO COMUM ENVOLVENDO JAVA 
Origem: CoreJava, volume 1. Capítulo 1 – Uma introdução ao Java. Cay S. Horstmann e Gary Cornell. Ed. Pearson. 8. ed. 
 
Tabela: Jargão do Java 
Sigla Nome Explicação 
JDK Java Development Kit Software para programadores que querem escrever 
programas Java 
JRE Java Runtime Environment Software para consumidores que querem executar 
programas Java 
SE StandardEdition Plataforma Java para uso em desktops e aplicativos 
simples de servidor 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 39 
 
EE Enterprise Edition Plataforma Java para aplicativos complexos de servidor 
ME Micro Edition Plataforma Java para uso em celulares e outros pequenos 
dispositivos 
J2 Java 2 Termo antiquado que descrevia as versões do Java entre 
1998 e 2006 
SDK Software Development Kit Termo antiquado que descrevia o JDK entre 1998 e 2006 
u Atualização Termo da Sun para o lançamento de uma correção de bug 
- Netbeans Ambiente de desenvolvimento integrado da Sun 
 
 
3.1.9 LEITURA RECOMENDADA 
• Capítulo 1 – Uma Introdução ao Java. Livro: CoreJava, volume 1 – Fundamentos. Cay S. 
Horstamm e Gary Cornell, 8ª. Edição; 
• Capítulo 1 – Introdução aos Computadores, à Internet e à World Wide Web. Livro: Java – 
Como Programar, Deitel & Deitel, 6ª. Edição; 
• Capítulo 1 – Como aprender Java, capítulo 2 – O que é Java. Apostila FJ-11 (Java e 
Orientação a Objetos), site http://www.caelum.com.br; 
• Uma palavrinha sobre as versões do Java. Link: 
http://www.javaman.com.br/artigos/versoesJava.html; 
• Site do Wikipedia, Categoria: Java (Informática) (http://www.wikipedia.org/) – Plataforma e 
Linguagem de Programação. 
 
 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 40 
 
 
3.2 INICIANDO A PROGRAMAÇÃO 
Origem: Capítulo 2 – Introdução aos aplicativos Java. Livro: Java – Como Programar, Deitel & Deitel, 6ª. Edição; capítulo 2 
– O que é Java. Apostila FJ-11 (Java e Orientação a Objetos), site http://www.caelum.com.br; Portal Java 
(http://www.portaljava.com)., fórum: Para todos os Iniciantes, Programas + HelloWorld 
 
Para manter a tradição, o primeiro programa será a impressão de uma linha de texto na tela. E o 
texto não poderia ser outro que não o famoso “Hello World”. 
 
Linha Programa 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
/* Arquivo: HelloWorld.java 
 Programa de impressão de uma linha de texto */ 
public class HelloWorld 
{ 
 //Método principal – inicia a execução do aplicativo Java 
 public static void main (String args[]) 
 { 
 System.out.println(“Hello World!!”); 
 } 
} 
 
Os passos que devem ser realizados: 
• Editar o código – através de qualquer editor disponível, como o NotePad do Windows. 
o O Java é case-sensitive, portanto deve-se estar atento ao uso de letras 
maiúsculas/minúsculas; 
o O padrão vigente indica que o nome de cada classe deve iniciar com uma letra 
maiúscula, e caso seja uma palavra composta também tem-se que a primeira 
letra de cada palavra será iniciada maiúscula, sem o uso do caracter “_”. A 
classe declarada no aplicativo acima, HelloWorld respeita tal padrão. A classe 
utilizada, System, também respeita tal padrão; 
o Identificadores válidos em Java podem ser compostos por letras, dígitos, 
sublinhados (_) e sinais de cifrão ($), porém não devem iniciar com um dígito e 
não podem conter espaços em branco; 
o Observar que as palavras-chave da linguagem Java são escritas todas em 
minúsculas (no programa acima tem-se public, class, static, void); 
• Salvar o código em um arquivo. 
o O nome do arquivo deve ser o mesmo nome da classe declarada, inclusive no 
que se refere ao uso de maiúsculas/minúsculas; 
o O arquivo deve ser salvo com a extensão .java; 
o Cada classe pública em Java deverá ser salva em um arquivo diferente; 
• Compilar o aplicativo. 
o Acessar o prompt de comando e digitar o comando javac HelloWorld.java 
(respeitando o uso de maiúsculas/minúsculas a partir do qual criou-se o nome do 
arquivo); 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 41 
 
o Se o programa estiver escrito corretamente será gerado o arquivo 
HelloWorld.class (com o bytecode correspondente ao código-fonte), caso 
contrário é preciso encontrar o erro, antes de voltar a tentar nova compilação (a 
falha pode estar tanto no código-fonte escrito quanto na instalação do JDK, caso 
seja a primeira vez que a ferramenta esteja sendo utilizada – prestar atenção à 
mensagem indicada pelo compilador); 
o Caso o aplicativo tenha mais de uma classe, cada uma delas deverá ser 
compilada, conforme identificado acima, já que cada uma estará salva em um 
arquivo diferente; 
o Caso se deseje visualizar o bytecode gerado pode-se utilizar o comando: javap 
–c HelloWorld; 
• Executar o aplicativo. 
o Acessar o prompt de comando e digitar o comando java Helloworld 
(respeitando o uso de maiúsculas/minúsculas a partir do qual criou-se o nome da 
classe); 
o Caso o aplicativo tenha mais de uma classe, deve ser executada a classe que 
contém a declaração do método main. 
 
A seguir será detalhado o significado de cada instrução do programa: 
• Sobre comentários (linhas 1, 2 e 5): O Java aceita três formatos para comentários: 
o Comentário de fim de linha (ocupa uma única linha, começando no início ou após 
uma instrução). É indicado através do delimitador // no início do trecho a ser 
considerado comentário; 
o Comentário de múltiplas linhas (ocupa várias linhas). É indicado através dos 
delimitadores /* (no início do texto comentado) e */ (no fim do texto 
comentado); 
o Comentário no estilo Javadoc, que permitem que os programadores gerem a 
documentação no formato HTML. Similar ao comentário de múltiplas linhas. É 
indicado através dos delimitadores /** (no início do texto comentado) e */ (no 
fim do texto comentado). Para gerar o html associado utiliza-se o comando 
javadoc <nome do arquivo>.java, para cada arquivo relacionado ao 
programa; 
• Declaração de Classe (linha 3): Cada programa Java consiste em pelo menos uma 
declaração de classe pelo programador. A palavra-chave class é a palavra-reservada no 
Java para indicar a declaração de uma classe. Em seguida a tal palavra deve ser definido 
o nome da classe. A palavra-chave public é um especificador de acesso, e será 
posteriormente explicada, o mesmo ocorrendo com a palavra-chave static; 
• Delimitador de Classe (linhas 4 e 10): São os delimitadores da declaração de uma classe; 
• Declaração de método (linha 6): Contém a assinatura de um método da classe. 
o O método em questão (main()) é especial, sendo o ponto de partida de cada 
aplicativo Java, isto é, todo programa deve conter a declaração de um método 
main(), que é por onde se inicia a execução do programa. A declaração de tal 
método deve ser exatamente como exposto no exemplo. A palavra-chave void 
indica que não há retorno para tal método. Entre parênteses estão os 
argumentos de entrada do método, que no caso do main(), serão os 
argumentos de entrada para execução do programa, caso haja algum; 
• Delimitador de Corpo de método (linhas 7 e 9): São os delimitadores do corpo de um 
método; 
• Corpo do método (linha 8): Contém uma instrução para o computador executar, nesse 
caso a impressão do texto “Hello World!!”. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 42 
 
o O método de impressão é o println(). O texto a ser impresso está entre os 
parênteses de tal método e é delimitado por aspas duplas, sendo o argumento do 
método. Tal método faz parte da variável de instância out, que é por sua vez um 
atributo da classe System. System.out é conhecido como objeto de saída 
padrão (o monitor); 
o A classe System, utilizada no programa, pertence ao pacote java.lang, que é 
o único pacote do Java que não requer uma declaração de importação para 
possibilitar o uso de suas classes; 
o Cada instrução em Java deve terminar com o delimitador de instrução “;”. 
o Sobre a impressão de texto na tela: O método println() escreve um texto na 
tela e posiciona o cursor na linha seguinte. Já o método print() escreve um 
texto na tela e não pula para a linha seguinte. Há ainda o método printf(), 
que trabalha com texto formatado, como ocorre na linguagemC; 
o O texto a ser impresso na tela, passado como parâmetro para print() / 
println() / printf(), pode precisar de uma sequência de escape, que 
indica que um determinado caracter especial deve ser impresso na tela. A 
sequência de escape é colocada diretamente no texto a ser impresso e é 
composta por uma barra invertida e um segundo caracter, que indica o que 
deverá ser impresso. Algumas sequências de escape estão abaixo identificadas: 
Sequência 
de Escape 
Descrição 
\n Nova linha. Exemplo: print(“Pular para \n nova 
linha”) 
\t Move o cursor de tela para a próxima parada de tabulação 
\r Posiciona o cursor da tela no início da linha atual 
\\ Utilizada para imprimir um caracter de barra invertida 
\” Utilizada para imprimir um caracter de aspas duplas 
 
o Um recurso oferecido a partir do J2SE 5.0 é o método System.out.printf() 
para exibir dados formatados, conforme destacado no exemplo abaixo. 
Linha Programa 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
/* Arquivo: Welcome.java 
 Programa de impressão de múltiplas linhas */ 
public class Welcome 
{ 
 //Método principal – inicia a execução do aplicativo Java 
 public static void main (String args[]) 
 { 
 System.out.printf(“%s\n%s\n”,”Welcome to”,”Java Programming”); 
 } 
} 
 
Uma interesante “evolução” do programa HelloWorld foi proposta por Tomaz Lavieri, um usuário 
dos fóruns do PortalJava, e está abaixo transcrita, para fins de análise. 
 
 
 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 43 
 
Arquivo HelloWorld.java 
1. //Sempre que tiver // no código indica que é um comentário. 
2. 
3. /** 
4. * Também são comentários este tipo de trecho, geralmente usado para 
5. * documentar a classe. 
6. * Bom aqui eu estou criando uma classe HelloWorld que é pública, ou seja, 
7. * qualquer classe poderá usá-la. */ 
8. public class HelloWorld { 
9. /** 
10. * Bom aqui eu defino um field, em outras linguagens é comumente chamado 
11. * de variável. Este objeto é de propriedade da classe HelloWorld e é 
12. * privado, sendo assim ninguém poderá acessá-lo, só o próprio HelloWorld. 
13. */ 
14. private String msg = null; 
15. 
16. /** 
17. * Método getMessage, que aqui é usado para retornar a mensagem que está 
18. * gravada dentro do field privado msg. Ele retorna de forma segura o 
19. * valor da mensagem, verificando se esta ainda está nula, se estiver, 
20. * muda seu valor para "Hello World!" e então o retorna 
21. * @return retorna a message do HelloWorld 
22. */ 
23. public String getMessage() { 
24. //Note que este if não tem {}, isso ocorre porque ele só tem um 
25. //argumento dentro, não precisando assim abrir e fechar as chaves. 
26. //Nestes casos, muitas vezes se escreve assim: 
27. //if (msg == null) setMessage(); (em 1 linha só.) 
28. //Este método verifica se o valor da msg ainda está nulo, sendo isso 
29. //verdade ele chama o método setMessage() para dar valor a msg, isto é 
30. //feito por segurança, para não passar um valor nulo. 
31. if (msg == null) 
32. setMessage(); 
33. 
34. //Aqui ele irá retornar o valor contido em msg que pertence a este 
35. //objeto. O operador this indica que está se tratando de um field que 
36. //é do objeto e não do método, veremos isso no método 
37. //setMessage(String msg) 
38. return this.msg; 
39. } 
40. 
41. /** 
42. * Seta a mensagem passada através de msg, como sendo a mensagem 
43. * deste objeto. No caso de msg estar nulo, chamará o método setMessage(). 
44. * @param msg mensagem a ser gravada pelo objeto. */ 
45. public void setMessage(String msg) { 
46. //note aqui que o teste if msg == null é feito para o field do método 
47. //setMessage(String msg) e não para aquele da classe, definido lá em 
48. //cima com: private String msg = null; 
49. //Quando há 2 nomes de fields iguais, ele irá usar o field do método. 
50. //Para chamar o field do objeto você terá que usar o operador this. 
51. //Então aqui eu testo se msg é null e se for, eu uso o método 
52. //setMessage(), ou seja, se o cara passar msg = null, é o mesmo 
53. //de ter chamado o método setMessage(), sendo assim, esse dois 
54. //métodos seguintes tem o mesmo efeito: setMessage(), setMessage(null) 
55. if (msg == null) { 
56. setMessage(); 
57. //no caso de msg não estar nulo, o objeto irá guardá-lo em seu field 
58. //privado, usando para isto o operador this.msg, para falar à classe 
59. //que se trata do field externo, sendo igual ao field passado neste 
60. //método. 
61. } else { 
62. this.msg = msg; 
63. } 
64. } 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 44 
 
65. 
66. /** 
67. * método que seta o valor da msg como “Hello World”, pois 
68. * nenhum argumento foi passado para escolher que mensagem passar */ 
69. public void setMessage(){ 
70. //define msg do objeto 
71. this.msg = "Hello World!"; 
72. } 
73. 
74. /** 
75. * cria um objeto HelloWorld com a mensagem padrão definida em 
76. * setMessage(). */ 
77. public HelloWorld() { 
78. setMessage(); 
79. } 
80. 
81. /** 
82. * cria um objeto HelloWorld com a mensagem passada através de msg 
83. * @param msg mensagem a ser gravada no objeto. */ 
84. public HelloWorld(String msg) { 
85. setMessage(msg); 
86. } 
87. 
88. /* 
89. * Estes 2 últimos "métodos" são na verdade construtores da classe, ou 
90. * seja, as maneiras de criar um objeto HelloWorld. Na outra 
91. * classe Main, nós usaremos 2 objetos HelloWorld, para exemplificar */ 
92. } 
 
Arquivo Main.java 
1. /** 
2. * Está classe irá funcionar como um programa do tipo console, que irá ter 
3. * saída de textos. Para rodá-lo use o comando java Main 
4. * 
5. * Estando esta classe e a classe HelloWorld dentro da pasta 
6. * da máquina virtual java, existe outras maneiras de rodar este programa... 
7. */ 
8. public class Main { 
9. //para uma classe ser utilizada como um programa ela deverá ter um método: 
10. //public static void main(String[] args) 
11. //ou seja, um método main público que é estático, e pode ser chamado com 
12. //um array de strings. 
13. //Método estático, é aquele que pode ser executado sem que você crie o 
14. //objeto, você pode chamá-lo através do nome da classe, exemplo: 
15. //MinhaClasse.metodoStatico(); 
16. 
17. /** 
18. * Este é o método que chama o aplicativo, ou seja, se você 
19. * deseja criar um programa é por aqui que você deve começar. 
20. * Ele é definido como void, porque o método não tem nenhum retorno, como 
21. * público, pois qualquer um deve conseguir rodar o programa, e como 
22. * estático porque não deve ser necessário criar uma classe para chamar o 
23. * programa. 
24. * O String[] args é para você poder passar argumentos para o programa, um 
25. * exemplo de programa que usa isso é o format (* format C: /s). 
26. * Neste comando você chama o programa format, e passa a ele os argumentos 
27. * "C:" , "/s", da mesma forma funciona para java, você pode passar 
28. * argumentos para o método main, que roda o programa. o 1º argumento 
29. * ficará em args[0] e assim por diante. */ 
30. public static void main(String[] args) { 
31. //cria um objeto que fará o cumprimento em inglês lembrando lá da 
32. //classe HelloWorld, quando nenhuma msg é passada, ele cria um objeto33. //com a messagem “Hello World”, ou seja, para um HelloWorld inglês é 
34. //só manter a original. 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 45 
 
35. HelloWorld cumprimentadorIngles = new HelloWorld(); 
36. 
37. //Cria um objeto que guarda a mensagem "Olá mundo!". Pois o construtor 
38. //HelloWorld("Olá Mundo!") irá 
39. //chamar o método setMessage("Olá Mundo!"). 
40. HelloWorld cumprimentadorBrasileiro = new HelloWorld("Olá Mundo!"); 
41. 
42. //aqui eu crio uma string com a mensagem “Orla Mundi!” 
43. String latim = "Orla Mundi!"; 
44. //Outra maneira de criar um objeto HelloWorld. 
45. HelloWorld cumprimentadorLatino = new HelloWorld(latim); 
46. 
47. //bom agora vamos imprimir as mensagens para ver o resultado. 
48. //Usando o método System.out.println(String msg); 
49. //que imprime uma mensagem na saída padrão. 
50. 
51. //Imprime a mensagem de cumprimento do Inglês. 
52. System.out.println(cumprimentadorIngles.getMessage()); 
53. 
54. //Imprime a mensagem de cumprimento do Brasileiro. 
55. System.out.println(cumprimentadorBrasileiro.getMessage()); 
56. 
57. //Imprime a mensagem de cumprimento do Latino. 
58. System.out.println(cumprimentadorLatino.getMessage()); 
59. } 
60. 
61. //espero que você tenha entendido... =] 
62. } 
 
Além do tradicional programa HelloWorld, os programadores costumam iniciar suas atividades 
em uma linguagem de programação através de simples funções de operações matemáticas. 
Segue abaixo um código Java para a realização da soma de dois inteiros, informados pelo 
usuário. 
Linha Programa 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
/* Arquivo: Soma.java 
 Programa de soma, que calcula a adição de dois números */ 
 
/* irá importar a classe Scanner do pacote util, parte do pacote 
 java, para utilização no programa */ 
import java.util.Scanner; 
 
public class Soma 
{ 
 //Método principal – inicia a execução do aplicativo Java 
 public static void main (String args[]) 
 { 
 //Declaração de variáveis locais 
 int numero1; 
 int numero2; 
 int numeroSoma; 
 
 //cria objeto da classe Scanner, para obter a entrada a partir 
 //da janela de comando 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 46 
 
20 
21 
22 
23 
24 
25 
26 
26 
28 
29 
30 
31 
32 
33 
 Scanner input = new Scanner(System.in); 
 
 //Solicita o informe dos valores para realizar a soma 
 System.out.print(“Informe o número 1: ”); //prompt 
 numero1 = input.nextInt(); //solicita o 1o. valor 
 System.out.print(“Informe o número 2: ”); //prompt 
 numero2 = input.nextInt(); //solicita o 2o. valor 
 
 //Realiza a soma dos dois números informados 
 numeroSoma = numero1 + numero2; 
 
 //Exibe o resultado da soma 
 System.out.printf(“O resultado da soma é %d\n”, numeroSoma); 
 } 
} 
 
A seguir será detalhado o significado de cada instrução do programa: 
• Comentários similares aos exemplos anteriores não serão repetidos, apenas as instruções 
diferenciadas serão comentadas; 
• Importação de classe (linha 6): Quando o programa precisa utilizar uma classe de alguma 
das bibliotecas de classe (APIs) que o Java disponibiliza deverá importar esta classe para 
o programa em questão. No exemplo acima é utilizada a classe Scanner, que pertence 
ao pacote util, que por sua vez pertence ao pacote java; 
o Todas as declarações import devem aparecer antes da primeira declaração da 
classe no arquivo, ou será gerado um erro de compilação; 
o Lembrete: A classe System, também utilizada no programa, pertence ao pacote 
java.lang, que é o único pacote do Java que não requer uma declaração de 
importação para permitir o uso de suas classes; 
• Declaração de variáveis de tipos primitivos (linhas 14 a 16): Para trabalhar com valores é 
preciso declarar variáveis para armazená-los. A declaração de uma variável é composta 
por um tipo de dado seguido por um identificador; 
• Declaração de objeto, instância de uma classe (linha 20): Para trabalhar com objetos, isto 
é, instâncias de uma determinada classe, é preciso realizar a instanciação, que é 
composta pela identificação da classe + identificador para o objeto + comando new 
+ construtor da classe. 
o Um objeto Scanner permite a um programa ler os dados para utilização em um 
programa. Os dados podem ser provenientes de várias origens, como um 
arquivo ou digitados pelo usuário; 
o Ao criar um objeto Scanner é preciso especificar a origem dos dados. No 
exemplo acima tal origem é System.in, que é o objeto de entrada padrão (o 
teclado); 
• Leitura de valores inteiros (linhas 24 e 26): Para realizar a leitura de valores inteiros utiliza-
se o método nextInt(), pertencente a classe Scanner. O valor retornado por tal 
método é normalmente atribuido a uma variável; 
• Expressão aritmética de soma, seguida por atribuição (linha 29): O Java permite a 
realização de uma série de operações aritméticas, uma delas é a soma, através do 
símbolo “+”. O resultado da expressão de soma é normalmente atribuído a uma variável, 
através de um comando de atribuição (uso do símbolo “=”). 
UFES/CEUNES Disciplina: Programação III 
Conteúdo: Programação Orientada a Objetos – Linguagem JAVA Página: 47 
 
 
 
3.2.1 LEITURA RECOMENDADA 
• Material indicado no início do tópico, como origem do texto disponibilizado; 
• Fóruns na Internet. 
 
 
3.2.2 EXERCÍCIOS 
1. Executar os exemplos de código acima descritos; 
2. Executar os exemplos de código descritos provocando erros de compilação, para observar 
as mensagens geradas (retirar “;”, esquecer parênteses, errar os identificadores); 
3. Executar programas com diferentes textos e uso das funções print(), println() e 
printf(), além de sequências de escape; 
4. Modificar o programa de adição de números para trabalhar com diferentes operações.

Outros materiais