Buscar

Programação - Coding Mobile (Java) - 2

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

Unidade II
Fundamentos da Linguagem 
Java para Android
Introdução ao 
Coding Mobile
Diretor Executivo 
DAVID LIRA STEPHEN BARROS
Gerente Editorial 
CRISTIANE SILVEIRA CESAR DE OLIVEIRA
Projeto Gráfico 
TIAGO DA ROCHA
Autoria 
LUIZ FERNANDO CORCINI
AUTORIA
Luiz Fernando Corcini
Olá. Meu nome é Luiz Fernando Corcini. Sou formado em 
Engenharia Eletrônica, com especialização em Administração de 
TI, Mestre em Educação e Novas Tecnologias e Doutorando em 
Sistemas Tutores Inteligentes. Tenho experiência técnico-profissional 
na área de desenvolvimento e gestão da produção de softwares nas 
áreas de Gerenciamento de Processos Empresariais. Uso os recursos 
disponibilizados pela Web há mais de 20 anos. Sou professor universitário 
há mais de 15 anos e já publiquei vários livros técnicos sobre assuntos 
voltados a área de informática. Sou apaixonado pelo que faço e adoro 
transmitir minha experiência de vida àqueles que estão iniciando em 
suas profissões. Por isso fui convidado pela Editora Telesapiens a integrar 
seu elenco de autores independentes. Estou muito feliz em poder ajudar 
você nesta fase de muito estudo e trabalho. Conte comigo!
ICONOGRÁFICOS
Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez 
que:
OBJETIVO:
para o início do 
desenvolvimento 
de uma nova 
competência;
DEFINIÇÃO:
houver necessidade 
de apresentar um 
novo conceito;
NOTA:
quando necessárias 
observações ou 
complementações 
para o seu 
conhecimento;
IMPORTANTE:
as observações 
escritas tiveram que 
ser priorizadas para 
você;
EXPLICANDO 
MELHOR: 
algo precisa ser 
melhor explicado ou 
detalhado;
VOCÊ SABIA?
curiosidades e 
indagações lúdicas 
sobre o tema em 
estudo, se forem 
necessárias;
SAIBA MAIS: 
textos, referências 
bibliográficas 
e links para 
aprofundamento do 
seu conhecimento;
REFLITA:
se houver a 
necessidade de 
chamar a atenção 
sobre algo a ser 
refletido ou discutido;
ACESSE: 
se for preciso acessar 
um ou mais sites 
para fazer download, 
assistir vídeos, ler 
textos, ouvir podcast;
RESUMINDO:
quando for preciso 
fazer um resumo 
acumulativo das 
últimas abordagens;
ATIVIDADES: 
quando alguma 
atividade de 
autoaprendizagem 
for aplicada;
TESTANDO:
quando uma 
competência for 
concluída e questões 
forem explicadas;
SUMÁRIO
Java Básico .................................................................................................... 12
O Primeiro Projeto Java ............................................................................................................... 12
A Primeira Classe Java ............................................................................................. 15
Estrutura Básica da Linguagem Java .............................................................................. 20
Introdução ........................................................................................................................ 20
Estrutura de um Programa Java ........................................................................ 21
Identificadores ................................................................................................................22
Palavras Reservadas ..................................................................................................23
Variáveis ..............................................................................................................................24
Tipos de Dados Simples .........................................................................................25
Tipos de Dados Compostos .................................................................................28
Conversão de Tipos ................................................................................28
Escopo de Variável ..................................................................................................... 30
Modificadores de Acesso ....................................................................................... 31
Atributos Públicos ....................................................................................32
Atributos Privados ....................................................................................32
Operadores .......................................................................................................................35
Operadores Aritméticos .......................................................................35
Operadores de Atribuição ..................................................................35
Operadores de Incremento e Decremento ...........................37
Operadores Relacionais ......................................................................................... 38
Operadores Booleanos ........................................................................................... 38
Operador Ternário .................................................................................... 39
Estrutura de Controle de Seleção e de Repetição .......................40
Estrutura de Controle de Seleção ..................................................................................... 40
Comando if ....................................................................................................................... 40
Comando if – else ........................................................................................................ 41
Condições mais elaboradas ..............................................................42
O comando swicth ......................................................................................................43
Estrutura de Controle de Repetição..................................................................................45
while.......................................................................................................................................45
for .............................................................................................................................................47
Controlando Loops .................................................................................................... 48
O comando break .................................................................................... 48
O comando continue ............................................................................. 49
Classes em Java ...........................................................................................50
Introdução ............................................................................................................................................ 50
Métodos ................................................................................................................................................ 50
Classes ....................................................................................................................................................53
Polimormismo, Interface e Classes Abstratas ................................62
Polimorfismo .......................................................................................................................................62
Interface ................................................................................................................................................ 65
Declarando uma Interface ....................................................................................66
Classes Abstratas ........................................................................................................................... 67
9
UNIDADE
02
Introdução ao Coding Mobile
10
INTRODUÇÃO
Seja bem-vindo (a) à Unidade 2 – Fundamentos da Linguagem Java 
para Android - da disciplina de Introdução ao Coding (Mobile). Nesta 
unidade trataremos os conceitos fundamentais de programação Java 
necessários para que você possa desenvolver aplicativos nesta linguagem. 
É de se referir que, apesar do foco da disciplina ser programação para 
dispositivosmóveis, os conceitos apresentados nesta unidade serão 
úteis mesmo para programação Java em qualquer ambiente. O conteúdo 
desta Unidade está dividido em quatro módulos. No primeiro módulo 
apresentamos a sintaxe das instruções básicas do Java para manipulação 
de variáveis e outros recursos elementares da linguagem. No módulo 2 
estudaremos as estruturas de controle e repetição de fluxo. No módulo 
3 aprenderemos como trabalhar com classes em Java e, finalmente, 
no módulo 4, trabalharemos conceitos fundamentais da programação 
orientada à objeto, como polimorfismo, classes abstratas e interfaces.
É claro que existe muito mais a aprender, mas o aprofundamento 
de cada um destes conhecimentos pode ser feito acessando os links 
indicados durante o texto, no tópico [Saiba Mais]. Vamos começar? 
Excelente estudo para você!
 
Introdução ao Coding Mobile
11
OBJETIVOS
Olá. Seja muito bem-vindo a nossa Fundamentos da Linguagem 
Java para Android, e o nosso objetivo é auxiliar você no desenvolvimento 
das seguintes competências profissionais até o término desta etapa de 
estudos:
1. Conhecer a sintaxe das instruções básicas do Java para manipulação 
de variáveis e outros recursos elementares da linguagem;
2. Entender as estruturas de controle e repetição de fluxo de código 
na linguagem Java;
3. Aplicar os conceitos de programação orientada a objetos na 
linguagem Java, com foco nas classes de objetos;
4. Compreender e aplicar os conceitos de polimorfismo, classes 
abstratas e interfaces na linguagem Java.
Vamos, então, rumo ao conhecimento. Bons estudos!
Introdução ao Coding Mobile
12
Java Básico
Neste primeiro módulo aprenderemos a sintaxe básica da 
linguagem de programação Java. 
RESUMINDO:
No primeiro módulo instalamos e configuramos todos 
os recursos necessários para permitir criar, em seu 
computador, o ambiente necessário para desenvolver 
projetos em Java.
Apesar do foco desta disciplina ser programação para dispositivos 
móveis, o conteúdo apresentado nesta unidade serve como base para 
programação em Linguagem Java de maneira geral. Nossa estratégia aqui 
será criar pequenos projetos e explorar e aprofundar os conhecimentos 
básicos da sintaxe da linguagem um pouco em cada um deles. Vamos 
então para nosso primeiro projeto.
O Primeiro Projeto Java
Para este primeiro projeto, abra o Eclipse (IDE Integrated 
Development Environment), ou seja, Ambiente de Desenvolvimento 
Integrado, e crie o seguinte “workspace”: c:\java\Projeto_01, como 
mostrado na figura abaixo.
Figura 1 – Definição do ‘Workspace’ do primeiro projeto Java.
Fonte: Autor
Introdução ao Coding Mobile
13
RESUMINDO:
O espaço de trabalho (workspace) é o local (diretório) onde 
será gravado todos os arquivos necessários para que o seu 
projeto funcione adequadamente.
Logo que você clicar no botão “Launch”, o espaço de trabalho 
será criado na pasta “c:\java\Projeto_01” e o IDE Eclipse será aberto, 
exatamente como mostrado na figura 2 (abaixo).
Repare que do lado esquerdo do IDE está o “Package Explorer” 
(marcado com o número 1) cuja função é apresentar a lista de classes, 
bibliotecas e demais arquivos (resources) que serão necessários no seu 
projeto. No centro da IDE (marcado com o número 2) é o local onde o 
código em linguagem Java será digitado.
Figura 2 – IDE Eclipse
Fonte: Autor
Clique no menu File -> New -> Project e o assistente irá criar um 
novo projeto e será apresentado, como mostra a figura 3:
Introdução ao Coding Mobile
14
Figura 3 – Criando novo Projeto Java
Fonte: Autor
Selecione a opção “Java Project”, como mostrado acima (Figura 3) e 
clique NEXT. Uma nova tela (figura 4) será apresentada.
Figura 4 – Nomeando o projeto
Fonte: Autor
Introdução ao Coding Mobile
15
Digite o nome para o seu projeto: “Exe1” e clique em FINISH. A parte 
da Ide relativa ao Package Explorer deve ficar como mostra a figura abaixo.
Figura 5 – Package Explorer do projeto Exe1
Fonte: Autor
Note que o seu projeto Exe1 foi criado e possui duas subpastas:
 • A pasta “src” é onde serão incluídas as classes desenvolvidas para 
o seu projeto. O termo “src” é a abreviação da palavra “source”, 
que significa “fonte”, isto é, dentro desta pasta serão gravadas as 
classes (código fonte) do seu projeto;
 • Dentro da pasta “JRE System Library” estão as bibliotecas de 
classes que, como descrito anteriormente, permitem que a sua 
máquina rode código Java, no sistema operacional escolhido.
Como você pode reparar, a pasta “src” está vazia, ou seja, seu projeto 
está vazio. Nosso próximo passo é criar a primeira classe deste projeto.
A Primeira Classe Java
Agora siga os seguintes passos:
 • Clique no menu File -> New -> Package, para criar o primeiro pacote (pasta) 
onde iremos inserir a primeira classe no seu projeto. Digite: “exercicio1” 
para o nome do pacote, como mostra a figura abaixo (Figura 6):
Figura 6 – Criando o primeiro pacote para o projeto
Fonte: Autor
Introdução ao Coding Mobile
16
 ...Clique FINISH e seu projeto deve ficar como o mostrado na figura 
abaixo (Figura 7):
Figura 7 – Novo pacote criado.
Fonte: Autor
Dentro do pacote “exercicio1”, ficarão as classes que iremos criar. 
Então, vamos criar nossa primeira classe, finalmente.
 • Clique no menu File -> New -> Class, para criar a primeira classe 
do nosso projeto, como mostra a figura abaixo (Figura 8):
Figura 8 – Criando a primeira classe
Fonte: Autor
Note que o Pacote (Package) já está definido como “exercicio1”, pois 
é dentro dele que a classe será criada. Agora siga os seguintes passos:
 • Digite o nome para a classe: “Principal”;
 • Marque a opção: “public static void main(String[] args), como 
mostrado na figura acima;
Introdução ao Coding Mobile
17
 • Deixe o restante como está e clique FINISH.
A classe “Principal” será criada dentro do pacote “exercicio1” e o 
Eclipse deve mostrar algo parecido com a figura abaixo (Figura 9):
Figura 9 – Primeira classe criada.
Fonte: Autor
Note, na figura acima (Figura 9), que o Package Explorer, onde 
vemos a classe: “Principal.java”, dentro do pacote “exercicio1”, que está 
dentro da pasta “src” do projeto “Exe1”, como definido acima.
Ao centro vemos o conteúdo da classe “principal.java”. Esta classe 
será usada para digitar o código necessário para o nosso primeiro projeto 
em Java. A figura abaixo (Figura 10) mostra em detalhes, o conteúdo da 
classePrincipal.java”, para detalhamento.
Figura 10 – Classe Principal.java
Fonte: Autor
Introdução ao Coding Mobile
18
A linha 1 define que a classe “Principal.java” está dentro do 
pacote “exercicio1”;
A linha 3 inicia a declaração da classe “Principal.java”. O termo 
“public” define que a classe “Principal.java” é pública. Classes, atributos 
e métodos podem ser declarados como “public”, “protected” ou “private”. 
Veremos mais detalhes sobre estes modificadores de acesso mais nas 
próximas páginas, neste material.
IMPORTANTE:
Uma classe deve sempre iniciar com abre chaves “{“ e 
finalizar com fecha chaves “}”. Mais detalhes sobre as classes 
em Java serão vistos nas próximas páginas neste material.
Nas linhas 5 a 9 é apresentado um bloco de comentário. Sempre 
que for necessário fazer um comentário em bloco sobre o código, 
deve-se utilizar o comando “/*” para iniciar o bloco de comentário e “*/” 
para finalizá-lo. Digite seu nome e a data de hoje dentro do bloco de 
comentário. É boa prática descrever qual a função da classe que está a 
ser implementada. 
Alguns programadores iniciantes concluem que inserir comentários 
dentro do código Java é perda de tempo, porém, programadores 
profissionais utilizam este recurso, pois ele facilita a leitura do código, e 
em caso de alteração ou atualização, principalmente quando o código 
que se precisa alterar ou corrigir foi feito por outro programador. 
Nas linhas 10 a 13 está declarado o método “main”. Este é um 
método especial da classe. Ele sempre será o primeiro método que será 
executadonum programa Java, isto é, ele serve como ponto de partida 
para a execução do projeto. Da mesma forma que as classes, cada método 
declarado deve sempre iniciar com abre chaves “{“ e será finalizado com 
fecha chaves “}”;
Note que não existe nenhum código dentro dele. Apenas um 
comentário em linha. Os comentários em linha sempre são iniciados com 
o comando “//”;
Introdução ao Coding Mobile
19
Digite o seguinte código dentro do método main:
Figura 11 – primeiro código em Java.
Fonte: Autor
Na figura acima (Figura 11), o comando: “System.out.println(...); ” é 
responsável por mostrar o texto que está entre parênteses. Neste caso: 
“Meu primeiro código Java”, no console do IDE;
Para executar o programa Java clique no botão “Run”, mostrado na 
“Figura 11”.
O programa Java deve ser compilado, gerando “bytecodes” e 
interpretado pela JVM, gerando o resultado no Console, como mostrado 
na figura abaixo (Figura 12):
Figura 12 – Resultado da execução do primeiro projeto java.
Fonte: Autor
Se você conseguiu o mesmo resultado que foi apresentado na 
figura acima, parabéns! O primeiro passo está dado! 
Até o momento não estamos trabalhando com um projeto Java-
Android, mas sim com um projeto Java simples (desktop), pois o objetivo 
desta Unidade 2 é apresentar a linguagem Java, para que você possa 
implementar projetos em dispositivos móveis na próxima unidade.
Introdução ao Coding Mobile
20
IMPORTANTE:
A Linguagem Java diferencia letras maiúsculas de letras 
minúsculas. Preste atenção em como você declara e usa 
as variáveis em seu programa, assim evita perder tempo.
Estrutura Básica da Linguagem Java
Introdução
A linguagem de programação Java é concorrente, baseada 
em classes, orientada a objetos e de propósito geral. 
(MATTOS, 2007, p. 30).
Dessa definição, podem-se relacionar alguns conceitos importantes, 
relacionados na tabela a seguir.
Tabela 1 – Conceitos básicos da Linguagem Java
Item Descrição
Programação 
Concorrente
Programação que permite fazer uso simultâneo 
(concorrente) de várias tarefas computacionais.
Programação 
Baseada em 
Classes
Programação que tem como base os protótipos 
(classes) identifi cados num determinado cenário.
Programação 
Orientada a 
Objetos
Programação que utiliza as potencialidades 
da orientação a objetos, tais como herança, 
polimorfi smo, encapsulamento, entre outros
Linguagem 
de Propósito 
Geral
Linguagem que pode ser utilizada para 
implementar uma solução para qualquer cenário.
Introdução ao Coding Mobile
21
Estrutura de um Programa Java
Para o desenvolvimento dos exercícios desse material será adotada 
a seguinte estrutura para um programa Java básico:
 • Projeto: Todo programa Java deve fazer parte de um projeto;
 • Pacote: Cada projeto deve ter um ou mais pacotes. Cada pacote 
(Package) serve para organizar/separar as classes com funções 
semelhantes;
 • Classes: Cada pacote deve ter uma ou mais classes;
 • Variáveis: Cada classe pode ter uma ou mais variáveis;
 • Atributos: Cada classe pode ter um ou mais atributos;
 • Métodos: Cada classe pode ter um ou mais métodos.
Para reforçar o entendimento do que foi exposto até o momento, 
vamos treinar. Siga os seguintes passos:
 • Abra o Projeto Exe1, criado no item anterior; 
 • Crie outro pacote, chamado: exercicio2. 
 • Dentro deste novo pacote, crie uma classe Principal, contendo o 
método MAIN.
 • Na Classe Principal, insira um comentário com o seu nome e a 
data de hoje;
 • Dentro do método “main”, digite um código para mostrar no 
console a seguinte frase: “Inicio do Exercicio2”;
Seguindo os mesmos passos apresentados no item anterior, a tela 
do Eclipse deve ficar como mostrado na figura abaixo (Figura 13):
Introdução ao Coding Mobile
22
Figura 13 – Exemplo – Implementando a Classe Java
 
Fonte: Autor
Identificadores
Dentro de um programa existem variáveis, constantes, classes, 
objetos entre outros elementos. Para cada um desses elementos é 
necessário definir um nome. Este é chamado de identificador.
Exemplo: 
int x;
x = 0;
No código acima foi definida uma variável de nome “x”, que recebe 
o valor 0 (zero). Então, para este caso, “x” é o identificador de uma variável 
do tipo int (inteiro).
Para definir o nome de identificadores é necessário seguir algumas regras:
 • Evite utilizar acentuação;
 • Letras maiúsculas são diferenciadas de letras minúsculas;
Introdução ao Coding Mobile
23
 • Não pode conter espaços em branco;
 • Deve iniciar com uma letra ou caractere “_”;
 • Pode conter número a partir do segundo caractere;
 • Não pode conter caracteres de pontuação ou especiais, tais como: 
“#”, “@”, “&”, “?”, “!”, “:”, etc;
 • Não pode ser uma palavra reservada (Veja no item 1.2.4).
A tabela abaixo exemplifica identificadores válidos e inválidos.
Tabela 2 – Exemplos de Identificadores válidos e inválidos
Identificadores Válidos Identificadores Inválidos
Num_Cliente Num Cliente
Cliente !Cliente
A10 10A
Funcionario fl oat
Na tabela acima, “float” é uma palavra reservada da linguagem Java 
para identificar um tipo de dado.
Palavras Reservadas
As palavras Reservadas são utilizadas pelo sistema como palavras 
chave e não podem ser utilizadas como identificadores. São elas:
abstract Default if private this
boolean Do implements protected throw
break Double import public throws
byte Else instanceof return transient
case Extends int short try
goto continue new for Const
while Switch native fl oat Class
catch Final interface Static void
char Finally long super volatile
package synchronized strictfp
Você não precisa decorar estas palavras reservadas. Durante o 
aprendizado você perceberá quando uma delas aparecer. Mas, nunca 
Introdução ao Coding Mobile
24
utilize nenhuma dessas palavras para dar nome a variáveis, classes, 
objetos ou qualquer elemento definido pelo usuário em seu programa.
Obs: Todas são escritas em letras minúsculas. 
Variáveis
Quando um programa é desenvolvido, normalmente ele deve 
atender a uma ou mais necessidades do mundo real e para tanto ele 
precisa modelar esta realidade o mais próximo da exatidão possível. Para 
que o programa modele apropriadamente a realidade, seus elementos 
(variáveis, métodos, classes, objetos, etc.) devem estar definidos com o 
tipo adequado de dado.
Exemplo: Imagine que existe a necessidade de montar um programa 
para somar dois números. Uma análise rápida permite perceber que é 
necessário definir três variáveis: uma para o primeiro número, outra para 
o segundo número e uma terceira variável para armazenar a soma dos 
dois primeiros números. Então, no programa Java, devem ser definidas 
três variáveis, mas, elas precisam ter seus tipos também definidos, para 
que o programa se assemelhe o máximo da realidade em questão. Estas 
variáveis não podem ser do tipo texto, pois não se pode somar textos. 
Também não podem ser do tipo inteiro, pois, com certeza, em algum 
momento será necessário somar números com casas decimais. Então, 
essas variáveis devem ser definidas como números reais, isto é, que 
podem armazenar números positivos e negativos e com casas decimais, 
se necessário. A figura abaixo (Figura 14) mostra o segmento de código 
para executar a soma em questão.
Figura 14 – bloco de código para somar dois números.
Fonte: Autor
Como mostra o exemplo acima, cada variável definida num 
programa Java será armazenada num local da memória e deverá estar 
associada a um tipo de dado, para seu correto uso. A linguagem Java 
Introdução ao Coding Mobile
25
permite a definição de dois tipos básicos de dados para as variáveis, quais 
sejam: Simples e Composto. Vamos a eles.
Tipos de Dados Simples
São dados que não podem ser divididos em tipos primitivos. São eles:
 • INTEIROS
Nome Descrição Tamanho
byte Armazena valores entre -128 e +127 08 bits
short Armazena valores entre -32.768 e +32.767 16 bits
int Armazena valores entre -2.147.483.648 e 
+2.147.483.647
32 bits
long Armazena valores entre 
-9.223.372.036.854.775.808e 
+9.223.372.036.854.775.807
64 bits
 • PONTO FLUTUANTE
Nome Descrição Tamanho
fl oat Armazena valores com precisão de 6 
dígitos depois da vírgula.
32 bits
double Armazena valores com precisão de 14 
dígitos depois da vírgula.
64 bits
 • BOOLEANO
Nome Descrição Valores
bool Armazena os valores lógicos true e false
 • CARACTERE
Nome Descrição Tamanho
char Armazena um único caractere 16 bits
Introdução ao Coding Mobile
26
Para se definir uma variável com um tipo de dados simples use a 
seguinte sintaxe:
<nome do tipo> <nome da variável>;
Figura 15 – Declaração de valoração de variáveis de tipos de dados simples.
Fonte: Autor
Pode-se definir mais de uma variável do mesmo tipo, da seguinte maneira:
Figura 16 – Declaração de variáveis do mesmo tipo.
Fonte: Autor
Pode-se também definir um valor inicial para a variável no momento 
em que ela é declarada, por exemplo:
Figura 17 – Declaração e valoração de variáveis.
Fonte: Autor
Imagine que precisamos desenvolver um programa que faça a 
soma de dois números inteiros e apresente o resultado no console. Para 
resolver esta questão, devemos seguir os seguintes passos:
Introdução ao Coding Mobile
27
 • Para o projeto Exe1, no pacote exercicio2;
 • Dentro do método main, defina três variáveis do tipo inteiro, com 
os seguintes nomes: Num1, Num2 e Result.
 • Atribua valores inteiros as variáveis Num1 e Num2 e realize a 
operação de soma das duas, armazenando o resultado na variável 
“Result”;
 • Mostre o seguinte resultado no console: “O resultado da soma é: 
...”. No lugar dos três pontos deve estar o valor armazenado em 
Result.
Figura 18 – Exemplo de código para somar dois números inteiros.
Fonte: Autor
Melhorando o código: Com a ajuda de comentários, pode-se facilitar 
a compreensão do código acima, da seguinte maneira:
Figura 19 – O mesmo código da figura 18 com a inserção de comentários.
Fonte: Autor
Repare como fica muito mais fácil de ler o código na figura 19, do que 
na figura 18. Agora, salve o projeto e execute-o. O resultado apresentado 
no console deve ser o seguinte:
Introdução ao Coding Mobile
28
Figura 20 – resultado da execução do código da figura 19.
Fonte: Autor
É importante notar que a atividade acima faz apenas a soma de 
números inteiros. Caso seja colocado um valor não inteiro para algumas 
das variáveis, um erro será gerado, mostrando que o tipo de variável 
definido (int) não suporta um valor que não seja inteiro.
Tipos de Dados Compostos
Dados Compostos, são tipos de dados que não estejam entre 
os oito tipos primitivos (simples) de dados. Todos os tipos compostos 
são classes. As variáveis do tipo composto podem armazenar um dos 
seguintes valores:
 • Uma referência nula: “null”;
 • Uma referência para qualquer objeto cuja classe seja compatível 
com o tipo da variável.
Armazenar uma referência para qualquer objeto significa que a 
variável não armazena o valor que é atribuído a ela, mas é um “ponteiro” 
que aponta para o endereço onde está aquela instância de classe (objeto) 
e este endereço possui o valor desejado. Os tipos “String” e “Arrays” são os 
tipos de dados compostos mais comuns.
Os objetos definidos pelo usuário também são do tipo referência. 
Veremos estes conceitos com mais detalhes no decorrer deste material.
Conversão de Tipos
Durante o desenvolvimento do programa pode haver necessidade 
de trocar (mudar) o tipo de dado de uma variável para outro tipo. Esta 
troca é chamada de “conversão de tipos” ou “casting”, em inglês, e tem a 
seguinte sintaxe:
Introdução ao Coding Mobile
29
(<tipo final>) <identificador>
ou
(<tipo final>) <expressão>
Neste exemplo, a variável “x” é do tipo inteiro e possui como 
conteúdo o valor 10. Declara-se então uma variável “b”, do tipo byte e faz-
se uma conversão de tipo (casting) para atribuir o conteúdo da variável “x” 
para a variável “b”.
int x = 10;
byte b;
b = (byte) x;
Exemplo utilizando expressão:
int x, y;
x = 10; y = 6;
byte b;
b = (byte) x + y;
Algumas conversões podem causar perda de informação. Isto 
acontece quando se quer, por exemplo, converter uma variável do tipo 
“double” para “int”, como mostrado abaixo:
double PI = 3.141642;
int i;
i = (int) PI;
Imagine este cenário: Precisamos montar um bloco de código 
que declare uma variável do tipo “double” com valor igual a 12,34 e outra 
variável do tipo int. Por um motivo qualquer, é necessário fazer a atribuição 
do valor da variável do tipo “double” para a variável do tipo “int”, usando 
conversão de tipos e é necessário apresentar o resultado no console. Para 
resolver este problema, crie um novo pacote no projeto Exe1, chamado 
de exercicio3 e, dentro deste pacote, crie uma nova classe chamada 
Introdução ao Coding Mobile
30
Conversao_de_tipos. Não esqueça que a classe precisa conter o método 
“main”. O código seria mais ou menos assim:
Figura 21 – Exemplo de conversão de tipos
Fonte: Autor
Repare que o valor 12,34 poderia ser definido como “float” e não 
como “double”, porem o java não aceita a atribuição de valores do tipo 
“float” em variáveis. Pesquise por que isso acontece.
Salve a classe e execute-a. O resultado apresentado deve ser o 
número “12”.
Perceba que a conversão de tipo “double” para “int” teve como 
consequência a perda de informação! 
Escopo de Variável
Segundo o dicionário Priberiam1, “escopo” significa o “limite ou 
abrangência de uma operação”. Sendo assim, quando se trata de escopo 
de variáveis em um código Java, é necessário perceber que uma variável 
pode não ser válida em todo o programa, mas sim, apenas dentro de 
uma classe ou de método ou ainda que a variável pode ser válida apenas 
dentro de um bloco de código dentro de um método. É importante 
destacar também que uma variável declarada em Java deve estar numa 
das três categorias apresentadas na tabela abaixo:
Introdução ao Coding Mobile
31
Categoria Descrição
Atributo Quando a variável é declarada como atributo de 
uma classe. Também são chamadas de variáveis 
de instância. O conteúdo de um atributo é válido 
(escopo) apenas dentro daquela instância de classe;
Local Quando a variável é declarada dentro de um 
método ou dentro de um bloco de código defi nido 
dentro de um método. O conteúdo de uma variável 
Local é válido (escopo) dentro do método ou dentro 
do bloco de código ao qual pertence;
De Classe Quando a variável tem seu valor associado à própria 
classe, isto é, seu valor é considerado (escopo) em 
todas as instâncias daquela classe. As variáveis de 
classe são defi nidas utilizando a palavra-chave static;
O código abaixo mostra a declaração de variáveis nas categorias 
apresentadas na tabela 4.
Figura 22 – Exemplo de declaração de categorias de variáveis.
Fonte: Autor
Modificadores de Acesso
Relativamente às variáveis que são declaradas como (categoria) Atributo: 
De maneira geral, podem ser definidas como atributos públicos 
(public), atributos privados (private) ou atributos protegidos (protected). 
Um atributo declarado como público pode ser acessado diretamente 
por outras classes que instanciarem a classe que possui este tipo de 
atributo. Isto não ocorre para o caso de atributos privados, que não ficam 
acessíveis. Já os atributos declarados como protegidos só poderão ser 
acessados por sub-classes e/ou classes que estejam no mesmo pacote.
Introdução ao Coding Mobile
32
Atributos Públicos
Atributos do tipo “public” podem ser acessados por todas as classes.
Para verificar esta afirmação, crie um novo pacote, dentro do projeto 
Exe1, chamado de exercicio4. Dentro deste pacote, crie uma classe 
chamada Mod_Publico (que não deve conter o método “main”). O código 
deve ser como o apresentado na figura abaixo:
Figura 23 – Exemplo de Classe com atributo do tipo público.
Fonte: Autor
Crie no mesmo pacote uma outra classe, chamada “Principal” ( que 
deve conter o método “main”). O código deve ser o mostrado na figura 
abaixo:
Figura 24 - Exemplo de acessoà atributo do tipo público
Fonte: Autor
Repare que no exemplo acima o atributo da classe Mod_publico 
pode ser acessado diretamente, bastando para isso instanciar a classe.
Atributos Privados
Atributos do tipo “private” não pode ser acessado diretamente por 
todas as classes. 
Introdução ao Coding Mobile
33
Para verificar esta afirmação, siga os seguintes passos: (1) dentro do 
pacote exercicio4, crie uma classe chamada Mod_Privado (que não deve 
conter o método “main”). O código deve ser como o apresentado na figura 
abaixo:
Figura 25 – Exemplo de Classe com atributo do tipo privado.
Fonte: Autor
(2) Na classe “Principal”, criada no exemplo anterior, modifique o 
código para que fique como mostrado na figura a seguir:
Figura 26 - Exemplo de acesso à atributo do tipo público e outro privado.
Fonte: Autor
IMPORTANTE:
No exemplo acima, não foi possível acessar o atributo do 
tipo privado. Para acessar este tipo de atributo é necessário 
utilizar os métodos “getters” e “setters”.
 • Getters: métodos que permitem capturar os valores dos atributos 
privados;
Introdução ao Coding Mobile
34
 • Setters: métodos que permitem definir os valores para os atributos 
privados.
Neste exemplo vamos criar uma nova classe que possua atributos 
do tipo privado, mas que também possuam metodos “getters” e “setters.” 
Sendo assim, no mesmo pacote, crie uma nova classe, chamada de 
“Mod_Privado2”, com o seguinte conteúdo:
Figura 27 – Classes com atributos privados e métodos getters e setters.
Fonte: Autor
Modifique o conteúdo da classe principal, para ficar como mostrado 
na figura abaixo (Figura28):
Figura 28 - Exemplo de acesso à atributo do tipo privado com métodos getters e setters
Fonte: Autor
Introdução ao Coding Mobile
35
Operadores
A linguagem Java disponibiliza seis tipos de operadores. Neste tópico 
iremos apresentar, descrever e verificar como utilizar cada um deles.
Operadores Aritméticos
Operador Descrição
+ Soma
- Subtração
* Multiplicação
/ Divisão
A regra de precedência dos operadores aritméticos obedece a 
regra (de precedência) definida pela matemática básica, com relação a 
operações aritméticas.
Operadores de Atribuição
Para a tabela abaixo, considere que a variável x tenha sido declarada 
com valor inicial igual a 12.
Operador Exemplo de 
código
Explicação 
da Operação
Valor final 
de x
= x = 4; x = 4; 4
+= x += 4; x = x + 4; 16
–= x –= 4; x = x – 4; 8
*= x *= 4; x = x * 4; 48
/= x /= 4; x = x / 4; 3
%= x %= 4; x = x % 4; 0
Crie um novo pacote no projeto Exe1, chamado de exercicio5. 
Dentro deste pacote, criar uma nova classe clamada Operadores1 (que 
deve conter o método “main”). Dentro do método “main”, siga as seguintes 
Introdução ao Coding Mobile
36
instruções (sem utilizar operadores de atribuição): (1) Declare uma variável 
do tipo inteiro; (2) Atribua o valor 10 a esta variável; (3) Some 3 e armazene o 
resultado nela mesma; (4) Subtraia 1 e armazene o resultado nela mesma; 
(5) Divida por 2 e armazene o resultado nela mesma; (6) Multiplique por 7 
e armazene o resultado nela mesma; (7) Mostre o resultado no console.
Caso você tenha seguido exatamente como informado acima, o seu 
código deve estar igual ao mostrado na figura abaixo:
Figura 29 – Exemplo de código com uso de operadores aritméticos
Fonte: Autor
O valor apresentado no console deve ser: 42.
Crie uma nova classe, chamada Operadores2 que realize os 
mesmos passos que o exemplo anterior, só que desta vez, a utilizar 
apenas operadores de atribuição. Seu código deve ficar assim:
Figura 30 – Exemplo de código com uso de operadores de atribuição.
Fonte: Autor
Introdução ao Coding Mobile
37
O valor apresentado no console deve ser: 42.
Operadores de Incremento e Decremento
Para a tabela abaixo, considere que a variável “x” tenha sido 
declarada com o valor inicial igual a 2 e a variável “y” tenha sido declarada 
com valor inicial igual a 0.
Operador Exemplo de 
código
Explicação 
da Operação
Valor final de 
x e y
Pré-
incremento ++
y = ++x; Primeiro 
incrementa e 
depois atribui.
x = 3 
y = 3 x += 4; x = x + 4; 16
Pós-
incremento
x –= 4; x = x – 4; 8
++ y = x++; Primeiro atribui 
e depois 
incrementa.
x = 3 
y = 2 x /= 4; x = x / 4; 3
Pré-
decremento 
--
y = --x; Primeiro 
decrementa e 
depois atribui.
x = 1 
y = 1
Pós-
decremento
--
y = x--; Primeiro atribui 
e depois 
decrementa.
x = 1 
y = 2
Crie uma nova classe, chamada Operadores3, e siga os seguintes 
passos: (1) Declare duas variáveis (a e b) do tipo inteiro; (2) Atribua o valor 10 
para a variável a e 0 para a variável b; (3) Mostre o valor das duas variáveis 
no console; (4) Faça um pré-incremento na variável b e atribua o valor de 
b em a; (5) Mostre o valor das duas variáveis no console; (6) Faça um pós-
decremento na variável b e atribua o valor de b em a; (7) Mostre o valor das 
duas variáveis no console. Seu código deve ficar assim:
Introdução ao Coding Mobile
38
Figura 31 – Exemplo de uso de operadores de incremento e decremento.
Fonte: Autor
Operadores Relacionais
Para a tabela abaixo considere que as variáveis “x” e “y” foram 
declaradas com valores iniciais iguais a 13 e 5, respectivamente.
Operador Descrição Exemplo Resultado
== Igual (x == y) Falso
!= Diferente (x != y) Verdadeiro
< Menor que (x < y) Falso
> Maior que (x > y) Verdadeiro
<= Menor ou igual a (x <= y) Falso
>= Maior ou igual a (x >= y) Verdadeiro
Operadores Booleanos
Para a tabela abaixo considere que as variáveis “x” e “y” foram 
declaradas com valores iniciais iguais a 13 e 5, respectivamente.
Operador Descrição Exemplo Resultado
&& E (x == 13) && (y 
> 5)
Falso
|| OU (x == 13) || (y > 5) Verdadeiro
! Não !(y > 5) Verdadeiro
Introdução ao Coding Mobile
39
Operador Ternário
O operador ternário tem as mesmas características do comando if-
else (que veremos mais adiante). Sua sintaxe é a seguinte:
<variável> = <condição>?<caso true>:<caso false>;
Imagine o seguinte bloco de código:
int num1 = 11;
 int num2 = 12;
 int num3;
num1 = (num1 > num2)?num1:num2;
Se o resultado da condição “(num1>num2)” for verdadeiro, a variável 
num3 recebe o valor de num1, caso contrário, num3 recebe o valor de 
num2.
Introdução ao Coding Mobile
40
Estrutura de Controle de Seleção e de Repetição
INTRODUÇÃO:
Toda linguagem de programação precisa ter sua estrutura 
de controle, que permite ao programador desenvolver e 
controlar como o programa deve responder a determinadas 
condições, quando em execução.
Estrutura de Controle de Seleção
Comando if
O controle de seleção “if” (que significa SE) permite ao programador 
definir se um bloco de código será ou não executado, dependendo do 
resultado de um teste, cujo resultado pode ser verdadeiro ou falso. Caso 
o resultado do teste seja verdadeiro, o bloco de código é executado, caso 
contrário, o bloco de código não será executado.
A sintaxe do “if” é a seguinte:
if (teste)
{
 Bloco de Código;
}
O teste é uma condição Booleana: isto é, qualquer expressão que 
retorne como resultado os valores “true” ou “false”.
int idade = 15;
if (idade <18)
{
 System.out.println(“Não pode entrar”);
}
Introdução ao Coding Mobile
41
No exemplo acima, o teste é (idade < 18). A linha de código “if (idade 
< 18)” deve ser lida da seguinte maneira: “Se o valor da variável ‘idade’ 
for menor que 18”. Caso o resultado deste teste seja verdadeiro, isto é, 
“true”, o bloco de código logo abaixo do teste deve ser executado. Para 
o caso do exemplo acima, se o valor da variável idade for menor que 18, 
o programa deve mostrar no console a seguinte mensagem: “Não pode 
entrar”. O bloco de código que deve ser executado está limitado pelo abre 
chaves “{“ e pelo fecha chaves “}”.
Comando if – else
Como foi visto no item anterior, o comando “if” permite que um 
bloco de código seja executado se a condição apresentada no teste for 
verdadeira. Porém, algumas vezes é necessário definir o queo programa 
deve fazer caso o resultado da condição apresentada no teste for falsa. 
Para estes casos, utiliza-se o comando “else” (que significa SENÃO). 
O comando “else” nunca pode ser utilizado sozinho, mas sempre como 
complemento do comando “if”. A sintaxe para o comando “if-else” é a seguinte:
if (condição)
{
Bloco de código – deve ser executado se a condição for 
verdadeira.
}
else
{
 Bloco de código – deve ser executado se a condição for falsa.
}
Introdução ao Coding Mobile
42
EXEMPLO
int idade = 15;
if (idade <18)
{
 System.out.println(“Não pode entrar”);
}
else
{
 System.out.println(“Pode entrar”);
}
Como pode ser observado no exemplo acima, o programa pode 
apresentar dois tipos de mensagens. Caso a condição resultante do teste 
(idade < 18) seja verdadeira (true), o programa vai apresentar a mensagem: 
“Não pode entrar”, mas caso o resultado da condição (idade < 18) for falsa 
(false), a mensagem apresentada é: “Pode entrar”.
Condições mais elaboradas
As condições (testes) utilizados no comando “if” podem ser bem 
mais elaborados que os exemplos apresentados acima. Pode-se, por 
exemplo, concatenar expressões booleanas por meio de operadores 
lógicos, como mostrado no exemplo abaixo.
int idade = 15;
boolean amigoDoDono = true;
if ((idade <18) && (amigoDoDono) == false)
{ 
 System.out.println(“Não pode entrar”); 
}
else
{ 
 System.out.println(“Pode entrar”); 
}
Introdução ao Coding Mobile
43
IMPORTANTE:
Repare que o operador “=” é de atribuição e o operador “==” 
é de comparação.
No exemplo acima, o teste a ser feito é formado por duas condições 
(expressões booleanas). A primeira é a verificação do valor da variável 
idade. A segunda é a verificação da variável amigoDoDono. Resumindo, 
os resultados das duas expressões devem ser verdadeiros para que a 
mensagem apresentada seja: “Não pode entrar”. Caso o resultado de uma 
das expressões seja falsa, a mensagem apresentada será: “Pode entrar”.
O comando swicth
O comando “switch” pode substituir o comando “if-else” para os 
casos em que existem muitas escolhas (seleções) a serem feitas, isto é, 
utilize “if-else” quando precisar testar diferentes variáveis e utilize “swicth” 
quando precisar comparar uma variável com diversos valores. A sintaxe do 
comando “swicth” é a seguinte:
Introdução ao Coding Mobile
44
swicth (<variável>)
{
case valor1:
bloco de código que deve ser executado se a variável tiver valor 
= valor1;
break;
case valor2:
bloco de código que deve ser executado se a variável tiver valor 
= valor1;
break;
case valorN:
bloco de código que deve ser executado se a variável tiver valor 
= valorN;
break;
default:
bloco de código que deve se a variável não encontrar nenhuma 
correspondência nos cases acima;
 break;
}
IMPORTANTE:
Os cases não podem testar valores booleanos, por isso, a 
Linguagem Java não vai conseguir entender o que deve ser 
deito caso seja digitada a seguinte linha de comando: “case 
valor1 >10:”.
Introdução ao Coding Mobile
45
int i = 3;
swicth (i)
{
case 1:
 System.out.println(“i é igual a 1”);
 break;
case 2:
 System.out.println(“i é igual a 2”);
 break;
default:
 System.out.println(“i é diferente de 1 e diferente de 2”);
 break;
}
Estrutura de Controle de Repetição
while
O comando “while” (que significa ENQUANTO) permite que um 
bloco de código seja repetido um número definido de vezes durante a 
execução do programa. Para controlar quantas vezes o bloco de código 
deve ser repetido, utiliza-se uma condição (teste). Por definição, enquanto 
o resultado do teste for verdadeiro, o bloco de código deve ter sua 
execução repetida.
A sintaxe para o comando “while” é a seguinte:
While (condição)
{
Bloco de código que deve ser executado enquanto a condição for 
verdadeira.
}
Introdução ao Coding Mobile
46
EXEMPLO
int idade = 15;
while (idade <18)
{
 System.out.println(idade);
 idade = idade + 1;
}
No exemplo acima, o bloco de código será repetido até que o valor 
da variável “idade” se torne igual ou maior que 18, por isso, dentro do bloco 
de repetição deve ser colocado uma linha de comando que altere o valor 
da variável que está sendo testada. Caso a linha de comando “idade = 
idade + 1;” seja retirada do programa, o valor da variável idade não irá se 
alterar e o programa executará o bloco de código indefinidamente, o que 
fará com que o programa trave (entre em loop eterno).
Observando o código do exemplo, verifica-se que primeiro é 
definido o valor da variável idade como sendo o valor 15. Depois faz-
se um teste, que deve ser lido da seguinte maneira: “Enquanto o valor 
da variável idade for menor que 18, execute o bloco de código”. Como 
o resultado deste teste é verdadeiro, o bloco de código é executado e 
o número 15 deve aparecer no console. A linha seguinte faz com que o 
valor da variável idade passe de 15 para 16. O bloco de código acaba e 
o teste é feito novamente. Como 16 ainda é menor que 18, o bloco de 
código é executado mais uma vez. O número 16 é mostrado no console e 
a variável idade tem seu valor alterado para 17. O bloco de código acaba e 
o teste é feito novamente. Como a condição ainda é verdadeira, o número 
17 é apresentado no console e o valor da variável idade passa para 18. O 
bloco de código acaba e o teste é feito mais uma vez. Como dessa vez o 
resultado do teste é falso, o bloco de código não é mais executado e o 
programa segue para as linhas de código que por ventura existam abaixo 
deste bloco de código.
Introdução ao Coding Mobile
47
for
O comando “for” e outro comando de repetição (loop) que permite 
repetir um determinado bloco de código enquanto a condição for 
verdadeira. Porém, o “for” trata a condição de maneira um pouco diferente 
do comando “while”, apresentado acima. A sintaxe do comando “for” é a 
seguinte:
for (inicialização; condição; incremento)
{
Bloco de código que deve ser executado enquanto a condição for 
verdadeira.
}
Como pode ser notado pela sintaxe acima, o comando “for” possui 
três parâmetros:
inicialização: permite ao programador declarar e inicializar uma 
variável;
condição: permite ao programador definir a condição que deve ser 
testada a cada repetição (loop);
incremento: permite ao programador definir qual deve ser o 
incremento que a variável deve receber em cada repetição (loop);
for (int i = 0; i < 10 ; i++) 
{
 System.out.println(i);
}
No exemplo acima, o programa irá apresentar no console os 
números de 0 (zero) a 9 (nove).
Introdução ao Coding Mobile
48
Controlando Loops
O comando break
Como foi verificado nos itens acima, os laços de repetição (loops) 
precisam de condições para serem executados. Porém, existe casos em 
que se faz necessário parar uma repetição se determinada condição for 
encontrada. Para resolver este problema, utiliza-se o comando “break”.
int x, y;
x = 0; y = 50;
 for (int i = x; i < y; i ++)
 {
 if (i%19 == 0)
 {
System.out.println(“Achei um número divisível por 19 entre 
x e y”);
break;
 }
 }
No exemplo acima, o programa quer localizar o primeiro número, 
entre 0 e 49 que seja divisível por 19. Repare que se o comando “break” 
for retirado do código, o programa vai apresentar no console todos os 
números entre 0 e 49 que sejam divisíveis por 19, mas não é isso que se 
quer. O que se quer é apenas o primeiro. Por isso, uma vez que o primeiro 
número divisível por 19 foi encontrado, utiliza-se o comando “break” 
para abortar a execução do laço de repetição (for), pois ele não é mais 
necessário.
Introdução ao Coding Mobile
49
O comando continue
Em outros casos, faz-se necessário permitir que o laço de repetição 
não execute o loop para uma determinada condição. Nestes casos, utiliza-
se o comando continue.
for (int i = 0; i < 100 ; i ++)
{
if ( i > 50 && i < 60)
{
 continue;
}
System.out.println(i);}
No exemplo acima, o programa vai mostrar os números de 0 a 50 e 
de 60 a 99, pois quando os valores da variável i forem maiores que 50 e 
menores que 60, o “loop” será ignorado.
No desenvolvimento de um programa mais complexo ou 
aprimorado, normalmente utiliza-se não apenas um tipo de estrutura de 
controle, mas sim uma mescla das várias descritas acima. É muito comum 
utilizar uma estrutura de controle de seleção (if) dentro de uma estrutura 
de controle de repetição (for ou while).
IMPORTANTE:
Toda a base da programação está no entendimento dos 
conceitos de estrutura de controle apresentados nesta 
unidade. É praticamente impossível construir qualquer 
bloco de código significativo sem dominar esses conceitos. 
Por isso, para que você realmente aprenda a programar 
não passe para o próximo módulo sem ter entendido muito 
bem os conceitos apresentados aqui.
Introdução ao Coding Mobile
50
Classes em Java
Introdução
Como foi estudado na disciplina de Introdução ao Coding Web, 
uma classe é composta por Nome, Lista de Atributos e Lista de Métodos. 
Os atributos, como visto anteriormente neste material, são as variáveis 
de Instância. Os métodos e, por fim, as classes propriamente ditas, serão 
tratadas neste tópico.
Métodos
Um Método de uma Classe define o comportamento que a classe 
deve ter quando este Método for chamado numa mensagem.
Quando uma Classe recebe uma mensagem, esta mensagem 
normalmente informa qual método ela deve executar. A Classe, então, 
redireciona a execução do programa para o código que está contido 
dentro do método chamado. Quando o bloco de código daquele método 
acaba, o programa retorna à execução do programa para a linha de código 
seguinte a que chamou o método.
O termo “chamar um método” é utilizado neste material para dizer 
que o código que está contido dentro daquele método deve ser executado.
Para declarar um método público em Java utilizamos a seguinte sintaxe:
public <tipo de retorno> <nome do método>
{
 Bloco de código que deve ser executado quando este método 
foi chamado.
}
Onde:(1) O termo “public” define que o método pode ser acessado 
por outras classes que instanciarem a classe que contem este método. 
Caso se queira tornar este método inacessível para outras classes, é 
necessário substituir o termo “public” por “private”; (2) O <tipo de retorno> 
Introdução ao Coding Mobile
51
informa ao programa se qual o tipo de dado que o método irá retornar 
quando for executado. Para o <tipo de retorno> pode-se utilizar qualquer 
um dos tipos primitivos ou compostos (também chamados de tipos de 
referência). Caso o método não precise ter retorno, utiliza-se o termo “void”. 
Caso o método possua algum tipo de retorno, a última linha do método 
a ser executada é o comando “return” acompanhado da variável que 
armazena o valor que deve ser retornado; (3) Para o <nome do método> 
utiliza-se qualquer identificador válido que ainda não tenha sido utilizado 
para declarar outros elementos nesta mesma classe. O nome do método 
deve sempre ser sucedido por abre e fecha parênteses “()”, caso não tenha 
parâmetros. Caso contrário os parâmetros devem ser declarados entre os 
parênteses.
Para este exemplo, crie um novo pacote, chamado de exercicio6. 
Dentro deste pacote, crie uma classe chamada de Principal (que deve 
conter o método “main”. O conteúdo desta classe deve ser a seguinte:
Figura 32 – Exemplo de chamada de método.
Fonte: Autor
Explicando o exemplo acima:
1. Quando o programa acima é executado, o primeiro método a ser 
chamado quando é o método “main” (linha 12) conforme já foi dito 
anteriormente, neste material. 
2. Dentro do método “main”, três variáveis são declaras (linhas 13 a 15) 
e têm seus tipos e valores definido. São elas: a, b e c. 
Introdução ao Coding Mobile
52
3. Na linha 16 existe uma chamada ao método soma, passando como 
parâmetros as variáveis a e b. 
4. A execução do programa passa para a linha 5, onde o método 
soma (que foi chamado na linha 16) recebe os dois parâmetros, 
como sendo “X” e “Y”. Isto quer dizer que apenas dentro do método 
soma() a variável “a” será chamada de “X” e a variável “b” será 
chamada de “Y”. 
5. O método soma() executa a operação de adição das suas duas 
variáveis e armazena o resultado na variável “resultado”. (linhas 8). 
A última linha do método soma (linha 9) faz o retorno da soma das 
variáveis (return resultado).
6. A execução do programa retorna para a linha 16, onde o resultado 
da soma é atribuído à variável c, dentro do método “main”. 
7. Na linha seguinte (linha 17) o programa executa um comando para 
mostrar no console o resultado calculado pelo método soma.
Como segundo exemplo de chamada de método, implemente na 
os métodos subtração, multiplicação e divisão para as mesmas variáveis a 
e b e teste o resultado do programa. Seu código deve ficar assim:
Introdução ao Coding Mobile
53
Figura 33 – Exemplo 2 de chamada de métodos.
Fonte: Autor Fonte: Autor
Classes
Como foi verificado anteriormente, neste material, a Programação 
Java é baseada em Classes. Isto quer dizer que toda a estrutura da 
programação Java está baseada no envio e recebimento de mensagens 
entre as classes, isto é, uma classe a chamar a outra através de métodos.
Introdução ao Coding Mobile
54
Para melhor entendimento do que seja uma classe e de como 
podemos cria-las utilizando a linguagem Java, imagine a classe 
CALCULADORA especificada na figura abaixo (Figura 34).
Figura 34 – Classe Calculadora
Calculadora
double resultado
double Soma(double X, double Y)
double Subtr(double X, double Y)
double Multipl(double X, double Y)
double Divisao(double X, double Y)
Repare que esta classe possui apenas um atributo, chamado 
‘resultado’ e possui quatro métodos, uma para cada operação matemática 
básica.
Para implementar esta classe, siga os seguintes passos:
1. Crie um novo pacote (package), chamado Calculadora e uma 
classe principal (com o método main) dentro dele. A figura abaixo 
mostra como deve ficar o Package Explorer do seu projeto.
Figura 35 – Pacote Calculadora
Fonte: Autor
Não apague os outros pacotes (exercicio1 e exercicio2), pois é 
muito interessante que você tenha um histórico da sua evolução em 
programação Java, mas nosso foco agora será o Pacote Calculadora.
2. Agora, crie uma nova classe, chamada “calc”, dentro do pacote 
Calculadora. Mas nesta classe NÃO marque a opção: “public static 
void main(String[] args)”. O Package Explorer deve ficar assim:
Introdução ao Coding Mobile
55
Figura 36 – Pacote Calculadora com duas classes
Fonte: Autor
3. Clique duas vezes sobre a classe principal.java e o Eclipse exibirá 
a seguinte tela:
Figura 37 – Classe Principal.java – com o método MAIN
Fonte: Autor
Repare que esta classe possui o método: “public static void 
main(String[ ] args)”. Como você deve ter percebido, o nome do método 
é simplesmente “main” e tem como atributo o “array” do tipo “String”, 
chamado “args”.
4. Clique duas vezes sobre a classe calc.java e o Eclipse deve mostrar 
a seguinte tela:
Figura 38 – Classe Calc – sem o método MAIN
Fonte: Autor
Repare que a classe “Calc” não deve ter o método “main”. Este 
método só deve estar presente na classe principal do pacote.
Introdução ao Coding Mobile
56
Para implementar o exemplo, o nosso trabalho consiste em traduzir 
o “desenho” representado na figura 34 (da classe calculadora) para dentro 
do código Java – classe “Calc”.
Calculadora
double resultado
double Soma(double X, double Y)
double Subtr(double X, double Y)
double Multipl(double X, double Y)
double Divisao(double X, double Y)
Vamos demonstrar passo a passo a implementação da classe calculadora:
1. Acrescente um bloco de comentário padrão e declare o atributo 
na classe “calc”.
Figura 40 – Exemplo – parte I
Fonte: Autor
2. Acrescente os métodos descritos na figura 39 na classe “calc”.
Introdução ao Coding Mobile
57
Figura 41 – Exemplo – Parte II
Fonte:Autor
Note que o código apresentado acima deve apresentar 4 indicações 
de erros. Para identificar o motivo da indicação de erro, pare o ponteiro do 
mouse sobre cada um dos erros e verifique os respectivos motivos. O erro 
deve ser como mostrado na figura abaixo (Figura 42):
Figura 42 – Identificação de erro do código.
Fonte: Autor
Introdução ao Coding Mobile
58
Note que o problema está no fato de que nós escrevemos um método 
que deveria retornar uma variável do tipo “double” e não escrevemos a 
linha de código para que este retorno seja feito. Dessa forma, a própria 
“IDE” apresenta opções para corrigir o problema: Podemos adicionar o 
comando return ou mudar o tipo de retorno do método para ‘void’, como 
se pode ver na figura 42.
Para o nosso caso, a solução mais adequada é inserir o comando 
“return”. O nosso código fica, então, como mostrado na figura abaixo:
Figura 43 – Código corrigido
Fonte: Autor
A partir de agora, o que falta é apenas inserir as funcionalidades 
para cada método.
IMPORTANTE:
Para o método divisão() é preciso verificar primeiro se 
o denominador é diferente de zero, para evitar erro do 
programa em tempo de execução, pois, como você deve 
saber, não existe resultado para a divisão por zero.
Introdução ao Coding Mobile
59
Figura 44 – métodos implementados na classe Calc
Fonte: Autor
Neste ponto do exemplo, o código da classe “calc” já está pronto, 
pois o atributo e os métodos já estão corretamente declarados e 
implementados. Resta agora implementar a classe “MAIN”, para que a 
mesma instancie a classe “Calc” faça a chamada dos métodos (envie as 
mensagens para a classe).
Para que a classe “MAIN” envie uma mensagem, chamando o 
método soma() da classe “calc”, a classe “MAIN” deve primeiro instanciar a 
classe “calc”, como mostrado na figura abaixo.
Introdução ao Coding Mobile
60
Figura 45 – Classe principal a instanciar a classe Calc
Fonte: Autor
Note que para se instanciar uma classe, isto é, criar um objeto, 
deve-se usar a seguinte notação:
<tipo da classe> <nome do objeto> = new <nome da classe>();
Onde:
 • <tipo da classe> tem a mesma função que o <tipo da variável> 
utilizado nos tópicos anteriores, neste material;
 • <nome do objeto> é o nome que o programador dará para o objeto 
que está sendo criado;
 • <new> é uma palavra reservada que informa ao programa que o 
programador está criando uma nova instância de uma classe;
 • <nome da classe> é o nome que o programador deu para a classe 
que ele está querendo instanciar. Sempre deve ser seguindo de 
abre e fecha parênteses “()”.
Para o caso em estudo, a linha de código que instancia a classe 
“calc” é a seguinte:
Calc C = new Calc();
A partir desta linha o programa entende que existe um objeto 
chamado “C” e que o mesmo foi instanciado a partir da classe “Calc”. Em 
seguida, utilizamos o objeto “C” para chamar os métodos da classe à qual 
ele faz referência.
Muito bem. Execute o programa e verá que o resultado da soma 
será apresentado no console.
Introdução ao Coding Mobile
61
Agora siga os mesmos procedimentos apresentados para o 
processo de soma de duas variáveis e implemente os códigos para que 
o método “MAIN” da classe Principal execute a subtração, multiplicação 
e divisão.
Imagine que precisamos criar um novo método, chamado “média()”, 
na classe “calc” para calcular a média entre dois números inteiros. Lembre-
se que este método deve receber dois parâmetros do tipo especificado. O 
Código deve ficar mais ou menos assim:
Figura 46 – método media()
Fonte: Autor
Agora faça uma chamada ao método “media()”, a partir do método 
“main” da classe principal.
Figura 47 – inserindo a chamada ao método media() na classe MAIN
Fonte: Autor
Introdução ao Coding Mobile
62
Polimormismo, Interface e Classes Abstratas
Polimorfismo
O polimorfismo ocorre quando o programa é implementado de 
maneira que “o mesmo método” pode responder de diferentes formas.
Da mesma maneira como fizemos quando este conceito foi 
apresentado para a linguagem PHP (introdução ao Coding Web – Unidade 4), 
entendemos como necessário a apresentação da definição formal. Aqui está:
Polimorfismo é a capacidade da implementação de operações de 
maneira diferente da definida originalmente na classe base. Dall’Oglio 
(2016) destaca ainda que,
O significado da palavra polimorfismo nos remete a “muitas 
formas”. Polimorfismo em orientação a objetos é o princípio que 
permite que classes derivadas de uma mesma superclasse 
tenham métodos iguais (com a mesma nomenclatura e os 
mesmos parâmetros), mas comportamentos diferentes, 
redefinidos em cada uma das classes filhas. - (DALL’OGLIO, 2016)
Seguindo esta ideia, usaremos aqui o mesmo exemplo que trabalhamos 
com PHP. Isso permite a você perceber as similaridades e diferenças entre as 
duas linguagens de programação para tratar este conceito. 
Imagine o cenário representado pelo diagrama abaixo:
Figura 48 – representação gráfica da herança entre duas classes.
Conta
Agencia
Conta
Saldo
Registrar_Conta(Ag, Cta, S)
Depositar(Valor)
Sacar(Valor)
Conta_Poupanca
Sacar(Valor)
Fonte: Autor
Introdução ao Coding Mobile
63
Primeiro vamos implementar a classe Conta. 
Para implementar esta classe, crie um novo pacote no projeto 
Exe01, chamado exercicio7. Dentro deste pacote, crie uma classe Conta, 
sem o método “MAIN”, declare os atributos e implemente os métodos, de 
acordo com a figura 48, acima. O seu código deve ficar mais ou menos 
assim:
Figura 49 – Classe Conta
Fonte: Autor
Agora que temos a classe Conta, crie uma nova classe, no mesmo 
pacote ‘exercicio7’, chamado Conta_Poupanca. Esta classe deve ser uma 
subclasse da classe Conta (figura 49). Ser uma subclasse significa herdar 
as características e comportamentos da classe mãe (ou super classe).
IMPORTANTE:
Caso você não se recorde do conceito de herança entre 
classes, que foi visto na disciplina de “introdução ao coding 
Web”, aqui vai, novamente: Herança é a propriedade que 
permite que uma classe (filha ou subclasse) herde atributos 
(características) e métodos (comportamentos) de outra 
classe (mãe ou superclasse).
Introdução ao Coding Mobile
64
Conforme podemos verificar na figura 48, a subclasse 
ContaPoupança deve conter um método ‘sacar’ com a mesma assinatura 
(mesmo nome e argumentos) que a classe mãe (Conta). Para usar a 
herança, em Java, utiliza-se a palavra reservada ‘extends’. A classe (filha) 
ContaPoupança deve ficar mais ou menos assim:
Figura 50 – Conta Poupança.
Fonte: Autor
Para o conteúdo do método sacar da classe ContaPoupança 
podemos imaginar que o Valor não pode ser maior que o Saldo da conta, 
verificação que não acontece na classe Conta (figura 49). Então, nosso 
código fica mais ou menos assim:
Figura 51 – Classe Conta Poupança.
Fonte: Autor
Note que esta classe ContaPoupança herda (extends) da classe 
Conta, criada anteriormente. Repare também que a classe filha 
“contaPoupanca” possui um método com o mesmo nome (método sacar()) 
que a classe mãe “conta”, mas o conteúdo do método sacar na classe mãe 
e diferente do conteúdo do método sacar na classe filha. 
Introdução ao Coding Mobile
65
Para testar o funcionamento da classe “conta” e da classe 
“contaPoupanca”, crie uma nova classe no mesmo pacote ‘exercicio7’ com 
o nome de Principal (que deve ter o método MAIN) com o seguinte código:
Figura 52 – Classe Principal (com método MAIN) para testar as classes Conta e 
ContaPoupança.
Fonte: Autor
Note que o método Sacar(Valor), apresentado na figura acima 
verifica se a quantia a ser sacada é maior que o valor do saldo da conta. A 
resposta apresentada no console deve ser o seguinte:
Figura 53 – Resultado da execução do códido da figura 52.
Fonte: Autor
Interface
Uma interface é um tipo composto (ou referência) em Java. Pode ser 
considerada como uma classe com métodos abstratos. Alguns tutoriais 
java, como por exemplo o site TutorialPoint , consideram que escreveruma interface é similar a escrever uma classe, porém, uma classe deve 
descrever os atributos e comportamentos de um objeto e a interface, por 
sua vez, contém a descrição dos comportamentos que uma classe deve 
implementar.
Introdução ao Coding Mobile
66
A lista a seguir apresenta algumas características de uma interface que 
não podem ser esquecidas quando queremos utilizá-las adequadamente:
 • Uma interface não pode ser instanciada;
 • Uma classe não pode herdar (extends) as características ou 
comportamentos de uma interface, mas pode implementá-las 
(implement);
 • Todos os métodos de uma interface devem ser abstratos;
 • Uma interface não pode conter atributos instanciáveis;
 • Uma interface pode herdar (extends) de outra interface.
Declarando uma Interface
Para declarar uma interface devemos utilizar a palavra-chave: “interface”.
Imagine que, no exemplo que utilizamos para a classe Conta, 
quiséssemos fazer algumas modificações, como por exemplo: fazer com 
que a Classe Conta não mais contivesse qualquer código, mas apenas 
a declaração dos métodos (comportamentos) necessários para todos os 
tipos de contas que nela estivessem baseadas. Nossa Classe Conta ficaria 
assim:
Figura 54 – Interface Conta
Fonte: Autor
Esta interface Conta foi criada num novo pacote, chamado 
exercicio8, no mesmo projeto exe01.
Se criarmos uma classe que implemente (implements) a interface 
Conta, ela deve ser assim:
Introdução ao Coding Mobile
67
Figura 55 – Classe ContaCorrente
Fonte: Autor
Repare que ao lado da marcação da linha3 existe uma “x” a indicar 
que ali existe um erro. Se pararmos o ponteiro do mouse sobre o “x”, 
teremos a seguinte informação:
Figura 56 – Classe ContaCorrente
Fonte: Autor
Note que a IDE informa a você que para que a classe ContaCorrente 
seja executada sem erros, deve implementar os métodos da classe Conta.
Legal, não é?! Isto permite que você crie uma espécie de ‘contrato’, no 
sentido de exigir que os programadores que, por ventura, queiram implementar 
a interface que você criou para um determinado negócio, devam implementar 
determinados métodos obrigatórios para o correto funcionamento.
Classes Abstratas
Como você deve lembrar, já apresentamos este conceito quando 
estudamos a linguagem PHP, na disciplina de Introdução ao Coding Web 
– Unidade 4. Assim como o PHP, a linguagem Java também permite o 
recurso de utilizar classes estruturais para servir de base para a criação de 
outras classes mais especializadas.
Introdução ao Coding Mobile
68
IMPORTANTE:
Uma classe abstrata não pode ser instanciada diretamente; 
apenas servir de base para criação de novas classes. 
(DALL’OGLIO, 2016). Para definir uma classe abstrata em 
Java, utiliza-se a palavra reservada abstract antes da 
definição da classe em si.
Diferente do que acontece com a interface, uma classe qualquer 
pode herdar as características e comportamentos da classe abstrata. 
Mas, da mesma forma que acontece com a interface, a classe 
abstrata pode conter métodos abstratos com o intuito de assegurar que 
as suas classes filhas implementem todos os métodos necessários para 
seu correto funcionamento.
Como visto no tópico relativo às interfaces, os métodos abstratos 
têm a função de servir de molde para os métodos da classe filha (extends) 
da classe abstrata ou (para o caso das interfaces) de servir de molde para 
as classes que a implementam (implements).
Imagine que você queira transformar a interface Conta, apresentada 
na figura 54 numa classe abstrata. Crie um novo pacote, chamado 
exercicio9 e, dentro dele, crie uma classe, sem o método “MAIN”. Antes 
de apertar o botão “FINISH”, selecione a opção ‘abstract’, como mostrado 
na figura abaixo:
Introdução ao Coding Mobile
69
Figura 57- Criando uma classe abstrata
Fonte: Autor
Dentro da classe Conta, insira o seguinte conteúdo:
Figura 58 – Classe abstrata
Fonte: Autor
Note que apenas dois métodos são abstratos, o que significa que 
a classe abstrata conta pode superclasse de uma classe ContaCorrente, 
por exemplo. Esta subclasse poderá herdar (extends) do atributos e 
métodos já implementados na classe Conta e deverá obrigatoriamente 
implementar o conteúdo dos métodos abstratos ‘Depositar’ e ‘Sacar’.
Introdução ao Coding Mobile
70
Bem. Foi uma longa caminhada e espero que este material tenha 
ajudado você a entender os conceitos básicos da programação em 
linguagem Java. É claro que existe muito mais a ser estudado, caso você 
queira se tornar um expert em programação Java e nosso intuito aqui não 
foi de esgotar o assunto, mas sim de apresentar o que pensamos serem 
os conceitos fundamentais.
Verifique os links e livros indicados nas referências bibliográficas, 
com destaque para os livros de Deitel (2003) e Mattos (2007)
Introdução ao Coding Mobile
71
REFERÊNCIAS
CLARO, D., & SOBRAL, J. (2008). Programação em JAVA. Florianópolis, 
SC: Copyleft Pearson Education. Acesso em 06 de Set. de 2018, disponível 
em http://www.faeterj-rio.edu.br/downloads/bbv/0031.pdf
CORDEIRO, F. (2016). Android Studio (3 ed.). AndroidPro.
CORDEIRO, F. (2017). Android Aprendiz. AndroidPro. Fonte: https://
www.androidpro.com.br/
DALL’OGLIO, P. (2016). PHP - Programando com Orientação a Objetos 
(3 ed.). SP, SP, Brasil: Novatec Editora. Acesso em 30 de Ago. de 2018
DEITEL, H., & DEITEI, P. (2003). Java, como programar (4 ed.). Porto 
Alegre: Bookman.
GOSLING, J., & McGILTON, H. (1995). The Java Language Environment. 
Mountain View,, California, EUA: Sun Microsystems, Inc.
MATTOS, E. (2007). Programação de softwares em Java. SP: Digerati 
Books.
MEIRELLES, A. (2009). Smartphones, Guia Prático - Android. Acesso 
em 05 de Set. de 2018, disponível em Hardware.com.br: https://www.
hardware.com.br/livros/smartphones/android.html
Oracle.com. (2018). Java Documentation. Acesso em 13 de Set. de 
2018, disponível em Oracle: https://docs.oracle.com/javase/tutorial/
getStarted/intro/definition.html
Introdução ao Coding Mobile
	Java Básico
	O Primeiro Projeto Java
	A Primeira Classe Java
	Estrutura Básica da Linguagem Java
	Introdução
	Estrutura de um Programa Java
	Identificadores
	Palavras Reservadas
	Variáveis
	Tipos de Dados Simples
	Tipos de Dados Compostos
	Conversão de Tipos
	Escopo de Variável
	Modificadores de Acesso
	Atributos Públicos
	Atributos Privados
	Operadores
	Operadores Aritméticos
	Operadores de Atribuição
	Operadores de Incremento e Decremento
	Operadores Relacionais
	Operadores Booleanos
	Operador Ternário
	Estrutura de Controle de Seleção e de Repetição
	Estrutura de Controle de Seleção
	Comando if
	Comando if – else
	Condições mais elaboradas
	O comando swicth
	Estrutura de Controle de Repetição
	while
	for
	Controlando Loops
	O comando break
	O comando continue
	Classes em Java
	Introdução
	Métodos
	Classes
	Polimormismo, Interface e Classes Abstratas
	Polimorfismo
	Interface
	Declarando uma Interface
	Classes Abstratas

Outros materiais