Você está na página 1de 45

Programação Orientada por Objecto

Aula 2
Comentários, Tipos primitivos,
Identificadores, Operadores, Estruturas
de controlo de fluxo

Eng. Jofrásio da Silva Pedro (thejox2.jp@gmail.com)


© 2019 Disciplina: Programação III
OBJECTIVOS

• Revisar os principais recursos da linguagem Java: tipos


primitivos, variáveis, comentários, operadores, comandos
de decisão.
Comentários
• Comentários são indicações que colocamos no código para
facilitar que outros programadores o entendam. Java aceita três
tipos de comentários:
• Quando queremos fazer um comentário de uma única linha, basta
utilizar // para iniciar o comentário (assim como em linguagem C).
• Quando queremos fazer comentários de várias linhas, iniciamos o
comentário com /* e finalizamos com */ (assim como em linguagem
C).
• O último caso são os comentários para a ferramenta de
documentação JavaDoc. Neste caso, antes do comentário, vamos
colocar uma barra e dois asteriscos (/ **) e terminar com um asterisco
e uma barra inclinada (* /)
• / ** Comentário para JavaDoc * /
Tipos primitivos
• Um tipo de dado define uma coleção de dados e um
conjunto de operações pré-definidas sobre esses
dados.
Tipos primitivos

• Os tipos de dados primitivos são os tipos de dados não-


definidos em termos de outros tipos
• Os mais comuns são:
• Tipos numéricos
• Tipos booleanos
• Tipos caracteres
Tipos primitivos

• Tipos numéricos: inteiro


Tipos primitivos

• Tipos numéricos: ponto flutuante


Tipos primitivos

• Tipo primitivo caractere


 Para caracteres, Java usa o tipo char:
• Segue o padrão Unicode;
• Ocupa 2 bytes;
• Representa 32.768 caracteres diferentes;
• Permite a construção de sotware internacionalizado;
• Depende também do suporte do SO.
o Representação entre aspas simples:
 'a', '5', '\t', '\u0061', etc.
Tipos primitivos

• Tipo primitivo caractere


 Cadeias de caractere
Algumas linguagens definem um tipo primitivo string para
cadeias de caracteres;
• Java não possui um tipo primitivo string;
• Em Java, strings são tipos compostos (objetos);
• Veremos mais adiante...
Tipos primitivos

• Tipo primitivo lógico (booleano)


• Valores verdadeiro (true) ou falso (false);
• Não existe equivalência entre valores lógicos e valores
inteiros;
IDENTIFICADORES
• Identificadores,
• Vareáveis
Identificadores

• Um nome em um programa
• São usados para denotar classes, métodos e variáveis
• Composição – Sequência de caracteres:
• Letras
• Dígitos
• Undescores ( _ )
• Símbolos monetários ( $ )
• Não pode começar por dígito – São “case sensitive”
Identificadores

• Exemplos:
number, Number, sum_$, $$_100, mal, saldoTotal...
• Identificadores Incorrectos:
48casa, all/clear, navio-escola,...
Vareáveis

• Assim como em linguagem C, programas feitos em Java


devem ter suas variáveis declaradas e inicializadas antes de
serem utilizados. Em Java toda variável é identificada por um
nome e tem um tipo definido no ato da declaração, que
não pode ser alterado.
• A sintaxe para declaração de variáveis em Java é idêntica à
que utilizamos em C.
Vareáveis
• Declaração, Inicialização e Atribuição
• Declarando Variáveis
< TIPO> < VARIÁVEL>;
Ex: char a, b, c; double area;
• Declarando e Iniciando Variáveis
< TIPO> < VARIAVEL> = ;
Ex: int i = 10; int i = 10, j=100; long big = 12341234L;
float z = 3.414f; char c = ‘S’; boolean b = true;
Vareáveis

• Declaração, Inicialização e Atribuição


• Atribuição
< IDENTIFICADOR> = < EXPRESSÃO>
Ex: idade = 23; sexo = “M”; tem_filhos = false; j = k = 5;

O tipo da variável define, além do tipo de dado que ela pode


armazenar, o tamanho do espaço de memória que deve ser alocado
para ela.
Vareáveis

• Variáveis Locais
• Declaradas dentro de um bloco de código { };
• Criadas quando o bloco de código inicia, destruídas quando
ele acaba;
• Devem ser inicializadas ou o compilador emitirá um erro!
public static void main (String args[])
{
int x = 7;
}
Vareáveis
• Escopo de variáveis
• Escopo da variável é o nome dado ao trecho de código em
que a variável existe e no qual é possível acessá-la.

• Em Java, assim como em linguagem C, podemos declarar


variáveis a qualquer momento. Entretanto, o trecho de código
em que a variável será válida dependerá de onde ela foi
declarada.

• Quando abrimos um novo bloco com as chaves, as variáveis


declaradas ali dentro só existirão até o fim daquele bloco, ou
seja, até o ponto onde se fecham as chavetas do bloco.
Vareáveis
• Escopo de variáveis
– Exemplo:
public static void main(String [] args){
// Aqui a variável x ainda não existe
int x = 1;
// Aqui a variável x já existe
while ( <condição> ) {
// Aqui a variável x continua existindo e y ainda não existe
int y = 0;
// Aqui a variável y já existe
}
// Aqui a variável y já não existe mais. O x continua existindo.
}

• Tenha cuidado! Se criar uma variável dentro de um bloco e


tentar utilizá-la fora desse bloco, haverá um erro de
compilação.
Vareáveis
• Incremento e Decremento
• idade = idade + 1; ou idade + = 1; ou idade ++;
• idade = idade - 1; ou idade - = 1; ou idade --;
– Posfixado
• int a = 4;
• int b = a++; // b=4; a=5;
• int c = a--; // c=5; a=4;
– Prefixado
• int a = 4;
• int b = ++a; // a=5; b=5;
• int c = --a; // a=4; c=4;
Constantes

Em Java não há a definição de constantes. Quando queremos


definir variáveis com valores constantes em Java utilizamos a
palavra reservada final.
Sintaxe: final <tipo_da_variável> <nome_da_variável> = <valor_constante>;

Exemplo: final float PI = 3.1416;


Conversões entre tipos primitivos

 A conversão de tipos consiste em 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.
Conversões entre tipos primitivos
• 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;
• Exemplo:
• Atribuição entre valores incompatíveis

double x = 30.3;
int a;
a = x; //Não compila
a = 30.3; //Não compila
• Conversão correta
double x = 30.3;
int a;
a = (int)x; //Compila
a = (int)30.3; //Compila
Conversões entre tipos primitivos
• Coerção (casting)
• As variáveis podem ser convertidas em tipos maiores de maneira
automática, mas não em tipos menores
• Desta forma, uma expressão int pode ser tratada como long, mas uma
expressão long não poderá ser tratada como int sem que haja uma
coerção explicita
• Uma coerção é utilizada para persuadir o compilador a reconhecer
uma atribuição
• Esse procedimento pode ser adotado, por exemplo, para “comprimir”
um valor long em uma variável int
• Na coerção, o programador assume os riscos da conversão de dados
Conversões entre tipos primitivos
• Ao fazer o casting para forçar a atribuição de um valor a uma
variável, deve-se prestar atenção aos limites de valores de cada
tipo primitivo.
• Esses limites foram apresentados no Quadro anterior. Por
exemplo, se atribuímos o valor 200 a uma variável inteira e depois
utilizamos um casting para atribuir esse valor a uma variável byte
cujos possíveis valores são de -128 a 127 não teremos erro de
compilação, mas, como 200 estoura o valor máximo para uma
variável byte, ocorrerá uma falha conhecida como overflow e o
valor armazenado na variável byte será -56.
Conversões entre tipos primitivos

• Alguns exemplos de conversões entre tipos:

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
Conversões entre tipos primitivos

 As regras para conversão com tipos primitivos podem ser


assim resumidas:
• O tipo boolean não pode ser convertido para nenhum outro
tipo
• Os tipos não-booleanos podem ser convertidos para outros tipos
não-booleanos, contanto que não haja perda de precisão. Isto
é, podem ser convertidos apenas para tipos que suportem um
limite igual ou maior ao seu
Operadores
• Operadores aritméticos
• Operadores relacionais
• Operadores lógicos
Atribuição
• Em Java, quando queremos atribuir um determinado valor a
uma variável, utilizamos o operador “=”exatamente como
fazemos na linguagem C.
Operadores
• Operadores Matemáticos ou aritméticos
• Os operadores aritméticos são símbolos que representam
operações aritméticas, ou seja, as operações matemáticas
básicas. Os operadores aritméticos da linguagem Java são os
mesmos da linguagem C
Operadores
• Operadores relacionais
• Os operadores relacionais são utilizados para realizar
comparações entre dois valores de um mesmo tipo, retornando
como resultado sempre um valor lógico, ou seja, verdadeiro ou
falso.
Operadores
• Operadores lógicos
• Os operadores lógicos são utilizados para formar novas
proposições lógicas a partir da junção de duas outras.
• Produzem sempre valores booleanos
Estruturas de
controlo de fluxo
• Comandos de decisão ou seleção:
• If
• If...Else
• Switch
Comandos de decisão ou seleção
 O Java fornece três tipos de instruções de seleção.
• A instrução if realiza uma ação se uma condição for
verdadeira ou pula a ação se ela for falsa.
• A instrução if...else realiza uma ação se uma condição for
verdadeira ou realiza uma ação diferente se a condição for
falsa.
• A instrução switch realiza uma de muitas ações, dependendo
do valor de uma expressão (DEITEL; DEITEL, 2010, p. 84).
Comandos de decisão ou seleção
Utilização do comando if...else.
Nesse exemplo, lemos uma nota e verificamos se ela está entre
0 e 100: se estiver, a nota é considerada válida; caso contrário,
inválida.
Exercício
• Mostrar um exemplo para o comando if.
• Mostrar um exemplo para o comando switch.
Estruturas de
controlo de fluxo
• Comandos de repetição:
• While
• Do...While
• For
Comandos de repetição
O Java fornece três instruções de repetição que permitem que
programas executem instruções repetidamente, contanto que
uma condição permaneça verdadeira. As instruções de
repetição são while, do...while e for (DEITEL; DEITEL, 2010, p. 84).
Comandos de repetição
• Na Figura, temos um exemplo de uso do comando for que
imprime números de 0 a 10 na tela.
Comandos de repetição
• A Figura apresenta duas novas versões do mesmo exemplo;
porém, nessas novas versões utilizamos os comandos while e
do-while em lugar do comando for.

Você também pode gostar