Você está na página 1de 37

Programação Orientada

a Objetos
Professor Vinícius Bortolini

Fundamentos da Linguagem | 1
Mapa conceitual da aula

Fundamentos da Linguagem | 2
Objetivos

Ao final desta aula, o aluno será capaz de:


- entender a estrutura de um programa em Java

- identificar as nomenclaturas adotadas na linguagem Java

- reconhecer e usar: tipos primitivos de dados; comentários;


variáveis; saída de dados padrão; operadores (aritmético,
relacionais, atribuição, incremente, decremento e lógicos) e
precedência dos operadores

- escrever seus primeiros programas em Java

Fundamentos da Linguagem | 3
O programa Java

- Em Java tudo fica em uma classe

- Geralmente, cada classe fica em um arquivo (padrão de


desenvolvimento)

- O arquivo deve ter o mesmo nome da classe com a


extensão .java

- Quando executar o programa estará executando uma


classe

- Java é sensitive case

- Java != java

Fundamentos da Linguagem | 4
O método main()

- É onde a execução inicia

- Executar um programa é o mesmo que dizer a Máquina


Virtual Java (JVM) para carregar a classe e executar o seu
método main()

- É sempre chamado de forma automática

- Nem toda classe exige um método main()

- Não importa quantas classes seu programa possui, mas


deverá existir apenas um método main() – assim tornar-se
uma aplicação “executável”

Fundamentos da Linguagem | 5
O método main()

- O parâmetro deste método é um vetor formado por


textos passados via linha de comando

- O parâmetro pode ser declarado de formas diferentes,


seu nome não importa, porém, obrigatoriamente deve ser
um array de String
Exemplos:
public static void main(String[] arg){}
public static void main(String arg[]){}
public static void main(String[] QualquerNome){}

- Qualquer distorção neste cabeçalho, a JVM não


identificará o método é ocorrera um erro durante a
execução da classe.
Fundamentos da Linguagem | 6
Saída de dados padrão

- System.out....
- O método print imprime um conjunto de dados e
posiciona o cursor no final deles
- O método println imprime um conjunto de dados e
posiciona o cursor na próxima linha
- Ambos são métodos sobrecarregados, ou seja,
existem várias versões destes métodos (funcionam
para diferentes tipos e quantidades de parâmetros)

Fundamentos da Linguagem | 7
Saída Padrão (print e println)

public class ExemploPrint1 {


public static void main(String[] args) {
String texto = “Programação Orientada a Objetos";
int ano = 2022;
System.out.print(texto); // imprime texto sem pular linha
System.out.print(" - IFSC "); // imprime texto sem pular linha
System.out.print(ano); // imprime um valor inteiro
System.out.println(); // pula uma linha
System.out.println("Prof. Vinícius Bortolini"); // imprime texto e pula linha
System.out.print("=======================================");
}
}

Saída:
Programação Orientada a Objetos - IFSC 2022
Prof. Vinícius Bortolini
==========================================

Fundamentos da Linguagem | 8
Saída Padrão (print e println)

public class ExemploPrint2 {


public static void main(String[] args) {
String texto = "Programação Orientada a Objetos";
int ano = 2022;
System.out.println(texto + " - IFSC " + ano + "\n" + "Prof. Vinícius Bortolini");

System.out.print("==========================================");
}
}
Saída:
Programação Orientada a Objetos - IFSC 2022
Prof. Vinícius Bortolini
==========================================

A mesma saída foi possível utilizando menos comandos print e println.

Isto foi possível graças ao operador de concatenação de String (+) e a


sequência de escape (“\n”) que indica para pular linha.

Fundamentos da Linguagem | 9
Concatenação de String

- A concatenação de String é realizada com o operador (+)

Sintaxe:

<String1> + <String2> = <String1String2>

<String> + <TipoDadoPrimitivo> = <StringTipoDadoPrimitivo>

O operador de concatenação (+) não adiciona espaço onde não existe, ou


seja, ele literalmente junta duas Strings.

Fundamentos da Linguagem | 10
Concatenação de String

- Exemplo
public class ExemploConcatenacao {
public static void main(String[] args) {
String texto1 = ">> O operador de concatenação (+) ";
String texto2 = "é muito prático ";
String texto3 = texto1 + texto2 + "!";
System.out.println(texto3 + " <<");
System.out.println(">> 2 + 5 = " + 2 + 5); // uso INCORRETO
System.out.println(">> 2 + 5 = " + (2 + 5)); // uso correto
}
}

Saída:
>> O operador de concatenação (+) é muito prático ! <<
>> 2 + 5 = 25
>> 2 + 5 = 7

Fundamentos da Linguagem | 11
Concatenação de String

- O compilador identifica se o operador (+) é de adição ou


concatenação de String

- Se um dos operandos for do tipo String, então se trata do


operador de concatenação

System.out.println( ">> 2 + 5 = " + 2 + 5);

- Se os operandos forem de tipos numéricos, então se trata


do operador de adição; perceba que a expressão está
entre parênteses

System.out.println(">> 2 + 5 = " + ( 2 + 5 ));

Fundamentos da Linguagem | 12
Caracteres Especiais

Seqüência de escape Descrição da ação


Nova linha. Posiciona o cursor de tela no início
\n da próxima linha.
Tabulação horizontal. Move o cursor de tele para
\t a próximo parada de tabulação

Retorno de Carro. Retorna o curso para o início


\r da linha.
Barra Invertida. Utilizado para imprimir um
\\ caractere de barra invertida.

Aspas Duplas. Utilizado para imprimir um


\" caractere de aspas duplas.
Unicode. Insere o caractere de código
\uXXXX Hexadecimal XXXX.

Fundamentos da Linguagem | 13
Caracteres Especiais

- Usando caracteres especiais


public class HelloWorld {
public static void main(String[] args) {
System.out.println( “Welcome\nto\n\”Java\”\nProgramming” );
}
}

Escape Descrição da ação

Saída \n Nova linha

\t Tabulação horizontal
Welcome
to \r Retorno de Carro

"Java" \\ Barra Invertida

\" Aspas Duplas


Programming
\uXXXX Unicode

Fundamentos da Linguagem | 14
Comentários em Java

- São usados para documentar trechos do código fonte.

- Facilita a manutenção de programas e todos os


caracteres comentados são ignorados pelo compilador.

- Em java podem ser de três tipos:

- // Comentários em uma linha simples.

- /* Comentários que se estendem por várias linhas. */

- /** Comentários que são usados para geração de


documentação HTML através da ferramenta javadoc. */

Fundamentos da Linguagem | 15
Comentários em Java

/* Este exemplo apresenta os operadores de comentário


em Java.
Comentário de Bloco ou múltiplas linhas.
*/
package br.edu.ifsc.cursojava;
Começa no /* e termina no */
independente da quantidade de linhas.
/**
* @author Vinícius Bortolini Comentário para geração de documentação
* @version 1.0 “javadoc”. Começa no /** e termina no */
*/ independente da quantidade de linhas.

public class ExemploComentario {


public static void main( String[] args ) {
System.out.println( "Olá Mundo!“ );
System.exit( 0 ); // Encerra a execução do Programa
}
Comentário de linha simples. Toda a linha, após o //,
}
será ignorada pelo compilador.

Fundamentos da Linguagem | 16
Malhação Cerebral

MC2_01. Crie uma classe chamada TheTree. O programa


deverá escrever as seguintes linhas no console:

Fundamentos da Linguagem | 17
Tipos de dados

- Java é uma linguagem fortemente tipada (só podemos


usar uma variável depois de definirmos um tipo para ela).

- As variáveis podem ser de dois tipos:


- Tipos de Dados Primitivos

- Tipos de Dados Construídos


Tipos de Dados Primitivos são semelhantes as
variáveis comuns em linguagens estruturadas,
simplesmente armazenam um valor.

Tipos de Dados Construídos são as classes, que


podem estar definidas no Java ou serem criadas
pelo programador. Classes podem possuir um
conjunto de atributos e também métodos.
Fundamentos da Linguagem | 18
Tipos de dados primitivos

Tipo Tamanho Valores

Lógico boolean 1 bit true ou false

char 16 bits ‘\u0000’ até ‘\uFFFF’ (0 até 65535)

byte 8 bits -128 até +127


short 16 bits -32.768 até +32.767
Inteiro
int 32 bits -2.147.483.648 até +2.147.483.647

-9.223.372.036.854.775.808 até
long 64 bits
+9.223.372.036.854.775.807
float 32 bits -3,4E-38 até 3,4E+38
Ponto-
Flutuante double 64 bits -1,7E-308 até 1,7E+308

Obs: double é o ponto-flutuante padrão para a linguagem Java.


Ponto flutuante são os números Reais. Por exemplo 3,1428
Fundamentos da Linguagem | 19
Identificadores

São nomes de variáveis, métodos, classes, interfaces e pacotes,


definidos pelo usuário dentro do código fonte.

- Os nomes são "case-sensitive" (maiúscula de minúscula).


- Podem conter letras, números (0 a 9), sublinhado ( _ ) e cifrão ( $ ).
- NÃO podem começar por números.
- NÃO podem possuir espaços em branco.
- NÃO podem ser iguais a palavras reservadas pela linguagem.

Extras
- Usar nomes sugestivos.

Fundamentos da Linguagem | 20
Identificadores - exemplo

Identificadores Válidos
São variáveis diferentes. Pois Java diferencia
int Idade; maiúscula de minúscula
int idade;
String nomeCliente;
public class exemploJava
int _A$_09;

Identificadores Inválidos
int 9Numeros; // iniciando com número
String Nome Cliente; // possui espaço em branco no meio
public class %exemplo% ; // possui caractere inválido
int return; // usou palavra reservada

Fundamentos da Linguagem | 21
Palavras reservadas

abstract boolean break byte case


catch char class continue default
do double else extends false
final finally float for if

implements import instanceof int interface

long native new null package


private protected public return short

static super switch synchronized this

throw throws transient true try


void volatile while

ATENÇÃO: Além dessas palavras, Java reserva a palavra const e goto,


apesar de não serem utilizadas atualmente pela linguagem.

Fundamentos da Linguagem | 22
Extra – recomendação da SUN

Variáveis e métodos
- Iniciam com letra minúscula
- Nomes compostos separar por meio de letras maiúsculas
- Ex: nomeDeVariavel, nomeDeMetodo.

Classes
- Iniciam com letra maiúscula
- Nomes compostos separar por meio de letras maiúsculas
- Ex: NomeDeClasse

Constantes
- Todas as letras maiúsculas, separadas por (_)
- Ex: TOTAL_ALUNOS, NR_PARCELAS

Fundamentos da Linguagem | 23
Operadores

Operador de Atribuição
- ( = ) Copia o valor da direita para a variável da esquerda.

- Exemplo
int idade = 57;
double salario = 1300.00, abono = 230.50;
float peso = 78.30f;
num1 = num2;

Fundamentos da Linguagem | 24
Malhação Cerebral
MC2_02. Crie uma aplicação Java que imprima o seguinte
texto na saída padrão:
"O Java é uma linguagem poderosa e moderna,
100% orientada a objetos e interpretada!"
Os textos azuis devem estar dentro de variáveis do tipo
String, os textos verdes devem ser inseridos diretamente no
método de impressão, e o texto vermelho devem estar em
variáveis numéricas.
MC2_03. Crie uma aplicação Java que inicialize dois valores
inteiros e mostre a soma desses valores.

Fundamentos da Linguagem | 25
Operadores Aritméticos

Adição + num1 + num2 num1 somado com num2

Subtração - num1 - num2 num2 subtraído de num1

Multiplicação * num1 * num2 num1 multiplicado por num2

Divisão / num1 / num2 num1 dividido por num2

o resto da divisão de num1 por


Resto da divisão % num1 % num2
num2

ATENÇÃO: Divisão de números inteiros o resultado é inteiro;


O operador de divisão e de resto da divisão não aceitam que o divisor seja zero
– caso isto ocorra é gerado uma exceção ArithmeticException;

Fundamentos da Linguagem | 26
Operadores Relacionais

- Avaliam uma expressão e retornam true ou false.

maior que > n1 > n2 n1 é maior que n2?

maior ou igual >= n1 >= n2 n1 é maior ou igual a n2?

menor que < n1 < n2 n1 é menor que n2?

menor ou igual <= n1 <= n2 n1 é menor ou igual a n2?

igual a == n1 == n2 n1 é igual a n2?

diferente de != n1 != n2 n1 é diferente de n2?

n1 instanceof n1 é um objeto instanciado


instância de instanceof
n2 da classe n2?

Fundamentos da Linguagem | 27
Operadores

Operadores Relacionais
- ATENÇÃO
- com o operador de diferença ( != ) e de igualdade ( == )
que são diferentes de outras linguagens de programação,
como Pascal, Basic e Lingo.
- Um erro comum para programadores iniciantes em Java é
realizar a operação de avaliação de igualdade com o
operador de atribuição.
Exemplo
if (n1 = n2) {
System.out.println( “Numero 1 igual ao Numero 2“ );
}
PROBLEMA: ao invés de realizar a
comparação, esta sintaxe pretende atribuir
o valor de n2 em n1.
Fundamentos da Linguagem | 28
Operadores Lógicos
- Avaliam uma expressão lógica e retornam true ou false.
Não Lógico Retorna o valor invertido de n1. Se n1 é true retorna false,
(NOT) ! ! n1 se é false retorna true
Retorna true somente se n1 e n2 forem true, caso contrário
Operação E
&& n1 && n2 retorna false.
(AND) Se n1 for false n2 não é avaliada
Retorna true somente se n1 e n2 forem ambos true, caso
E (binário) & n1 & n2 contrário retorna false.
Ambas expressões são sempre avaliadas

Operação OU Retorna true se n1 for true, se n2 for true ou se ambos


|| n1 || n2 forem true. Só retorna false se n1 e n2 forem ambos false.
(OR) Se n1 for true n2 não é avaliada

Retorna true se n1 for true, se n2 for true ou se ambos


OU (binário) | n1 | n2 forem true. Só retorna false se n1 e n2 forem ambos false.
Ambas expressões são sempre avaliadas

OU Exclusivo Retorna true somente se n1 for true ou se somente n2 for


^ n1 ^ n2 true. Caso os dois sejam ao mesmo tempo true ou false
(XOR) retorna false.

Fundamentos da Linguagem | 29
Operadores

Operadores de atribuição composta

Op. Exemplo Equivalente Descrição


É armazenado em n1 o resultado da
+= n1 += n2 n1 = n1 + n2
soma de n1 com n2

É armazenado em n1 o resultado da
-= n1 -= n2 n1 = n1 - n2
subtração de n2 de n1

É armazenado em n1 o resultado da
*= n1 *= n2 n1 = n1 * n2
multiplicação de n1 por n2

É armazenado em n1 o resultado da
/= n1 /= n2 n1 = n1 / n2
divisão de n1 por n2

É armazenado em n1 o resultado do
%= n1 %= n2 n1 = n1 % n2
resto da divisão de n1 por n2

Fundamentos da Linguagem | 30
Operadores

Operadores de incremento e decremento

Op. Exemplo Equivalente Descrição

Retorna o valor antigo de n1 e depois


n1++ n1 = n1 + 1
aumenta em 1 o valor de n1
++
Aumenta em 1 o valor de n1 e depois
++n1 n1 = n1 + 1
retorna o valor novo de n1.

Retorna o valor antigo de n1 e depois


n1– – n1 = n1 – 1
Diminui em 1 o valor de n1.
––
Diminui em 1 o valor de n1 e depois
– –n1 n1 = n1 – 1
retorna o valor novo de n1.

Fundamentos da Linguagem | 31
Malhação Cerebral

MC2_04. Examine o código abaixo e determine qual o valor


das variáveis i, j, x e y depois desses passos.

int i = 10;
int j = 2;
int x = 0;
int y = 0;
j++;
++i;
x = i++ + j;
y = ++j + ++i;

Fundamentos da Linguagem | 32
Precedência de Operadores
Ordem Operador
1 ( ) parênteses
2 ++ pós-incremento e -- pós-decremento
3 ++ pré-incremento e -- pré-decremento
4 ! Negação
5 * Multiplicação e / Divisão
6 % Resto da divisão
7 + Soma e – Subtração

8 < menor que, <= menor ou igual, > maior que, >= maior ou igual

9 == igual e != diferente
10 & (e binário)
11 | (ou binário)
12 ^ (ou exclusivo binário)
13 && (e lógico)
14 || (ou lógico)
15 ?: condicional
16 = atribuição

Fundamentos da Linguagem | 33
Precedência de Operadores

No caso de dois operadores com o mesmo nível de


precedência
- A prioridade é de quem estiver mais a esquerda
- Exemplo:

6 % 2 * 5 + 4 / 2 + 88 - 10

O ideal seria fazer o uso de parênteses


( ( 6 % 2 ) * 5 ) + ( 4 / 2 ) + 88 - 10

Dica: Deixe as expressões mais simples possível, use


parênteses

Fundamentos da Linguagem | 34
Malhação Cerebral

MC2_05. Crie um programa que obtenha a média de 3


números. Considere o valor para os três números como
sendo 10, 20 e 45. O resultado esperado do exercício é:

número 1 com o valor 10


número 2 com o valor 20
número 3 com o valor 45
A média é 25

Fundamentos da Linguagem | 35
Referências

- SIERRA, Kathy & BATES, Bert. Use a cabeça Java. 2 ed. Rio de
Janeiro: Alta Books, 2005.

- DEITEL, H. M.; DEITEL, P. J. Java: como programar. 4. ed. Porto Alegre:


Bookman, 2003.

- HORSTMANN, Cay. Big Java. Porto Alegre: Bookman, 2004.

- Material elaborado pela iniciativa JEDI (Java Education and Development


Initiative. http://www.dfjug.org/DFJUG/jedi/index.jsp

- Material elaborado pelo Professor Alexandre Rômolo Moreira Feitosa da


UTFPR de Cornélio Procópio

- Material elaborado pelo Professor Gabriel Canhadas Genvigir da UTFPR


de Cornélio Procópio

- Material elaborado pelo Professor Davi Bernardo do IFSC de Jaraguá


do Sul-Rau

- Outros livros / revistas / WWW. Fundamentos da Linguagem | 36


Programação Orientada
a Objetos
Professor Vinícius Bortolini

Fundamentos da Linguagem | 37

Você também pode gostar