Buscar

LivroPOOI

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 191 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 191 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 191 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

Programação Orientada a Objetos I 
1 
Programação 
Orientada a Objetos I 
Tatiane Aparecida Gomes Pereira 
1ª
 e
di
çã
o 
Programação Orientada a Objetos I 
2 
 
DIREÇÃO SUPERIOR 
Chanceler Joaquim de Oliveira 
Reitora Marlene Salgado de Oliveira 
Presidente da Mantenedora Wellington Salgado de Oliveira 
Pró-Reitor de Planejamento e Finanças Wellington Salgado de Oliveira 
Pró-Reitor de Organização e Desenvolvimento Jefferson Salgado de Oliveira 
Pró-Reitor Administrativo Wallace Salgado de Oliveira 
Pró-Reitora Acadêmica Jaina dos Santos Mello Ferreira 
Pró-Reitor de Extensão Manuel de Souza Esteves 
 
DEPARTAMENTO DE ENSINO A DISTÂNCIA 
Gerência Nacional do EAD Bruno Mello Ferreira 
Gestor Acadêmico Diogo Pereira da Silva 
 
FICHA TÉCNICA 
Texto: Tatiane Aparecida Gomes Pereira 
Revisão Ortográfica: Rafael Dias de Carvalho Moraes 
Projeto Gráfico e Editoração: Antonia Machado, Eduardo Bordoni, Fabrício Ramos e Victor Narciso 
Supervisão de Materiais Instrucionais: Antonia Machado 
Ilustração: Eduardo Bordoni e Fabrício Ramos 
Capa: Eduardo Bordoni e Fabrício Ramos 
 
COORDENAÇÃO GERAL: 
Departamento de Ensino a Distância 
Rua Marechal Deodoro 217, Centro, Niterói, RJ, CEP 24020-420 www.universo.edu.br 
 
Ficha catalográfica elaborada pela Biblioteca Universo – Campus Niterói 
 
P455p Pereira, Tatiane Aparecida Gomes. 
Programação orientada a objetos I / Tatiane Aparecida Gomes Pereira ; 
revisão de Rafael Dias de Carvalho Moraes. – 1. ed. – Niterói, RJ: 
UNIVERSO: Departamento de Ensino à Distância, 2018. 
191 p. : il. 
 
1. Programação orientada a objetos (Computação). 2. Java (Linguagem 
de programação de computador). 3. Métodos orientados a objetos 
(Computador). 4. Interface de programas aplicativos (Software). 5. Banco 
de dados. 6. SQL (Linguagem de programação de computador). 7. Ensino 
à distância. I. Moraes, Rafael Dias de Carvalho. II. Título. 
CDD 005.13 
 
Bibliotecária: Elizabeth Franco Martins – CRB 7/4990 
 
Informamos que é de única e exclusiva responsabilidade do autor a originalidade desta obra, não se r esponsabilizando a ASOEC 
pelo conteúdo do texto formulado. 
© Departamento de Ensi no a Dist ância - Universidade Salgado de Oliveira 
Todos os direitos reservados. Nenhuma parte desta publicação pode ser reproduzida, arquivada ou transmitida de nenhuma forma 
ou por nenhum meio sem permissão expressa e por escrito da Associação Salgado de Oliveira de Educação e Cultura, mantenedora 
da Univer sidade Salgado de Oliveira (UNIVERSO). 
Programação Orientada a Objetos I 
3 
 
Palavra da Reitora 
 
Acompanhando as necessidades de um mundo cada vez mais complexo, 
exigente e necessitado de aprendizagem contínua, a Universidade Salgado de 
Oliveira (UNIVERSO) apresenta a UNIVERSOEAD, que reúne os diferentes 
segmentos do ensino a distância na universidade. Nosso programa foi 
desenvolvido segundo as diretrizes do MEC e baseado em experiências do gênero 
bem-sucedidas mundialmente. 
São inúmeras as vantagens de se estudar a distância e somente por meio 
dessa modalidade de ensino são sanadas as dificuldades de tempo e espaço 
presentes nos dias de hoje. O aluno tem a possibilidade de administrar seu próprio 
tempo e gerenciar seu estudo de acordo com sua disponibilidade, tornando-se 
responsável pela própria aprendizagem. 
O ensino a distância complementa os estudos presenciais à medida que 
permite que alunos e professores, fisicamente distanciados, possam estar a todo o 
momento, ligados por ferramentas de interação presentes na Internet através de 
nossa plataforma. 
Além disso, nosso material didático foi desenvolvido por professores 
especializados nessa modalidade de ensino, em que a clareza e objetividade são 
fundamentais para a perfeita compreensão dos conteúdos. 
A UNIVERSO tem uma história de sucesso no que diz respeito à educação a 
distância. Nossa experiência nos remete ao final da década de 80, com o bem-
sucedido projeto Novo Saber. Hoje, oferece uma estrutura em constante processo 
de atualização, ampliando as possibilidades de acesso a cursos de atualização, 
graduação ou pós-graduação. 
Reafirmando seu compromisso com a excelência no ensino e compartilhando 
as novas tendências em educação, a UNIVERSO convida seu alunado a conhecer o 
programa e usufruir das vantagens que o estudar a distância proporciona. 
 
Seja bem-vindo à UNIVERSOEAD! 
Professora Marlene Salgado de Oliveira 
Reitora 
Programação Orientada a Objetos I 
4 
 
Programação Orientada a Objetos I 
5 
 
Sumário 
 
Apresentação da disciplina ............................................................................................. 07 
Plano da disciplina ............................................................................................................ 09 
Unidade 1 – Conceitos de Programação Orientada a Objetos .............................. 13 
Unidade 2 – Orientação a Objetos na Linguagem Java ........................................... 35 
Unidade 3 – Método Aplicado........................................................................................ 67 
Unidade 4 – Manipulação................................................................................................ 103 
Unidade 5 – Conhecendo a API...................................................................................... 139 
Unidade 6 – Introdução à Banco de Dados em Java ................................................. 157 
Considerações finais ......................................................................................................... 181 
Conhecendo o autor ......................................................................................................... 182 
Referências .......................................................................................................................... 183 
Anexos.................................................................................................................................. 185 
 
Programação Orientada a Objetos I 
6 
 
Programação Orientada a Objetos I 
7 
 
Apresentação da Disciplina 
 
Iniciaremos aqui nossos estudos sobre programação orientada a objetos, 
paradigma de programação que torna a programação mais facilidade, tornando-a 
um modelo de programação de sistemas que se funda na composição e também 
interação entre objetos. Este paradigma de programação, portanto, tenta 
aproximar a parte computacional do mundo real, tentando simular o mundo real 
dentro de um computador, trazendo para o espaço virtual a figura dos objetos. 
Estes objetos representam objetos do mundo real, representam uma 
realidade o mais próxima possível do mundo real, que permite que possamos 
modelar, projetar e desenvolver nossos softwares de maneira mais estável. Os 
objetos representados na programação orientada a objetos possuem estado e 
comportamento que influenciam o sistema. 
Aqui aprenderemos conceitos importantes sobre a POO a fim de que, 
enquanto, programadores, possamos moldar o mundo real no formato de objetos 
com comportamentos e estado, fazendo-os interagir entre si, por meio de envio de 
mensagens. Assim, nós programadores devemos definir quais são as mensagens 
que cada tipo de objeto poderá receber, quais ações ele deverá realizar ao receber 
cada tipo de mensagem. Com a POO, podemos reutilizar códigos, utilizar 
mecanismos de herança que permitem que uma nova classe de objetos herde 
características de uma classe já existente, que passa a ser denominada superclasse, 
e polimorfismo que significa que duas ou mais classes derivadas de uma 
superclasse, em comum, possam chamar métodos com a mesma identificação e 
assinatura, mas com comportamento distintos. 
Para aplicar os conceitos aprendidos sobre a POO iremos iniciar na linguagem 
de programação Java, que é uma linguagem voltada ao paradigma da POO, que 
possui importantes mecanismos como gerenciamento automático de memória, 
permite que o programador nãoprecise se preocupar com detalhes de baixo nível 
dentre eles a memória, o processamento, ponteiros, lixo e outros. A linguagem 
Java não é compilada na arquitetura do computador, ela roda em uma máquina 
virtual, a JVM. Java assegura-nos portabilidade, podendo ser utilizada também para 
Internet e para aparelhos móveis. A linguagem Java e grandamente utilizada para 
diversos tipos de aplicação, desde programas para rodar em deskotps a programas 
utilizados em caixas eletrônicos, aparelhos telefônicos como smartphones e 
também pela Nasa. 
Programação Orientada a Objetos I 
8 
 
Programação Orientada a Objetos I 
9 
Plano da Disciplina 
 
Ao longo de nossos estudos aprenderemos sobre a programação orientada a 
objetos, paradigma de análise, projeto e programação de softwares baseada na 
interação entre os objetos, base do modelo de programação. Na unidade 2, 
iniciaremos a aplicação dos conceitos como variáveis, tipos de dados, estrutura 
condicionais da POO na linguagem Java, que é uma linguagem POO. Na unidade 3 
conheceremos as classes, que permite a definição de tipos de dados na linguagem 
POO, além disso aprenderemos a lidar com essas classes, utilizando métodos, 
atributos, construtores. Já na unidade 4, iremos, na linguagem Java estudar sobre a 
manipulação de objetos, tratando especificamente de vetores, enumerações, 
datas, tratamento de exceções. Na unidade 5 conheceremos uma API que nos 
permite a adaptação de funcionalidades das classes existentes às necessidades de 
cada tipo de aplicação que iremos desenvolver, assim, em Java existem diversos 
classes organizadas na API padrão, que poderemos utilizar conforme nossas 
necessidades de programação. E, por fim, na unidade 6, faremos uma introdução à 
conexão de banco de dados com as aplicações que desenvolveremos em Java, 
aprendendo assim, a conectar um BD ao nosso software e a utilizar seus diversos 
recursos básicos para manipular e recuperar dados. 
 
Unidade 1 - Conceitos de Programação Orientada a Objeto 
Nesta unidade, estudaremos os conceitos de programação orientada a 
objetos, entendo o que é um objeto, encapsulamento, herança, polimorfismo e 
qual a importância de cada conceito deste na programação e na manipulação de 
dados, após a definição da linguagem a desenvolver. 
Objetivos da unidade: 
x Conhecer a programação orientada a objetos; 
x Analisar a importância e as facilidades do uso desta programação; 
x Aprender conceitos de objetos, encapsulamento, herança e 
polimorfismo. 
 
Programação Orientada a Objetos I 
10 
 
Unidade 2 – Orientação a Objetos na linguagem Java 
Nesta unidade, aprenderemos sobre programação orientada a objetos usando 
Java, conheceremos a plataforma Java, como declarar variáveis, o que são tipos de 
dados, e um pouco de estruturas condicionais e de repetição. Nesta unidade, 
começaremos a programar em Java. 
Objetivos da unidade: 
x Conhecer a plataforma Java; 
x Aprender a declarar variáveis, a fazer uso das estruturas condicionais 
e de repetição; 
x Aprender sobre tipos de dados. 
 
Unidade 3 – Método Aplicado 
Nesta unidade, estudaremos sobre o método aplicado, que corresponde a 
uma sub-rotina executada por um objeto ao receber uma mensagem. Os métodos 
são responsáveis por determinar o comportamento dos objetos de determinada 
classe, semelhante a funções ou procedimento da programação estruturada. 
Objetivos da unidade: 
x Analisar um método aplicado; 
x Entender o mecanismo de funcionamento do método aplicado; 
x Aplicar métodos na programação orientada a objetos. 
 
Unidade 4 – Manipulação 
Nesta unidade, estudaremos sobre manipulação em Java. Trataremos da 
manipulação de vetores, objetos. Estudaremos sobre o tratamento de exceções 
bem como iniciaremos conceitos de interface gráfica. 
Objetivos da unidade: 
x Aprender a realizar manipulações em vetores, objetos; 
x Reutilizar códigos; 
x Entender como funciona a criação de interfaces gráficas. 
Programação Orientada a Objetos I 
11 
 
Unidade 5 – Conhecendo a API 
Nesta unidade, estudaremos sobre a Interface de Programação de Aplicativos 
em Java que corresponde a uma interface de programação que nada mais é que 
um conjunto de padrões para a programação. Essa API permite a construção de 
aplicativos como veremos ao longo deste capítulo. 
Objetivos da unidade: 
x O pacote Java. lang; 
x Class Object; 
x Wrappers dos tipos primitivos. 
 
Unidade 6 - Introdução à Banco de Dados 
Nesta unidade, trataremos sobre a conexão de banco de dados em Java, o que 
possibilita que possamos armazenar grande quantidade de dados, que obteremos 
a partir da interação do usuário com o programa aplicativo. 
Objetivos da unidade: 
x Aprender conceitos de banco de dados; 
x Utilizar SQL; 
x Usar interface java para BD. 
 
Programação Orientada a Objetos I 
12 
 
 
Programação Orientada a Objetos I 
13 
Conceitos de Programação 
Orientada a Objeto 
 1 
Programação Orientada a Objetos I 
 
14 
 
Caro aluno, 
Nesta unidade, estudaremos os conceitos de programação orientada a 
objetos, entendo o que é um objeto, encapsulamento, herança, polimorfismo e 
qual a importância de cada conceito deste na programação e na manipulação de 
dados, após a definição da linguagem a desenvolver. 
 
Objetivos da unidade: 
x Conhecer a programação orientada a objetos; 
x Analisar a importância e as facilidades do uso desta programação; 
x Aprender conceitos de objetos, encapsulamento, herança e 
polimorfismo. 
 
Plano da unidade: 
x Objetos 
x Encapsulamento 
x Herança 
x Polimorfismo 
 
Bons estudos! 
 
Programação Orientada a Objetos I 
 
15 
 
Para entender o que é a Programação Orientada a Objetos é necessário que se 
entenda primeiro a conceituação de programas e modelos, que são os 
fundamentos da Programação em si. Rafael Santos (2001) descreve que: “Os 
programas são conjuntos de comandos e regras que um programador deve 
conhecer para poder manipular os recursos do computador”. (SANTOS, 2001, p.24). 
Rafael Santos ainda destaca que “Modelos são representações simplificadas de 
objetos, pessoas, itens, tarefas, processos, conceitos, ideias etc., usados 
comumente por pessoas no seu dia-a dia, independente do uso de computadores.” 
(SANTOS, 2001, p.24-25). 
A partir deste contexto, entendem-se que os modelos são criados para 
representar objetos, os modelos podem ser reutilizados, e não há necessidade da 
criação de diversos modelos, um único modelo pode conter vários dados em si. A 
partir da conceituação de modelos, houve a criação da modelagem de dados na 
programação ao qual se tem a programação orientada a objetos como um dos 
recursos que usa esta modelagem baseada em modelos e objetos. (SANTOS, 2001). 
Segundo Rafael Santos (2001) a programação orientada a objetos ou POO é: 
 
é um paradigma de programação de computadores onde 
se usam classes e objetos, criados a partir dos modelos, 
para representar e processar dados usando programas de 
computadores. 
Em programação orientada a objetos, os dados 
pertencentes aos modelos são representados por tipos de 
dados nativos, ou seja, que são característicos da 
linguagem de programação. Dados também podem ser 
representados por modelos já existentes na linguagem ou 
por outros modelos criados pelo programador. (SANTOS, 
2001, p.27). 
 
A programação orientada a objetos surgiu na década de 60, e se baseava na 
Teoria da Álgebra, e em 90 começou a ser utilizada a nível computacional, com o 
intuito de facilitar a modelagem de dados para o programador. Para Daniela 
Barreiro Claro e João Bosco Mangueira Sobral (2008), a programação orientada a 
objetos tem por objetivo: 
 
Programação Orientada a Objetos I 
 
16 
 
[...] modelar o mundo real, e garantir que as taxas de 
manutenibilidade (manutenção) serão maiores diante 
deste contexto. Isso é possível, pois utilizando uma 
linguagem de programação orientada a objetos consegue-
se obter um desenvolvimento mais rápido, visto que este 
desenvolvimento ocorreem módulos, em blocos de 
códigos correspondentes aos objetos e seus acoplamentos. 
Através da orientação a objetos, pode-se obter uma maior 
qualidade e agilidade no desenvolvimento, pois o fator 
reusabilidade (reutilização) permite que se re-utilize outros 
objetos que foram anteriormente desenvolvidos e podem 
ser facilmente incorporados na aplicação. A reusabilidade 
também garante uma manuseabilidade melhor do 
programa, pois os testes referentes aos componentes, já 
foram previamente executados, garantindo assim a 
utilização coesa dos objetos. (CLARO, SOBRAL, 2008, p. 8). 
 
Para definir a programação orientada a objetos por meio do contexto de 
modelos, que é a conceituação de um objeto é essencial que o modelador entenda 
os atributos e instâncias necessárias a se declarar no modelo, antes que o 
programador referencie o objeto em si, ele deve entender o modelo que irá 
caracterizar aquele objeto. A definição do modelo é a definição do objeto, assim 
Rafael Santos (2001) define modelo como: 
 
Um modelo comumente contém operações ou 
procedimentos associados a ele. Estas operações são listas 
de comandos que processarão os dados contidos no 
próprio modelo (e em alguns casos, dados adicionais). 
Também é possível a criação de modelos que contenham 
somente dados ou somente operações. Modelos que 
contenham somente dados são poucos usados: 
normalmente os valores destes dados variam de uso para 
uso de modelo, portanto operações que modificam os 
valores dos dados serão necessárias. (SANTOS, 2001, p. 25-
26). 
 
Em programação orientada a objetos os modelos conceituados até o 
momento serão chamados de classes e objetos, seus dados serão implementados 
da mesma forma, é importante que a criação do modelo, ou classe e objetos 
tenham todos os atributos e instâncias necessários para se compuser a modelagem 
que se exige, como demonstra exemplo abaixo: 
Programação Orientada a Objetos I 
 
17 
 
Modelar uma conta bancária simplificada: 
Neste exemplo modela-se uma conta bancária simplificada, que somente 
representa o nome do correntista, o saldo da conta e se a conta é especial ou não. 
Se a conta for especial, o correntista terá direito de retirar mais dinheiro do que tem 
no saldo (ficar com saldo negativo). Aspectos práticos encontrados em contas de 
bancos reais (senhas, taxas, impostos etc.) foram deixados de lado em nome da 
simplicidade. 
 
Figura 1: Conta bancária simplificada modelo (dados e operações)- atributos 
ContaBancariaSimplificada 
- nomeDoCorrentista 
- saldo 
- contaEEspecial 
- abreConta (nome, depósito, éEspecial) 
- abreContaSimples (nome) 
- deposita (valor) 
- retira (valor) 
- mostraDados ( ) 
Fonte: SANTOS, 2001, p.31. 
 
Na figura 1, temos a modelagem simplifica do modelo conta bancária, onde 
temos como dados nome do correntista, saldo, e conta especial, e operações abre 
conta(), abrecontaSimples(), deposita(valor) ,retira(valor),mostraDados(). Assim nós 
temos os dados e suas principais operações, que podem ser transformadas em Java 
em classes, objetos. Onde teremos a classe abre conta()com os objetos ou 
instâncias (nome, depósito, éEspecial). 
 
Programação Orientada a Objetos I 
 
18 
 
Figura 2: Conta bancária simplificada em pseudo-código 
 
modelo ContaBancariaSimplificada 
início do modelo 
 dado nomeDoCorrentista, saldo, contaEEspecial; // dados da conta 
 
 // Inicializada simultaneamente todo os dados do modelo 
 operação abreConta (nome, depósito, especial) // argumentos para este operação 
 início 
 // Usa os argumentos passados para inicializar os dados do modelo 
 nomeDoCorrentista = nome; 
 saldo = depósito; 
 contaÉEspecial = especial 
 fim 
 
 //Inicializa simultaneamente todos os dados do modelo, usando o nome 
 //passado como argumento e os outros valores com valores default 
 operação abreConsultaSimples (nome) // argumento para esta operação 
 início 
 nomeDoCorrentista = nome; 
 saldo = 0.0; 
 contaÉEspecial = falso; 
 fim 
 
 //Deposita um valor na conta 
 Operação deposita (valor) 
 início 
 saldo = saldo+valor; 
 fim 
 
 //Retira um valor da conta 
 operação retira(valor) 
 início 
 se (contaEEspecial = falso) // A conta não é especial! 
 início 
 se (valor <= saldo) /// se existe saldo suficiente... 
 saldo = saldo-valor; / / faz a retirada. 
 fim 
 senão // A conta é especial, pde retira à vontade! 
 saldo = saldo-valor; 
 fim 
 
Programação Orientada a Objetos I 
 
19 
 
Fonte: SANTOS,2001, p.31-32. 
 
Na figura 2, a modelagem é realizada em pseudocódigo, para identificar como 
ficará o código se implementado e compilado em uma linguagem qualquer. Por 
meio do modelo é que se cria os objetos, como será conceituado. 
 
Objetos 
 
Os objetos são os elementos que irão representar a modelagem de dados, é 
através do objeto que se cria as características necessárias para se conceituar o 
modelo a ser representado. 
Na POO a base da programação é a caracterização dos objetos e classes, é 
fazer com que estes objetos se comuniquem e façam uma aplicação funcionar 
corretamente por meio desta comunicação, assim a estruturação dos objetos e 
caracterização de cada um é fundamental para prover esta comunicação de forma 
eficaz. 
A figura 3 apresenta-nos um esquema simples da troca de mensagem entre 
dois objetos. 
 
 operação mostraDados () // mostra os dados da conta, imprimindo os seu valores 
 início 
 imprime “O nome do correntista é “; 
 imprime nomeDoCorrentista; 
 imprime “O saldo é “; 
 imprime saldo; 
 se (contaÉEspecial) imrime “ A conta é especial.”; 
 senão imprime “A conta é comum.”: 
 fim 
 
fim do modelo 
Programação Orientada a Objetos I 
 
20 
 
Figura 3: Troca de mensagens entre dois objetos 
 
Fonte: CLARO e SOBRAL, 2008, p.9. 
 
Neste contexto a comunicação dos objetos se dá entre si, por meio da troca de 
mensagens, e esta troca de mensagens pode ocorrer por meio da definição de 
métodos, onde se define que um objeto qualquer necessita que outro execute um 
comando, esta é a base da programação orientada a objetos .Ivan Luiz Marques 
Ricarte( 2001) afirma que: 
 
Objetos são instâncias de classes. É através deles que 
(praticamente) todo o processamento ocorre em sistemas 
implementados com linguagens de programação 
orientadas a objetos. O uso racional de objetos, 
obedecendo aos princípios associados à sua definição 
conforme estabelecido no paradigma de desenvolvimento 
orientado a objetos, é chave para o desenvolvimento de 
sistemas complexos e eficientes. 
Um objeto é um elemento que representa, no domínio da 
solução, alguma entidade (abstrata ou concreta) do 
domínio de interesse do problema sob análise. Objetos 
similares são agrupados em classes. (RICARTE, 2001, p.4-5). 
 
Programação Orientada a Objetos I 
 
21 
 
Os objetos como são chamados de instâncias de classes, os mesmos 
permitem a manipulação de métodos e atributos de um objeto. Em programação 
orientada a objetos a referência a um objeto se dá pelo operador new(). Assim para 
se declarar um objeto, usa-se o operador, como demonstra a exemplo abaixo: 
 
Quando se referencia um objeto, ou seja, quando se cria um objeto na 
programação se aloca um espaço em memória para este objeto, bem como para 
suas operações, seus atributos, métodos. Para Ivan Luiz Marques Ricarte (2001) 
cada operação que envolve a criação do objeto irá ser representada como um 
objeto para o programador. 
 
Da mesma forma, quando se cria um objeto, esse objeto 
adquire um espaço em memória para armazenar seu 
estado (os valores de seu conjunto de atributos, definidos 
pela classe) e um conjunto de operações que podem ser 
aplicadas ao objeto (o conjunto de métodos definidos pela 
classe). 
 
Um programa orientado a objetos é composto por um 
conjunto de objetos que interagem através de “trocas de 
mensagens”. Na prática, essa troca de mensagem traduz-se 
na aplicação de métodos a objetos. (RICARTE, 2001, p. 6) 
 
Estes métodos sãoimportantes para definir quais os tipos de operações que os 
objetos irão desenvolver durante o programa, quando se cria um objeto se define 
seus atributos, na programação estes atributos não podem ser visíveis, bem como 
os métodos não devem ser definidos detalhadamente, e sim somente o usuário 
entender sua funcionalidade, para que isso aconteça a programação conta com o 
recurso de encapsulamento de informações, que deve ser usado durante todo o 
projeto de programação, desde a criação do objeto e definição de seus atributos. 
 
Modelo: 
<identificador> = new <Classe> ( [param1], [param2] ); 
Exemplo: 
Data data = new Data(); 
Programação Orientada a Objetos I 
 
22 
 
Encapsulamento 
 
O encapsulamento é a ocultação dos dados é uma forma de demonstrar como 
os dados são processados sem permitir que se conheça os detalhes. Na 
programação orientada a objetos a ocultação de dados é uma forma de permitir 
que as operações aconteçam sem que o usuário tenha total acesso à manipulação 
dos dados em si. Assim Ivan Luiz Marques Ricarte (2001) define encapsulamento 
como: 
Encapsulação é o princípio de projeto pelo qual cada 
componente de um programa deve agregar toda a 
informação relevante para sua manipulação como uma 
unidade (uma cápsula). Aliado ao conceito de ocultamento 
de informação é um poderoso mecanismo da programação 
orientada a objetos. 
Ocultamento da informação é o princípio pelo qual cada 
componente deve manter oculta sob sua guarda uma 
decisão de projeto única. Para a utilização desse 
componente, apenas o mínimo necessário para sua 
operação deve ser revelado (tornado público). 
 
Na orientação a objetos, o uso da encapsulação e 
ocultamento da informação recomenda que a 
representação do estado de um objeto deve ser mantida 
oculta. Cada objeto deve ser manipulado exclusivamente 
através dos métodos públicos do objeto, dos quais apenas 
a assinatura deve ser revelada. 
 
O conjunto de assinaturas dos métodos públicos da classe 
constitui sua interface operacional. 
 
Dessa forma, detalhes internos sobre a operação do objeto 
não são conhecidos, permitindo que o usuário do objeto 
trabalhe em um nível mais alto de abstração, sem 
preocupação com os detalhes internos da classe. Essa 
facilidade permite simplificar a construção de programas 
com funcionalidades complexas, tais como interfaces 
gráficas ou aplicações distribuídas. (RICARTE, 2001, p.5). 
 
Programação Orientada a Objetos I 
 
23 
 
O encapsulamento então é o método utilizado na programação para ocultar 
detalhes internos de um projeto de programação, permitindo que o usuário 
conheça apenas as funcionalidades do objeto, da classe, do programa, e assim o 
mesmo terá acesso à interface gráfica do programa e suas funcionalidades e não 
aos processos de desenvolvimento de cada etapa do projeto. 
 
Herança 
 
Herança é um mecanismo da programação orientada a objetos que significa 
herdar, a herança na programação é herdar características da superclasse. Assim 
uma superclasse com seus atributos ao ser criada automaticamente gera o 
conceito de herança para as demais classes que serão criadas dentro da classe ao 
qual pertence, herdando assim as suas características. Em Java, quando o usuário 
não declara qual classe será a superclasse (a classe que gera o mecanismo de 
herança), automaticamente a classe Object é declarada superclasse. 
Figura 4: Hierarquia de classes 
 
Fonte: CLARO e SOBRAL, 2008, p.46. 
Programação Orientada a Objetos I 
 
24 
Segundo Ivan Luiz Marques Ricarte (2001): 
Herança é um mecanismo que permite que características 
comuns a diversas classes sejam fatoradas em uma classe base, 
ou superclasse. A partir de uma classe base, outras classes 
podem ser especificadas. Cada classe derivada ou subclasse 
apresenta as características (estrutura e métodos) da classe 
base e acrescenta a elas o que for definido de particularidade 
para ela. Há várias formas de relacionamentos em herança: 
 
Extensão: a subclasse estende a superclasse, acrescentando 
novos membros (atributos e/ou métodos). 
A superclasse permanece inalterada, motivo pelo qual este tipo 
de relacionamento é normalmente referenciado como herança 
estrita. 
 
Especificação: a superclasse especifica o que uma subclasse 
deve oferecer, mas não implementa nenhuma funcionalidade. 
Diz-se que apenas a interface (conjunto de especificação dos 
métodos públicos) da superclasse é herdada pela subclasse. 
 
Combinação de extensão e especificação: a subclasse herda 
a interface e uma implementação padrão de (pelo menos 
alguns de) métodos da superclasse. A subclasse pode então 
redefinir métodos para especializar o comportamento em 
relação ao que é oferecido pela superclasse, ou ter que oferecer 
alguma implementação para métodos que a superclasse tenha 
declarado, mas não implementado. Normalmente, este tipo de 
relacionamento é denominado herança polimórfica. (RICARTE, 
2001, p.7). 
 
Figura 5: Descrição em Java da Hierarquia de classes 
 
Fonte: CLARO e SOBRAL, 2008, p.47. 
 
class Pai { 
…… 
} 
class Filho extends Pai { 
…… 
} 
class Filha extends Pai { 
…. 
} 
class Neta extends Pai { 
…. 
} 
Programação Orientada a Objetos I 
 
25 
Na herança o conceito de relacionamento é predominante e é este conceito 
que define a hierarquia de classes para que se crie uma herança apropriada. Assim, 
para definir a hierarquia apropriada, utiliza-se sempre o conceito de 
relacionamento “é um” como especificado por KON et al (2006,133), “A relação 
superclasse subclasse deve necessariamente ser um relacionamento do tipo "é 
um", ou seja, se B é subclasse de A então todo B é um A.” 
A figura ilustra este conceito de relacionamento, onde animal é um ser vivo, e 
todo animal é um ser vivo. Não existe nenhum animal que não seja um ser vivo, 
neste caso relacionamento superclasse-subclasse é apropriado. 
 
Figura 6:Hierarquia de classes 
 
 
Fonte: KON; GOLDMAN e SILVA, 2006.p.132. 
 
Programação Orientada a Objetos I 
 
26 
 
Para entender melhor alguns quesitos ligados à herança Fabio Kon, et al (2006) 
definem algumas diretrizes importantes: 
_ uma classe pode herdar de outra seus atributos e 
métodos; 
_ uma subclasse pode estender a funcionalidade de sua 
superclasse acrescentando novos atributos e métodos. 
Mas, e se uma subclasse implementar um método com 
assinatura idêntica a um método da superclasse? 
Neste caso, quem prevalece é o método da subclasse e 
dizemos que o método da subclasse se sobrepõe 
("overrides") ao método da superclasse. (KON et al, 2006, p. 
133) 
Figura 7: Representação de herança de classes 
 
 
Fonte: SANTOS, 2001, p.187. 
 
Programação Orientada a Objetos I 
 
27 
Nesta figura a classe pacientedeClinica e Funcionario herdam da classe Pessoa 
seus métodos e atributos, tudo que for modificado na classe Pessoa será 
modificado nas classes que são herdeiras da classe Pessoa e a Classe 
ChefedeDepartamento herda os campos da classe Funcionario e indiretamente da 
classe Pessoa. 
Assim, temos que a herança é um mecanismo que se utilizado de forma 
adequada possui funcionalidades que permite o uso de atributos e métodos no 
contexto de classes que define facilidades na hora de implementar um código, a 
herança permite que o programador crie um método para um superclasse e só o 
referencie em outras partes do código, herdando todo o código já executado. 
 
Polimorfismo 
 
O polimorfismo é um mecanismo que permite a manipulação de instâncias de 
classes, onde se executa métodos que recebam instâncias de classes herdadas. 
Segundo Ivan Luiz Marques Ricarte (2001), o polimorfismo é: 
 
o princípio pelo qual duas ou mais classes derivadas de uma 
mesma superclasse podem invocar métodos que têm a mesma 
identificação (assinatura) mas comportamentos distintos, 
especializados para cada classe derivada, usando para tanto 
uma referência a um objeto do tipo da superclasse. Esse 
mecanismo é fundamental na programação orientada a 
objetos, permitindo definir funcionalidadesque operem 
genericamente com objetos, abstraindo-se de seus detalhes 
particulares quando esses não forem necessários. 
 
Para que o polimorfismo possa ser utilizado, é necessário que 
os métodos que estejam sendo definidos nas classes derivadas 
tenham exatamente a mesma assinatura do método definido 
na superclasse; nesse caso, está sendo utilizado o mecanismo 
de redefinição de métodos (overriding). Esse mecanismo de 
redefinição é muito diferente do mecanismo de sobrecarga de 
métodos, onde as listas de argumentos são diferentes. 
 
No caso do polimorfismo, o compilador não tem como decidir 
qual o método que será utilizado se o método foi redefinido 
em outras classes — afinal, pelo princípio da substituição um 
objeto de uma classe derivada pode estar sendo referenciado 
como sendo um objeto da superclasse. Se esse for o caso, o 
método que deve ser selecionado é o da classe derivada e não 
o da superclasse. 
 
Programação Orientada a Objetos I 
 
28 
Dessa forma, a decisão sobre qual dos métodos método que 
deve ser selecionado, de acordo com o tipo do objeto, pode ser 
tomada apenas em tempo de execução, através do mecanismo 
de ligação tardia. O mecanismo de ligação tardia também é 
conhecido pelos termos em inglês late binding, dynamic binding 
ou ainda run-time binding.(RICARTE, 2001,p.8). 
 
Na figura abaixo, temos um exemplo de polimorfismo, definido pela classe 
ConcessionariadeAutomoveis que cria um método imprime e recebe uma instância 
da classe Automovel como argumento e imprime os dados desta instância usando 
métodos específicos toString,quantoCusta, quantasPrestacoes e estes métodos 
podem ser instanciados para outras classes, usando o contexto de polimorfismo. 
Figura 8: Representação de herança de classes 
/** 
* A classe ConcessionariaDeAutomoveis, que implementa o processo de venda de 
* automóveis em uma concessionária. Para cada tipo de automóvel, o preço e número de 
* suas prestações será impresso. O modelo representado é extremamente simples, e a 
* concessionária somente tem cinco automóveis à venda. 
* Esta classe demonstra polimorfismo de classes usando instâncias das classes 
* herdeiras da classe Automovel. Um método da classe aceitará instâncias de qualquer 
* classe herdeira de Automovel. 
*/ 
class ConcessionariaDeAutomoveis 
{ 
 
 /** 
 * O método main permite a execução desta classe. Este método contém declarações de 
 * algumas instâncias das classes Automovel, AutomovelBasico e AutomovelDeLuxo, e as 
 * usa para mostrar o valor da prestação de cada automóvel. 
 * @param argumentos os argumentos que podem ser passados para o método via linha 
 * de comando, mas que neste caso serão ignorados. 
 */ 
 public static void main(String[] argumentos) 
 { 
 // Criamos uma instância da classe Automovel 
 Automovel a1 = new Automovel("Fiat","bege",Automovel.MOVIDOAALCOOL); 
 // Criamos duas instâncias da classe AutomovelBasico 
 // Uma com o construtor básico 
 AutomovelBasico a2 = new AutomovelBasico("Corsa","cinza", 
Automovel.MOVIDOAGASOLINA); 
 // E outra com o construtor mais completo 
 AutomovelBasico a3 = new AutomovelBasico("Gol","branco", Automovel.MOVIDOAGASOLINA, 
Programação Orientada a Objetos I 
 
29 
 
Fonte: SANTOS, 2001, p.199. 
 
false,false,true); 
 // Criamos duas instâncias da classe AutomovelDeLuxo 
 // Uma com o construtor básico 
 AutomovelDeLuxo a4 = new AutomovelDeLuxo("Ibiza","vermelho", 
Automovel.MOVIDOAGASOLINA); 
 // E outra com o construtor mais completo 
 AutomovelDeLuxo a5 = new AutomovelDeLuxo("Honda","prata", 
Automovel.MOVIDOAGASOLINA, 
true,true,false, 
true,false,true); 
 // Imprimimos o "catálogo" da concessionária, ou seja, os dados dos automóveis, 
 // preços e condições de pagamento. 
 imprime(a1); 
 imprime(a2); 
 imprime(a3); 
 imprime(a4); 
 imprime(a5); 
 } // fim do método main 
 
 /** 
 * O método imprime mostra os dados de uma instância de qualquer classe que 
 * descenda da classe Automovel. Os métodos quantoCusta, quantasPrestações e 
 * toString das instâncias serão chamados. 
 * @param a uma instância de qualquer classe que herde da classe Automovel. 
 */ 
 public static void imprime(Automovel a) 
 { 
 System.out.println("Seguem os dados do automóvel escolhido:"); 
 System.out.print(a); // chamada implícita a toString 
 System.out.println("Valor: "+a.quantoCusta()); 
 System.out.println(a.quantasPrestações()+" prestações de "+ 
(a.quantoCusta()/a.quantasPrestações())); 
 } // fim do método imprime 
 
} // fim da classe ConcessionariaDeAutomoveis 
Programação Orientada a Objetos I 
 
30 
 
Ao longo desta unidade, aprendemos um pouco sobre os conceitos da 
programação orientada a objetos, bem como de seus principais recursos como 
objetos, encapsulamento, herança e polimorfismo que são a base para o 
entendimento da programação orientada a objetos. Na próxima unidade, 
trataremos da programação orientada a objetos em Java, conhecendo seus 
principais recursos. 
 
É hora de se avaliar 
Lembre-se de realizar as atividades desta unidade de estudo. Elas irão 
ajudá-lo a fixar o conteúdo, além de proporcionar sua autonomia no processo de 
ensino-aprendizagem. 
 
Bons estudos e até a próxima unidade! 
 
 
Programação Orientada a Objetos I 
 
31 
 
Exercícios – Unidade 1 
 
1-Na programação orientada a objetos são características dos objetos. 
a)As classes, os métodos e as mensagens. 
b) A identidade, os atributos e as operações. 
c) O encapsulamento, a herança e o polimorfismo. 
d) A instanciação, a generalização e a especialização. 
e) A classificação, a composição e a decomposição 
 
2-Na programação orientada a objetos, o encapsulamento: 
a) é a base de toda a abordagem dessa metodologia de programação e diz-se que 
um dado está encapsulado quando envolvido por código de forma que só é visível 
na rotina onde foi criado; o mesmo acontece com uma rotina, que sendo 
encapsulada, suas operações internas são invisíveis às outras rotinas. 
b) pode ser entendido como sendo um conjunto de instâncias criadas a partir de 
um outro conjunto de instâncias com características semelhantes. 
c) é definido como sendo uma técnica que permite a um código possuir "vários 
comportamentos" ou produzir "vários comportamentos". 
d) possibilita a criação de uma nova classe de modo que essa classe (denominada 
subclasse, classe-filha ou classe derivada) herda todas as características da classe-
mãe (denominada superclasse, classe base ou classe primitiva); podendo, ainda, a 
classe-filha possuir propriedades e métodos próprios. 
e) é considerado como a habilidade de modelar características do mundo real do 
problema que o programador esteja tentando resolver. 
 
Programação Orientada a Objetos I 
 
32 
 
3-Na programação orientada a objetos, a instanciação de objetos tem o 
objetivo de: 
a) criar um objeto. 
b) definir atributos e métodos de uma classe 
c) inicializar uma classe. 
d) abstrair os atributos de um objeto 
e) classificar um objeto 
 
4-Em programação orientada a objetos, a possibilidade de haver funções de 
mesmo nome, com funcionalidades similares em classes sem nenhuma relação 
entre elas, denomina-se: 
a) encapsulamento. 
b) objeto. 
c) classe. 
d) polimorfismo. 
e) relacionamento hierárquico. 
 
5-No paradigma de programação Orientada a Objetos, a Herança facilita: 
a) a leitura e a escrita de código pelo compartilhamento de nomes dos métodos. 
b) a reutilização e a modificação dos módulos de códigos existentes. 
c) esconder e proteger detalhes da implementação. 
d) a definição de classes abstratas. 
e) a composição e interação entre os objetos. 
 
Programação Orientada a Objetos I 
 
33 
 
6-Na programação orientada a objetos, o conceito de polimorfismo indica que: 
a) cada classe tem uma limitação quanto ao número de atributos que a compõe. 
b) o código de cada operação tem um limite máximo no número de linhas de 
código. 
c) o nome dos métodos deve ser composto por, no máximo, 8 caracteres. 
d) o nome das classes deve sercomposto por, no máximo, 20 caracteres. 
e) uma certa operação de uma classe pode nem sempre ativar o mesmo método. 
 
7-Na programação orientada a objetos utiliza-se o conceito de 
encapsulamento, segundo o qual: 
a) os objetos de uma classe devem ser armazenados em tabelas de um gerenciador 
de banco de dados relacional. 
b) todos os atributos de uma classe devem possuir o mesmo tipo de dados. 
c) as classes devem possuir apenas atributos, sem nenhum método próprio. 
d) detalhes da implementação de uma classe são ocultados das demais classes. 
e) os objetos de uma classe devem ser armazenados diretamente em objetos de 
um gerenciador de banco de dados orientado a objetos. 
 
8-O conceito de encapsulamento na orientação a objetos refere-se: 
a) ao mecanismo pelo qual uma classe pode estender outra classe, aproveitando 
seus comportamentos (métodos) e variáveis possíveis (atributos). 
b) à separação dos aspectos internos e externos de um objeto, restringindo o 
acesso direto ao estado do objeto. 
c) à habilidade de concentrar nos aspectos essenciais de um contexto qualquer, 
ignorando características menos importantes ou acidentais. 
d) ao princípio pelo qual classes distintas podem invocar métodos que têm a 
mesma assinatura, mas comportamentos especializados. 
e) à utilização do mesmo nome para símbolos ou métodos com funcionalidades 
distintas, geralmente diferenciados pela sua assinatura. 
Programação Orientada a Objetos I 
 
34 
9-O que é a programação Orientada a Objetos? 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 
10- O que é Ocultamento da Informação? 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
 ___________________________________________________________________ 
Programação Orientada a Objetos I 
 
35 
 
2 Orientação a Objetos na linguagem Java 
Programação Orientada a Objetos I 
 
36 
 
Caro aluno, 
Nesta unidade, aprenderemos sobre programação orientada a objetos usando 
Java, conheceremos a plataforma Java, como declarar variáveis, o que são tipos de 
dados, e um pouco de estruturas condicionais e de repetição. Começaremos a 
programar em Java. 
 
Objetivos da unidade: 
Conhecer a plataforma Java; 
Aprender a declarar variáveis, a fazer uso das estruturas condicionais e de 
repetição; 
Aprender sobre tipos de dados. 
 
Plano da unidade: 
x A plataforma 
x Ambientes de desenvolvimento 
x Estrutura da linguagem 
x Variáveis e Operadores 
x Tipos de dados 
x Estruturas condicionais 
x Estruturas de Repetição 
 
 
Bons estudos! 
 
 
Programação Orientada a Objetos I 
 
37 
A linguagem de programação Java foi desenvolvida pela Sun Microsystems e é 
um aplicativo que permite desenvolver aplicações para desktop, aplicações Web e 
as mais novas versões já rodam em celulares. 
 
Os microprocessadores estão tendo um impacto profundo 
em dispositivos eletrônicos inteligentes de consumo 
popular. Reconhecendo isso, a Sun Microsystems, em 1991, 
financiou um projeto de pesquisa corporativa interna 
chefiado por James Gosling, que resultou em uma 
linguagem de programação orientada a objetos chamada 
C++, que a empresa chamou de Java. 
Um objetivo-chave do Java é ser capaz de escrever 
programas a serem executados em uma grande variedade 
de sistemas computacionais e dispositivos controlados por 
computador. Isso às vezes é chamado de “escreva uma vez, 
execute em qualquer lugar”. 
Por uma feliz casualidade, a web explodiu em popularidade 
em 1993 e a Sun viu o potencial de utilizar o Java para 
adicionar conteúdo dinâmico, como interatividade e 
animações, às páginas da web. O Java chamou a atenção 
da comunidade de negócios por causa do interesse 
fenomenal pela web. Ele é agora utilizado para desenvolver 
aplicativos corporativos de grande porte, aprimorar a 
funcionalidade de servidores da web (os computadores 
que fornecem o conteúdo que vemos em nossos 
navegadores), fornecer aplicativos para dispositivos 
voltados ao consumo popular (por exemplo, telefones 
celulares, smartphones, televisão, set-up boxes etc.) e para 
muitos outros propósitos. Ainda, ele também é a 
linguagem-chave para desenvolvimento de aplicativos 
Android adequados a smartphones e tablets. A Sun 
Microsystems foi adquirida pela Oracle em 2010. (DETEIL; 
DEITEL, 2017, p.13). 
 
A linguagem Java permite que os aplicativos desenvolvidos rodem em 
qualquer máquina desde que contenha uma máquina virtual implementada para a 
linguagem. Usa o conceito de threads (muitas tarefas), suporte a programação para 
internet, permite o uso de acesso remoto, possui mecanismos de segurança 
robustos, sintaxe baseada em C. Segundo Daniela Barreiro Claro e João Bosco 
Mangueira Sobral (2008, p.13): 
 
Programação Orientada a Objetos I 
 
38 
 
Programas escritos em Java, podem ser Applets, Aplicativos 
ou ainda Servlets. Os aplicativos são programas que 
necessitam de um interpretador instalado na máquina. 
Enquanto que Applets são programas carregados 
juntamente com páginas HTML. O interpretador, no caso 
das Applets, é o próprio browser. Não necessita instalação, 
basta que o browser usado ofereça suporte a Java. Já no 
caso dos Servlets, são programas desenvolvidos em Java 
que são interpretados pelo Servidor Web. Os servlets são 
utilizados na geração dinâmica de páginas HTML. 
Atualmente, são muito utilizados na combinação com JSP 
(Java Server Pages) para a utilização do MVC (Model View 
Controller). (CLARO E SOBRAL 2008, p.13): 
 
A linguagem permite a programação em vários tipos de plataformas com 
versatilidade de uso, neste sentido, temos várias versões que apresentam 
funcionalidades diferenciadas para os tipos de softwares necessários, como 
demonstra Paul Deitel e Harvey Deitel (2017, p.3): 
 
O Java Standard Edition contém os recursos necessários 
para desenvolver aplicativos de desktop e servidor. 
O Java Enterprise Edition ( Java EE) é adequado para 
desenvolver aplicativos em rede distribuída e em grande 
escala e também aplicativos baseados na web. No passado, 
a maioria dos aplicativos de computador era executada em 
computadores “independentes” (que não estavam 
conectados em rede). Já os aplicativos de hoje podem ser 
escritos para que se comuniquem entre os computadores 
no mundo pela internet e web. 
O Java Micro Edition ( Java ME) — um subconjunto do Java 
SE — é voltado para o desenvolvimento de aplicativos para 
dispositivos embarcados com recursos limitados, como 
smartwatches, MP3 players, decodificadores de TV (set-top 
boxes), medidores inteligentes (para monitorar o uso de 
energia elétrica) e muitos outros: 
 
A linguagem Java permite o desenvolvimento de aplicações que nos dias 
atuais são usadas para executar programas com mais facilidade, em diversas 
plataformas.Programação Orientada a Objetos I 
 
39 
 
A plataforma 
 
A linguagem de programação Java tem a sintaxe parecida com a linguagem C, 
com características particulares que são a orientação a objetos e a portabilidade, 
que acontece por permitir que os softwares desenvolvidos em Java sejam 
executados em qualquer máquina, trabalha com threads, possui segurança 
robusta. 
Quando se fala em plataforma, entende-se da combinação de sistema 
operacional e hardware, assim a plataforma Java se caracteriza por ter uma 
máquina virtual que permite que todos os programas desenvolvidos em Java 
rodem em qualquer máquina sem que tenham o problema da combinação de 
sistema e hardware. Para Victorio Albani de Carvalho e Giovany Frossard Teixeira 
(2012, p.19), plataformas são: 
 
Descritas como a combinação do sistema operacional e o 
hardware em que rodam. Nesse contexto, a maioria das 
plataformas de desenvolvimento existentes possui uma 
restrição marcante: cada programa é produzido para uma 
plataforma (Sistema Operacional + hardware) específica. A 
plataforma Java difere dessas plataformas pelo fato de 
desagregar o hardware de si, ou seja, trata-se de uma 
plataforma de software que roda em cima de outras 
plataformas baseadas em hardware. (CARVALHO e TEIXEIRA 
2012, p.19). 
 
É nesta plataforma que os programas são executados, a plataforma Java possui 
independência nesta execução por usar o conceito de máquina virtual como 
conceitua Victorio Albani de Carvalho e Giovany Frossard Teixeira (2012, p.19): 
 
Essa independência de hardware obtida pela plataforma 
Java deve-se à utilização do conceito de máquina virtual: a 
Java Virtual Machine (JVM). A JVM é um software que 
funciona sobre o sistema operacional, sendo responsável 
pelo processo de tradução de um programa Java para uma 
plataforma específica. Assim, um programa feito em Java 
pode rodar em qualquer SO de qualquer arquitetura, desde 
que exista uma JVM implementada para ele. 
 
Programação Orientada a Objetos I 
 
40 
 
Figura 9: Execução de um aplicativo Java 
 
 
Fonte: CARVALHO e TEIXEIRA, 2012, p.20. 
 
 
Ambientes de desenvolvimento 
 
Um ambiente de desenvolvimento Java consiste no ambiente ao qual pode-se 
criar os programas e executá-los. Na plataforma Java os programas podem ser 
escritos em editores de texto e serem executados por meio de um kit de aplicação 
Java, bem como existem vários depuradores de erros lógicos que são chamados de 
ambientes integrados (IDEs) que fornecem ferramentas para o desenvolvimento 
dos softwares em Java, como: Eclipse, Netbeans e outros. Victorio Albani de 
Carvalho e Giovany Frossard Teixeira (2012, p.21), afirma que o NetBeans é: 
 
[...] um ambiente de desenvolvimento integrado gratuito e 
de código aberto. Esse IDE é executado em muitas 
plataformas, como Windows, Linux, Solaris e MacOS, sendo 
fácil de instalar e usar. O NetBeans IDE oferece aos 
desenvolvedores todas as ferramentas necessárias para 
criar aplicativos profissionais de desktop, empresariais, web 
e móveis multiplataformas. 
 
Programação Orientada a Objetos I 
 
41 
 
Figura 10: Criação de um programa em Java 
 
 
 
 
Fonte: DEITEL, Paul e DEITEL, Harvey, 2017, p.14. 
 
 
Victorio Albani de Carvalho e Giovany Frossard Teixeira (2012, p.20) 
 
Um programa Java precisa passar por um processo de 
compilação para ser analisada a existência de erros de 
sintaxe. Esse processo de compilação traduz o código-fonte 
escrito pelo programador para uma linguagem 
intermediária chamada Java bytecodes. Esse processo de 
tradução dos códigos fontes para Java bytecodes é feito por 
um programa chamado compilador. Então, é necessário 
que outra ferramenta chamada interpretador se 
responsabilize por interpretar esses bytecodes para o 
sistema operacional. Essa ferramenta que interpreta 
bytecodes é a máquina virtual Java (JVM). O conjunto de 
ferramentas necessárias para desenvolver, compilar e rodar 
aplicativos Java é disponibilizado em um kit conhecido 
como Java Development Kit (JDK). Assim, para começar a 
programar em Java você deve realizar o download do JDK e 
instalá-lo. (CARVALHO, TEIXEIRA, 2012, p, 20). 
 
Programação Orientada a Objetos I 
 
42 
 
Para executar um programa na plataforma Java o mesmo passa pelo processo 
de compilação que irá verificar o código e executá-lo em sua totalidade. 
 
Figura 11: Compilação em Java 
 
 
 
Fonte: CLARO e SOBRAL, 2008, p.17. 
 
Estrutura da linguagem 
 
A linguagem de programação Java tem a estrutura voltada para a orientação a 
objetos com a sintaxe parecida com a linguagem C, é uma linguagem case 
sensitive, ao fazer um código o compilador diferencia letras maiúsculas e 
minúsculas, assim ao declarar uma variável deve-se ter esta atenção. 
Em Java todo código já inicia com a declaração de uma classe, que é definida 
pela palavra reservada class. 
 
Programação Orientada a Objetos I 
 
43 
 
Figura 12: Programas em Java e C 
 
Fonte: CARVALHO e TEIXEIRA, 2012, p.21. 
 
Segundo Daniela Barreiro Claro e João Bosco Mangueira Sobral (2008, p.19), a 
estrutura básica de uma aplicação Java se caracteriza por: 
 
Possuir um método main(). O método main é o método 
chamado pelo interpretador Java quando executado. A 
declaração do método deve ser rigorosamente: public 
static void main( String[] args), onde define um método de 
classe de acesso público, sem retorno, que recebe como 
parâmetro um array de Strings de tamanho indefinido, 
representado pela variável args. O args é a declaração do 
objeto do Array de String, por isso pode ser atribuído a ele 
qualquer nome. A disposição dos atributos e métodos é 
feita de forma aleatória, ou seja, não importa a ordem, 
apenas necessitam respeitar regras de validade de escopo 
das variáveis. 
 
Segue exemplo de um código simples em Java: 
 
 
Exemplo em Java 
public class Exemplo01{ 
 public static void main(String[ ] args){ 
 System.out.println( “Primeiro Exemplo”); 
 } 
} 
 Exemplo em C 
 int main( ) { 
 printf (“Primeiro Exemplo!\n”); 
 } 
 
class OlaMundo { 
 public static void main( String[] args ) { 
 //corpo do programa 
 //Escreve na tela: Ola Mundo. 
 System.out.println(“Ola Mundo”); 
 } 
} 
Programação Orientada a Objetos I 
 
44 
 
 
Public: É um quantificador do método que indica que este é 
acessível externamente a esta classe (por outras classes que 
eventualmente seriam criadas). Este tópico será abordado 
posteriormente. 
 
Static: É um qualificador que indica que este método é um 
método de classe, ou seja, há uma cópia somente por 
classe. Os métodos static podem ser invocados, mesmo 
quando não for criado nenhum objeto para a classe, para 
tal deve-se seguir a sintaxe: 
<NomeCasse>.<NomeMetodoStatic>(argumentos) 
 
Void: Semelhante ao void do C/C++, corresponde ao valor 
de retorno da função. Quando a função não retorna 
nenhum valor ela possui a palavra reservada void no local 
de retorno, uma espécie de valor vazio que tem que ser 
especificado. 
 
Main: É um nome particular do método que indica para o 
compilador o início do programa, é dentro deste método e 
através de interações entre os atributos e argumentos 
visíveis nele que o programa se desenvolve. 
 
String[] args: É o argumento do método main e por 
conseqüência, do programa todo, é um array de Strings 
que é formado quando são passados ou não argumentos 
através da invocação do nome do programa na linha de 
comando do sistema operacional. 
{ .... } 
“Abre chaves” e “fecha chaves”: delimitam um bloco de 
código (semelhante a BEGIN e END em Pascal). 
 
System.out.println: Chamada do método println para o 
atributo out da classe System. O argumento é uma 
constante do tipo String. println assim como o writeln de 
Pascal, imprime na saída padrão a String e posiciona o 
cursor na linha abaixo, analogamente print não avança a 
linha. (CLARO,SOBRAL, 2008, p.20-21). 
 
 
Programação Orientada a Objetos I 
 
45 
 
Para fazer um comentário em Java usa-se a estruturaabaixo: 
Comentário de bloco 
/* texto */ 
Todo o texto é ignorado. Este tipo de comentário pode ocupar várias 
linhas. 
Comentário de Linha 
// texto 
Todo o texto depois de // até o final da linha será ignorado. 
Comentário do JavaDoc 
/** Comentário para documentação 
*/ 
Na linguagem Java há palavras chaves, palavras reservadas para uso próprio 
pela linguagem e que não podem ser usadas de outras forma na linguagem, quer 
seja como declaração de variáveis ou outros. 
Figura 13: Palavras chaves 
 
abstract 
boolean 
break 
byte 
case 
cast 
catch 
char 
class 
const 
continue 
default 
do 
double 
else 
extends 
final 
finally 
float 
for 
future 
generic 
goto 
if 
implements 
impor 
inner 
instanceof 
int 
interface 
long 
native 
new 
null 
operator 
outer 
package 
private 
protected 
public 
rest 
return 
short 
static 
super 
switch 
synchronized 
this 
throw 
throws 
transient 
try 
var 
void 
volatile 
while 
 
Fonte: CLARO e SOBRAL, 2008, p.22. 
 
Programação Orientada a Objetos I 
 
46 
Para fazer exibir o resultado do código em Java usa-se o comando abaixo 
apresentado por Paul Deitel e Harvey Deitel (2017, p. 31). 
 
System.out.println("Welcome to Java Programming!"): 
instrui o computador a executar uma ação, ou seja, exibir 
os caracteres contidos entre as aspas duplas (as próprias 
aspas não são exibidas). Juntos, as aspas e os caracteres 
entre elas são uma string — também conhecida como 
string de caracteres ou string literal. Os caracteres de 
espaço em branco em strings não são ignorados pelo 
compilador. As strings não podem distribuir várias linhas de 
código. O objeto System.out — que é predefinido para 
você — é conhecido como objeto de saída padrão. Ele 
permite que um aplicativo Java exiba informações na 
janela de comando a partir da qual ele é executado. Em 
versões recentes do Microsoft Windows, a janela de 
comando chama-se Prompt de Comando. No 
Unix/Linux/Mac OS X, a janela de comando é chamada 
janela terminal ou shell. Muitos programadores 
simplesmente a chamam linha de comando. 
O método System.out.println exibe (ou imprime) uma 
linha de texto na janela de comando. A string entre 
parênteses é o argumento para o método. Quando 
System.out.println completa sua tarefa, ele posiciona o 
cursor de saída (o local em que o próximo caractere será 
exibido) no começo da linha seguinte na janela de 
comando. Isso é semelhante àquilo que acontece ao 
pressionar a tecla Enter depois de digitar em um editor de 
texto — o cursor aparece no início da próxima linha no 
documento. Incluindo System.out.println, o argumento 
“Welcome to Java Programming!" entre parênteses e o 
ponto e vírgula (;), é uma instrução. Um método 
normalmente contém uma ou mais instruções que 
executam a tarefa. A maioria das instruções acaba com um 
ponto e vírgula. Quando a instrução executa, ela exibe 
Welcome to Java Programming! na janela de comando. 
 
Programação Orientada a Objetos I 
 
47 
 
Figura 14: Exibição do resultado de um código Java 
 
 
Fonte: DEITEL, Paul. DEITEL. Harvey, 2017, p. 34. 
 
Variáveis e Operadores 
 
A linguagem Java possui em sua estrutura a conceituação de atributos que é a 
mesma coisa de variável, os atributos determinam os dados em si, e para a 
declaração de um atributo é necessário a declaração do seu tipo, com a declaração 
do tipo identifica-se o tipo de informação que poderá ser armazenado no mesmo. 
CLARO, SOBRAL (2008, p.23) determina que: “Atributos em Java podem ser 
declarados no corpo da classe ou podem ser declarados localmente em qualquer 
parte da implementação de um método”. 
Para a declaração de uma variável primeiro declaramos o tipo, a variável e 
podemos definir valores a atribuição de valores é feita pelo operador =. 
public class Welcome2 
{ 
 //metodo main inicia a execução do aplicativo Java 
 public static voin main( String[ ] args) 
 { 
 System.out.print (“Welcome to”); 
 System.out.println ( “Java Programming!”); 
 } // fim do método main 
} //fim da classe Welcome2 
 
Welcome To 
Java Programming! 
 
Sintaxe: <tipo> <identificador> [= <valor inicial>]; 
e 
<identificador> = <valor>; 
Programação Orientada a Objetos I 
 
48 
Os valores também podem ser inicializados depois que as variáveis forem 
declaradas. Segue alguns exemplos de declaração de variáveis. (CLARO, SOBRAL, 
2008) 
 
Ivan Luiz Marques Ricarte (2001, p.10), afirma que para a declaração de 
variáveis ou identificadores é importante seguir umas regras básicas como 
determinadas abaixo: 
Identificadores são seqüências de caracteres Unicode, que 
devem obedecer às seguintes regras: 
_ Um nome pode ser composto por letras, por dígitos e 
pelos símbolos _ e $. 
_ Um nome não pode ser iniciado por um dígito (0 a 9). 
_ Letras maiúsculas são diferenciadas de letras minúsculas. 
_ Uma palavra-chave da linguagem Java não pode ser um 
identificador. 
Java diferencia as letras minúsculas das maiúsculas. Assim, 
as duas variáveis 
int socorro; 
int soCorro; são variáveis diferentes. 
Além dessas regras obrigatórias, o uso da convenção 
padrão para identificadores Java torna a codificação mais 
uniforme e pode facilitar o entendimento de um código. 
Embora não seja obrigatório, o conhecimento e uso da 
seguinte convenção padrão para atribuir nomes em Java 
pode facilitar bastante a manutenção de um programa: 
_ Nomes de classes são iniciados por letras maiúsculas. 
_ Nomes de métodos, atributos e variáveis são iniciados por 
letras minúsculas. 
_ Em nomes compostos, cada palavra do nome é iniciada 
por letra maiúscula— as palavras não são separadas por 
nenhum símbolo. 
 
int diasFerias, outroInteiro; 
double salario; 
float umFloat = 0.5; 
char letra = ‘i’; 
boolean achou = false; 
diasFerias = 30; 
Programação Orientada a Objetos I 
 
49 
No Java tem a possibilidade da declaração de constantes que são variáveis 
reservadas que tem por função permitir que o valor seja atribuído uma única vez à 
variável como afirma Daniela Barreiro Claro e João Bosco Mangueira Sobral (2008, 
p.24). 
final double AUMENTO = 5,25; 
 
As constantes em Java são definidas através da palavra 
reservada FINAL. Esta palavra reservada tem por 
características atribuir somente uma vez o valor à variável. 
Para determinar que uma variável é uma constante, basta 
inserir a palavra reservada no inicio da definição da mesma. 
As constantes em Java têm por característica e estilo serem 
escritas em caixa alta e inicializadas com um determinado 
valor. (CLARO, SOBRAL, 2008, p. 24). 
 
Os operadores podem ser aritméticos e relacionais, os mesmos são 
símbolos usados para executar operações matemáticas, os operadores são os 
mesmos usados em outras linguagens. 
 
Operador Descrição da operação matemática 
+ Soma (inteira e ponto flutuante) 
- Subtração (inteira e ponto flutuante) 
* Multiplicação (inteira e ponto flutuante) 
/ Divisão (inteira e ponto flutuante) 
-- Decremento unário (inteiro e ponto flutuante) 
++ Incremento unário (inteiro e ponto flutuante) 
% Resto da divisão de inteiros 
Adaptado de CARVALHO e TEIXEIRA, 2012. 
 
 
Programação Orientada a Objetos I 
 
50 
Segundo Paul Deitel e Harvey Deitel (2017, p. 42) os operadores aritméticos 
quando usados na programação em Java são usados com uma ordem de 
precedência como demonstrado a seguir: 
 
O Java aplica os operadores em expressões aritméticas em 
uma sequência precisa determinada pelas seguintes regras 
de precedência de operador, que são geralmente as 
mesmas que aquelas seguidas em álgebra: 
1. As operações de multiplicação, divisão e de resto são 
aplicadas primeiro. Se uma expressão contiver várias dessas 
operações, elas serão aplicadas da esquerda para a direita. 
Os operadores de multiplicação, divisão e resto têm o 
mesmo nível de precedência. 
2. As operações de adição e subtração são aplicadas em 
seguida. Se uma expressão contiver várias dessas 
operações, os operadores serão aplicados da esquerda para 
a direita. Os operadores de adição e subtração têm omesmo nível de precedência. 
Essas regras permitem que o Java aplique os operadores na 
ordem correta.1 Quando dizemos que operadores são 
aplicados da esquerda para a direita, estamos nos referindo 
à sua associatividade. 
 
Operador(es) Operação(ões) Ordem de avaliação (precedência) 
* Multiplicação Avaliado primeiro. Se houver vários 
operadores desse tipo, eles são avaliados 
da esquerda para a direita. / Divisão 
% Resto 
+ Adição Avaliado em seguida. Se houver vários 
operadores desse tipo, eles são avaliados 
da esquerda para a direita. - Subtração 
= Atribuição Avaliado por último. 
 
Adapatado de DEITEL, Paul. DEITEL. Harvey, 2017. 
 
Programação Orientada a Objetos I 
 
51 
Já os operadores relacionais são usados para executar operações em códigos 
Java de comparação entre dois valores, retornando um valor lógico como 
resultado, este valor será verdadeiro ou falso. (CARVALHO, TEIXEIRA, 2012). 
Descrição Operador 
igual a == (dois sinais de igual) 
maior que > 
menor que < 
maior ou igual a >= 
menor ou igual a <= 
diferente de != 
 
Adaptado de CARVALHO e TEIXEIRA, 2012. 
 
E os operadores lógicos que são utilizados para formar proposições com a 
junção de outras proposições lógicas. 
Descrição Operador 
E && 
OU || (duas barras verticais) 
Não ! (exclamação) 
Adaptado de CARVALHO e TEIXEIRA, 2012. 
 
Além dos operadores no Java, as operações permitem o uso da atribuição 
composta que é usada para atribuir a uma variável qualquer o valor dela mesma 
adicionado a outro valor, como segue exemplos. (CLARO, SOBRAL, 2008, p.25). 
 
 
x += 10; // Equivale x = x + 10; 
x += y; // Equivale x = x + y; 
a -= b; // Equivale a = a – b; 
a *= 3; // Equivale a = a * 3; 
Programação Orientada a Objetos I 
 
52 
No quadro de operadores aritméticos foram apresentados dois operadores 
diferentes chamados incremento e decremento, estes operadores são muito 
utilizados na linguagem Java para facilitar ao programador o uso de novas 
operações que as básicas já apresentadas. Os operadores de incremento e 
decremento segundo Daniela Barreiro Claro e João Bosco Mangueira Sobral (2008, 
p.25), são: 
O incremento é dado pelo operador ++ e o decremento 
pelo operador --. Este decremento ou incremento pode ser 
feito antes ou depois da utilização da variável, dependendo 
da necessidade do programador em relação a atribuição do 
dado. 
Colocando os operadores antes das variáveis será realizado 
primeiro a operação para depois o valor da variável ser 
utilizado. Ao contrário, caso o operador esteja localizado 
após a variável, será realizado primeiramente a variável 
para depois ser realizado o incremento ou o decremento da 
variável. 
 
E o uso do operador ternário na linguagem Java é utilizado quando se faz uso 
de operações de condição, neste caso as operações irão executar uma expressão 
ou outra em um bloco de código, como explana Daniela Barreiro Claro e João 
Bosco Mangueira Sobral (2008, p.26). 
O operador ternário permite que se realize operações 
simplificadas de condições. Uma condição trabalhada no 
Java como IF-THEN-ELSE pode ser manipulada através do 
operador ternário. O operador ternário é formado por uma 
condição, e em caso positivo, é executada uma ação e em 
caso negativo, outra ação pode ser executada. 
x<y ? e1:e2 onde, 
x<y é a condição, e em caso positivo será executado e1 e 
em caso negativo será executado e2. Segue abaixo um 
exemplo com valores: 
String a = 1<2 ? “Menor” : “Menor” 
O valor de a será “Menor ”, visto que 1 é menor que 2. 
 
i++; //Equivalente a: i = i +1; 
i--; //Equivalente a: i = i -1; 
++i; //Equivalente a: i = i +1; 
--i; //Equivalente a: i = i -1; 
Programação Orientada a Objetos I 
 
53 
Os operadores permitem que a execução da programação em Java seja 
facilitada quando os operadores são usados de forma correta, na linguagem Java 
os operadores são usados para determinar várias atribuições ao processo de 
execução dos códigos. 
 
Tipos de dados 
Os tipos de dados são usados para determinar quais os tipos de informações 
que podem ser inicializadas e armazenadas nas variáveis declaradas em um bloco 
de código. 
Java é uma linguagem fortemente tipada, ou seja, todas as 
variáveis definidas na linguagem devem possuir um tipo de 
dados definido. Além disso, a linguagem possui os tipos 
primitivos de dados que permite que os mesmos tenham 
tamanhos pré-determinados (fixos) para cada tipo, 
independente da máquina que o programa está sendo 
compilado ou interpretado.( CLARO, SOBRAL,2008, p.23). 
 
Figura 15: Tipos de dados 
 
 
 
Fonte: CLARO e SOBRAL, 2008, p. 23. 
 
 
Programação Orientada a Objetos I 
 
54 
 
Tipo 
primitivo Valores a serem armazenados 
Tamanho 
em bits 
char Permite armazenar um caractere. Exemplo: ‘a’. 16 
byte Permite armazenar um número inteiro de -128 até +127. 
Exemplo: 10. 
8 
short 
 
Permite armazenar um número inteiro de -32.768 até 
+32.767. Exemplo: 10. 
16 
int Permite armazenar um número inteiro de 
-2.147.483.648 até +2.147.483.647. Exemplo: 10. 
32 
long 
 
 
Permite armazenar um número inteiro de 
-9.223.372.036.854.775.808 até 
+9.223.372.036.854.775.807. Exemplo: 10. 
64 
float Permite armazenar um ponto flutuante de 
-3,40292347E+38 até +3,40292347E+38. Exemplo: 3.1416. 
32 
double Permite armazenar um ponto flutuante de 
-1,79769313486231570E+308 até 
+1,79769313486231570E+308. Exemplo: 3.1416. 
64 
boolean Permite armazenar apenas o valor true ou o valor false. 8 
 
Adaptado de CARVALHO e TEIXEIRA, 2012. 
 
 
O uso do tipo de dados define além do tipo de informação que irá ser 
atribuído à variável também irá determinar o espaço de memória que deverá ser 
alocado para a variável. 
Na programação Java, usa-se a conversão de tipo de dados primitivos, onde se 
utiliza uma variável que esteja declarada com um tipo para gerar um novo tipo de 
dados, este tipo de operação é permitido quando se quer aumentar o tamanho de 
uma variável, mudar a informação que a variável pode armazenar. Segundo 
Victorio Albani de Carvalho e Giovany Frossard Teixeira (2012, p.23-25), a conversão 
de tipos primitivos consiste em: 
 
Programação Orientada a Objetos I 
 
55 
 
Utilizar uma variável ou valor de um tipo para gerar um 
novo valor de outro tipo. Em alguns casos essa conversão é 
feita de forma direta, como, por exemplo, quando 
atribuímos um valor inteiro a uma variável do tipo double. 
Nesse caso a conversão é direta (também chamada de 
conversão implícita) porque é óbvio que um número 
inteiro pode ser representado como um número real. 
Mas, alguns tipos de variáveis apresentam valores 
incompatíveis entre si. Assim, nesses casos não é possível 
fazer uma atribuição direta. Por exemplo, se tentarmos 
atribuir a uma variável inteira o valor de uma variável 
double, teremos um erro de compilação. 
Para que atribuições como esta sejam possíveis, precisamos 
solicitar explicitamente que o número real seja moldado 
(casted) como um número inteiro. Essa operação de 
conversão entre tipos é também chamada de casting. Para 
realizar a conversão explícita, coloca-se, antes da expressão 
a ser convertida, o tipo destino da transformação entre 
parênteses. 
 
Tipo de Origem Tipo de Destino Exemplo 
int Double int a = 20; double b = a; 
//nesse caso a conversão é implícita 
double int double a = 20.1; int b = (int) a; 
//conversão explícita 
double float double a = 20.1; float b = (float) a; 
//conversão explícita 
long int long a = 20; int b = (long) a; 
//conversão explícita 
Adaptado de CARVALHO e TEIXEIRA. Giovany, 2012. 
 
 
Programação Orientada a Objetos I 
 
56 
 
 
Figura 16: Exemplo de conversão de dados 
Fonte: CARVALHO e TEIXEIRA, 2012, p.25. 
 
Estruturas condicionais 
 
A programação em Java bem como a programação em outras linguagens faz 
uso de estruturas condicionais para a tomada de decisão queafetam o fluxo do 
programa, desta forma temos a declaração de estruturas específicas que irão tomar 
essa decisão. 
Como estruturas condicionais se tem o uso do if, if-else, e switch. Ivan Luiz 
Marques Ricarte (2001, p. 13), especifica como funciona a estrutura de condicional 
if. 
A estrutura if permite especificar um comando (ou bloco 
de comandos, uma seqüência de expressões delimitada 
por chaves, { e }) que deve apenas ser executado quando 
uma determinada condição for satisfeita: 
if (condição) { 
bloco_comandos} 
Quando o bloco de comandos é composto por uma única 
expressão, as chaves que delimitam o corpo do bloco 
podem ser omitidas if (condição) expressão; 
 
Já a condição if- else permite que seja executado um bloco de comando se 
verdadeiro e outro se falso. Ivan Luiz Marques Ricarte (2001, p. 14), apresenta a 
estrutura condicional do if- else. 
 
double p=23.3; 
int i; 
i= (int)p; // agora compila 
i= (int) 2.3; // agora compila 
if (condição) { 
 bloco_comandos_caso_verdade 
} 
else { 
 bloco_comandos_caso_falso 
} 
Programação Orientada a Objetos I 
 
57 
Figura 17: Exemplo programa usando a estrutura if-else 
Fonte: CARVALHO e TEIXEIRA, 2012, p. 29. 
 
 
A condição switch-case apresenta alternativas de execução, mas 
apresenta condições de comparação a uma variável. Ivan Luiz Marques Ricarte 
(2001, p.14), apresenta a estrutura. 
 
 
package pacote1; 
import java.until.Scanner; 
public class ExemploIf{ 
 public static void main (String[ ]){ 
 Scanner scan= new Scanner (System.in); 
 System.out.println( “Entre com a nota:”); 
 double nota = Scan.nextDouble ( ); 
 if ( nota<=100 && nota >=0){ 
 System. Out. println ( “Nota= “+nota+” ( valor válido)”); 
 } 
 else{ 
 System.out.println ( “Nota= “+ nota+” (valor invalido) “); 
 } 
 } 
} 
switch (variável) { 
 case valor1: 
 bloco_comandos 
 break; 
 case valor2: 
 bloco_comandos 
 break; 
 ... 
 case valorn: 
 bloco_comandos 
 break; 
 default: 
 bloco_comandos 
} 
Programação Orientada a Objetos I 
 
58 
 
Figura 18: Exemplo programa usando a estrutura switch case 
Fonte: CARVALHO, TEIXEIRA, 2012, p.29. 
 
 
Estruturas de Repetição 
 
As estruturas de repetição apresentam para a programação loops 
indeterminadas que representam laços de repetição. As estruturas mais usadas são 
while, do- while. E também loops determinados que executam um trecho de 
código por uma quantidade de vezes determinadas, temos nesta modalidade a 
estrutura for. 
Para Daniela Barreiro Claro e João Bosco Sobral (2008, p.29), apresenta as a 
sintaxe das estruturas abaixo: 
 
Declaração WHILE: A estrutura while é utilizada quando não 
se quer que o corpo do laço seja necessariamente 
package pacote1; 
public class ExemploSwitchCase{ 
 public static void main( String[ ] args){ 
 int mes; 
 mes=Integer.parseInt(args[0]); 
 switch (mes){ 
 case 1: System.out.println (“Janeiro”); break; 
 case 2: System.out.println (“Fevereiro”); break; 
 case 3: System.out.println (“março”); break; 
 case 4: System.out.println (“Abril”); break; 
 case 5: System.out.println (“Maio”); break; 
 case 6: System.out.println (“Junho”); break; 
 case 7: System.out.println (“Julho”); break; 
 case 8: System.out.println (“agosto”); break; 
 case 9: System.out.println (“Setembro”); break; 
 case 10: System.out.println (“Outubro”); break; 
 case 11: System.out.println (“Novembro”); break; 
 case 12: System.out.println (“Dezembro”); break; 
 default: System.out.println (“Mês Inválido”); 
 } 
 } 
} 
Programação Orientada a Objetos I 
 
59 
executado. A expressão de comparação é avaliada antes 
que o laço seja executado. 
 
Declaração DO -WHILE: A estrutura do- while é utilizada 
quando se quer que o corpo do laço seja necessariamente 
executado, pelo menos uma vez. A expressão de 
comparação é avaliada depois que o laço for executado. 
 
Declaração FOR: A estrutura for fornece uma expressão 
para inicializar as variáveis, seguida por uma expressão de 
comparação e depois um lugar para incrementar ou 
decrementar as variáveis de laço. A declaração pode ser um 
comando simples ou um bloco de comandos. 
 
Para executar a estrutura de repetição while é necessário seguir alguns 
passos, como afirma Paul Deitel e Harvey Deitel(2017, p.120): 
1. uma variável de controle (ou contador de loop). 2. o 
valor inicial da variável de controle. 3. o incremento pelo 
qual a variável de controle é modificada a cada passagem 
pelo loop (também conhecido como cada iteração do 
loop). 4. a condição de continuação do loop que determina 
se o loop deve continuar. 
 
 
 
Figura 19: Programa usando a estrutura de repetição while 
Fonte: DEITEL, Paul. DEITEL. Harvey, 2017. p120. 
 
public class WhileCounter 
{ 
 public static void main(String[ ] args) 
 { 
 int counter =1; // declara e inicializa a variável de controle 
 while ( conter<=10) // condição de continuação do loop 
 { 
 System.out.printf (“%d” , counter); 
 ++counter; // variável de controle de increment 
 } 
 System.out.println( ); 
 } 
}// fim da classe WhileCounter 
Programação Orientada a Objetos I 
 
60 
 
A diferença da estrutura do- while para a estrutura while é que se executa 
pelo menos uma vez o bloco de comandos informado pelo programador. 
 
Figura 20: Exemplo programa usando a estrutura do-while 
Fonte: CARVALHO e TEIXEIRA, 2012, p.30. 
 
O comando for executa um laço de repetição, até que o contador seja 
encerrado. No for há um contador, com uma variável de controle para permitir a 
execução do bloco de comandos. 
 
Figura 21: Componentes do cabeçalho do for 
Fonte: DEITEL, Paul. DEITEL. Harvey,2017. p122. 
 
package pacote1; 
public class ExemploDoWhile{ 
 public static void main( String[ ] args){ 
 int i=0; 
 do{ 
 System.out.print(i+ “ “); 
 i++; 
 } while (i<=10); 
 System.out.println(); 
 System.out.println(“Acabou”); 
 } 
} 
Programação Orientada a Objetos I 
 
61 
 
 
Figura 22: Exemplo programa usando a estrutura for 
Fonte: CARVALHO, TEIXEIRA, 2012,p.30. 
 
 
Nesta unidade, tivemos uma introdução à programação orientada a 
objetos na linguagem de programação Java, assim, conseguimos aplicar os 
principais conceitos da POO em uma linguagem de programação, na prática. Na 
unidade a seguir aprenderemos sobre métodos e classes com seus diversos 
conceitos implícitos. 
 
 
É hora de se avaliar 
Lembre-se de realizar as atividades desta unidade de estudo. Elas irão 
ajudá-lo a fixar o conteúdo, além de proporcionar sua autonomia no processo de 
ensino-aprendizagem. 
 
Bons estudos e até a próxima unidade! 
 
 
package pacote1; 
public class ExemploFor{ 
 public static void main (String[ ] args) { 
 for(int i=0; i<= 10; i++) 
 { 
 System.out.print (i + “ “); 
 } 
 System.out.println( ); 
 System.out.println( “acabou”); 
 } 
} 
Programação Orientada a Objetos I 
 
62 
Exercícios – Unidade 2 
 
1-A respeito da linguagem Java, avalie as afirmativas a seguir e marque ( V) para 
verdadeiro ou ( F) para falso. 
( ) Todas as variáveis devem ser atribuídas a um tipo quando são declaradas. 
( ) Em uma declaração de variáveis, "number" e "NumBER" são consideradas 
idênticas pelo Java. 
( ) O método principal que inicia um programa Java é declarado como "public 
static void main (String [] args)”. 
( ) Os comentários no código fazem com que o computador imprima o texto 
depois das // na tela quando o programa é executado. 
A sequência correta é 
a) V, F, V, F. 
b) F, V, V, F. 
c) V, V, F, V. 
d) F, V, F, V. 
e) V, F, F, F. 
 
2-A plataforma Java disponibiliza um interpretador que traduz, em tempo de 
execução, o bytecode para instruções nativas do processador, permitindo, 
dessa forma, que uma mesma aplicação seja executada em qualquer 
plataforma computacional que possua essa implementação. Trata-se de: 
a) Java Virtual Machine. 
b) Java API 
c) JavaBeans. 
d) J2SE. 
e) JavaFX. 
 
Programação Orientada a Objetos I 
 
63 
3-Na linguagem Java 
a) A função Math.round(valor)

Outros materiais