Fundamentos de Programação em Java
Parte 1: Conceitos Básicos
Uma introdução aos conceitos fundamentais de programação em Java
1
Introdução ao Java
- Linguagem orientada a objetos, fortemente tipada
- Uma das linguagens de programação mais populares do mundo
- Segue a filosofia "Write Once, Run Anywhere" (WORA)
- Amplamente utilizada para desenvolvimento de aplicativos empresariais, Android, web e muito mais
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
2
Java é uma linguagem fortemente tipada, o que significa que todas as variáveis devem ter um tipo declarado.
Duas categorias principais:
- Tipos Primitivos: Armazenam valores simples diretamente na memória
- Tipos por Referência: Armazenam referências para objetos na memória
3
Tipos de Dados Primitivos
| Tipo |
Tamanho |
Faixa de Valores |
Exemplo |
byte |
8 bits |
-128 a 127 |
byte idade = 25; |
short |
16 bits |
-32,768 a 32,767 |
short codigo = 1234; |
int |
32 bits |
-2³¹ a 2³¹-1 |
int contador = 10000; |
long |
64 bits |
-2⁶³ a 2⁶³-1 |
long populacao = 7500000000L; |
4
Tipos de Dados Primitivos (Continuação)
| Tipo |
Tamanho |
Descrição |
Exemplo |
float |
32 bits |
Ponto flutuante de precisão simples |
float altura = 1.75f; |
double |
64 bits |
Ponto flutuante de precisão dupla |
double pi = 3.14159265359; |
char |
16 bits |
Um único caractere Unicode |
char letra = 'A'; |
boolean |
1 bit |
true ou false |
boolean ativo = true; |
5
Tipos de Referência
Armazenam referências para objetos na memória (endereços).
- Classes:
String, Scanner, ArrayList, etc.
- Interfaces:
List, Map, Comparable, etc.
- Arrays: Coleções de elementos do mesmo tipo
// Exemplos de tipos por referência
String nome = "Java";
int[] numeros = {1, 2, 3, 4, 5};
ArrayList<String> lista = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
6
Declaração de Variáveis em Java
Sintaxe básica:
tipo nomeVariavel = valor;
Exemplos:
// Declaração com inicialização
int idade = 25;
double salario = 3500.50;
String nome = "Maria";
// Declaração sem inicialização
int contador;
contador = 0; // Inicialização posterior
// Múltiplas variáveis do mesmo tipo
int x = 10, y = 20, z = 30;
7
Permitem que o programa execute diferentes blocos de código baseados em condições.
Principais estruturas de decisão em Java:
if / else if / else
switch / case
- Operador ternário:
condition ? value1 : value2
8
Estrutura if / else if / else
Executa blocos de código com base em condições booleanas.
int idade = 18;
if (idade < 12) {
System.out.println("Criança");
} else if (idade < 18) {
System.out.println("Adolescente");
} else if (idade < 60) {
System.out.println("Adulto");
} else {
System.out.println("Idoso");
}
if simples
boolean temPermissao = true;
if (temPermissao) {
System.out.println("Acesso permitido");
}
9
Operadores de Comparação e Lógicos
| Operador |
Descrição |
Exemplo |
== |
Igual a |
if (a == b) |
!= |
Diferente de |
if (a != b) |
>, < |
Maior que, Menor que |
if (idade > 18) |
>=, <= |
Maior ou igual, Menor ou igual |
if (nota >= 7.0) |
&& |
E lógico |
if (idade >= 18 && temCNH) |
|| |
OU lógico |
if (eFeriado || eFimDeSemana) |
! |
NÃO lógico |
if (!estaBloqueado) |
10
Estrutura switch-case
Avalia uma expressão e executa o bloco de código correspondente ao valor.
int dia = 3;
String nomeDia;
switch (dia) {
case 1:
nomeDia = "Domingo";
break;
case 2:
nomeDia = "Segunda-feira";
break;
case 3:
nomeDia = "Terça-feira";
break;
// ... outros casos
default:
nomeDia = "Dia inválido";
break;
}
- A instrução
break é necessária para evitar a execução de casos subsequentes
- O bloco
default é executado quando nenhum caso corresponde ao valor
11
Operador Ternário
Uma forma concisa de expressar uma decisão simples if-else em uma única linha.
Sintaxe:
variavel = (condição) ? valor_se_verdadeiro : valor_se_falso;
Exemplos:
// Exemplo 1: Determinar o maior entre dois números
int a = 10;
int b = 20;
int maior = (a > b) ? a : b; // maior = 20
// Exemplo 2: Verificar se passou ou falhou
double nota = 6.5;
String resultado = (nota >= 7.0) ? "Aprovado" : "Reprovado"; // resultado = "Reprovado"
// Equivalente a:
String resultado;
if (nota >= 7.0) {
resultado = "Aprovado";
} else {
resultado = "Reprovado";
}
12
Permitem executar um bloco de código repetidamente com base em uma condição.
Principais estruturas de repetição em Java:
for: Quando sabemos o número de iterações
while: Quando a condição é avaliada antes da execução do bloco
do-while: Quando a condição é avaliada após a execução do bloco
for-each: Para percorrer elementos de coleções
13
Loop For
Utilizado quando sabemos o número de iterações que queremos executar.
Sintaxe:
for (inicialização; condição; incremento) {
// bloco de código a ser executado
}
Exemplos:
// Contando de 1 a 5
for (int i = 1; i <= 5; i++) {
System.out.println("Número: " + i);
}
// Contagem regressiva
for (int i = 10; i >= 0; i--) {
System.out.println("Contagem: " + i);
}
// Percorrendo array
int[] numeros = {1, 2, 3, 4, 5};
for (int i = 0; i < numeros.length; i++) {
System.out.println("Índice " + i + ": " + numeros[i]);
}
14
Loop While
Executa um bloco de código enquanto uma condição específica for verdadeira.
Sintaxe:
while (condição) {
// bloco de código a ser executado
}
Exemplos:
// Contando de 1 a 5
int contador = 1;
while (contador <= 5) {
System.out.println("Contador: " + contador);
contador++;
}
// Lendo entrada até encontrar um valor específico
Scanner scanner = new Scanner(System.in);
String entrada = "";
while (!entrada.equals("sair")) {
System.out.print("Digite algo (ou 'sair' para encerrar): ");
entrada = scanner.nextLine();
System.out.println("Você digitou: " + entrada);
}
15
Loop Do-While
Similar ao while, mas garante que o bloco de código será executado pelo menos uma vez.
Sintaxe:
do {
// bloco de código a ser executado
} while (condição);
Exemplo:
// Menu de opções
Scanner scanner = new Scanner(System.in);
int opcao;
do {
System.out.println("\nMenu:");
System.out.println("1. Ver saldo");
System.out.println("2. Fazer depósito");
System.out.println("3. Fazer saque");
System.out.println("0. Sair");
System.out.print("Escolha uma opção: ");
opcao = scanner.nextInt();
// Processamento da opção escolhida
switch (opcao) {
case 1: System.out.println("Seu saldo: R$ 1000,00"); break;
case 2: System.out.println("Depósito realizado"); break;
case 3: System.out.println("Saque realizado"); break;
case 0: System.out.println("Saindo..."); break;
default: System.out.println("Opção inválida!"); break;
}
} while (opcao != 0);
16
Loop For-Each (Enhanced For)
Simplifica a iteração sobre arrays e coleções.
Sintaxe:
for (tipo elemento : coleção) {
// bloco de código a ser executado
}
Exemplos:
// Percorrendo um array
String[] frutas = {"Maçã", "Banana", "Laranja", "Uva", "Morango"};
for (String fruta : frutas) {
System.out.println("Fruta: " + fruta);
}
// Percorrendo uma ArrayList
ArrayList<Integer> numeros = new ArrayList<>();
numeros.add(10);
numeros.add(20);
numeros.add(30);
for (Integer numero : numeros) {
System.out.println("Número: " + numero);
}
17
Controle de Fluxo em Loops
Instruções especiais para controlar o fluxo dentro de loops.
| Instrução |
Descrição |
break |
Sai completamente do loop |
continue |
Pula para a próxima iteração do loop |
// Usando break
for (int i = 1; i <= 10; i++) {
if (i == 5) {
System.out.println("Encontrei o 5, parando o loop!");
break; // Sai do loop completamente
}
System.out.println("Número: " + i);
}
// Usando continue
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Pula para a próxima iteração
}
System.out.println("Número ímpar: " + i);
}
18
Loops Aninhados
Um loop dentro de outro loop, útil para trabalhar com estruturas bidimensionais.
// Tabela de multiplicação
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print(i * j + "\t");
}
System.out.println(); // Nova linha após cada linha da tabela
}
// Manipulando uma matriz (array bidimensional)
int[][] matriz = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Percorrendo e exibindo a matriz
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j] + "\t");
}
System.out.println();
}
19