Java: Do Básico à Programação
Orientada a Objetos
Java é uma linguagem de programação de alto nível, robusta e orientada a objetos. Famosa
pelo lema "Write Once, Run Anywhere", ela domina o mercado corporativo, mobile e web.
Uma jornada completa pelos fundamentos e estrutura da linguagem.
Variáveis e Tipos de Dados
Variáveis são contêineres para armazenar valores de dados. Em Java, Exemplos de Declaração
todas as variáveis devem ser declaradas com um tipo especí co.
int idade = 30;
Tipo Descrição Exemplo double preco = 19.99;
boolean ativo = true;
int Números inteiros 10, -5 char inicial = 'J';
String nome = "Maria";
double Ponto utuante 19.99
// Exemplo de uso
boolean Verdadeiro/Falso true
double total = quantidade * preco;
char Caractere único 'A' [Link]("Total: " + total);
String Texto (Objeto) "Java"
Operadores em Java
Aritméticos int a = 10;
+, -, *, /, % (módulo)
int b = 5;
Comparação // Operações
int soma = a + b; // 15
==, !=, >, <, >=, <= boolean result = (a > b); // true
Lógicos // Lógicos
if (a > 0 && b > 0) {
&& (AND), || (OR), ! (NOT)
[Link]("Ambos positivos");
}
Atribuição
=, +=, -=, *=, /= // Incremento
a++; // a passa a ser 11
Incremento
++, --
Estruturas de Controle: Condicionais
Estrutura if-else Estrutura switch
Utilizada para decisões baseadas em condições booleanas complexas ou Ideal para testar uma única variável contra uma lista de valores constantes.
intervalos.
int dia = 2;
int nota = 85; switch (dia) {
case 1:
if (nota >= 90) { [Link]("Segunda");
[Link]("Excelente"); break;
} else if (nota >= 70) { case 2:
[Link]("Aprovado"); [Link]("Terça");
} else { break;
[Link]("Reprovado"); default:
} [Link]("Outro dia");
}
Estruturas de Repetição (Loops)
for while do-while
Ideal quando se sabe previamente o número de Repete enquanto a condição for verdadeira. Checa antes Executa o bloco ao menos uma vez antes de testar a
repetições. de executar. condição.
for (int i = 0; i < 5; i++) { int contador = 0; int i = 10;
[Link]("i: " + i);
} while (contador < 5) { do {
[Link](contador); [Link]("Executa");
// For-each (Arrays) contador++; i++;
for (String s : lista) { } } while (i < 5);
[Link](s);
} // Saída: "Executa"
Arrays (Vetores)
Arrays são estruturas que armazenam múltiplos valores do mesmo tipo em
// Declaração e Inicialização
uma única variável. Possuem tamanho xo de nido na criação.
int[] numeros = new int[5];
numeros[0] = 10;
numeros[1] = 20;
Estrutura de Índices (Iniciam em 0):
// Inicialização Direta
10 20 30 40 50 String[] nomes = {"Ana", "Bia", "Caio"};
[0] [1] [2] [3] [4] // Percorrendo com For
for (int i = 0; i < [Link]; i++) {
[Link](nomes[i]);
O acesso é feito via colchetes: numeros[0] acessa o primeiro elemento.
}
// For-each (Simplificado)
for (String nome : nomes) {
[Link](nome);
}
ArrayList: Listas Dinâmicas
Por que usar ArrayList?
import [Link];
Diferente dos arrays convencionais, o ArrayList faz parte do
ArrayList<String> lista = new ArrayList<>();
framework de coleções do Java e oferece redimensionamento
automático.
// Adicionando elementos
[Link]("Java");
Tamanho Variável: Cresce conforme novos elementos são
[Link]("Python");
[Link]("C++");
adicionados.
Manipulação Simples: Métodos prontos para inserir, remover e
// Acessando e Removendo
String linguagem = [Link](0); // "Java"
buscar.
Flexibilidade: Ideal quando não sabemos o número exato de
[Link](1); // Remove "Python"
elementos.
// Iterando sobre a lista
for (String item : lista) {
Métodos Essenciais [Link]("Linguagem: " + item);
}
add(valor) : Adiciona um elemento.
remove(indice) : Remove um elemento.
[Link]("Total: " + [Link]());
get(indice) : Recupera um valor.
size() : Retorna a quantidade de itens.
Introdução à Programação Orientada a Objetos
(POO)
A POO é um paradigma que organiza o software em torno de objetos, que combinam dados
(atributos) e comportamentos (métodos), re etindo entidades do mundo real.
Abstração Encapsulamento
Foca nos aspectos essenciais de um objeto, ignorando detalhes irrelevantes Esconde os detalhes internos de funcionamento e protege os dados contra
para o contexto atual do sistema. acessos indevidos externos.
Herança Polimor smo
Permite que uma classe herde características e comportamentos de outra, Capacidade de um objeto ser tratado de múltiplas formas, permitindo que
promovendo o reuso de código. diferentes classes respondam à mesma mensagem.
Classes e Objetos
A Classe (O Molde) O Objeto (A Instância)
De ne os atributos (dados) e métodos (comportamentos) que os objetos É a representação real da classe na memória, criada com a palavra-chave
terão. new.
public class Carro { public class Main {
// Atributos public static void main(String[] args) {
String modelo; // Instanciação
int ano; Carro meuCarro = new Carro();
// Método // Atribuição
void acelerar() { [Link] = "Civic";
[Link](modelo + [Link] = 2023;
" acelerando...");
} // Uso do método
} [Link]();
}
}
Construtores
O que são?
public class Pessoa {
String nome;
Construtores são métodos especiais chamados no momento da
int idade;
criação de um objeto (instanciação). Eles garantem que o objeto
comece com um estado válido.
// Construtor Personalizado
public Pessoa(String nome, int idade) {
[Link] = nome;
Regras Principais
[Link] = idade;
}
1. Deve ter o mesmo nome da classe.
2. Não possui tipo de retorno (nem mesmo void).
void exibir() {
3. É executado automaticamente ao usar a palavra-chave new. [Link](nome + ", " + idade);
}
}
Se nenhum construtor for de nido, o Java cria automaticamente um
"Construtor Padrão" sem argumentos. // Uso no Main:
Pessoa p1 = new Pessoa("João", 25);
[Link]();
Encapsulamento: Getters e Setters
Proteção de Dados public class Conta {
private double saldo; // Atributo protegido
O encapsulamento consiste em esconder os atributos de uma
classe e permitir o acesso apenas através de métodos especí cos.
// Getter: permite ler o saldo
public double getSaldo() {
return [Link];
}
private: Acesso restrito à própria classe. Ideal para atributos.
public: Acesso livre de qualquer outra classe. Ideal para métodos.
// Setter: permite alterar com validação
public void depositar(double valor) {
if (valor > 0) {
Vantagens
[Link] += valor;
} else {
Controle total sobre os dados, validação de valores antes da
[Link]("Valor inválido!");
atribuição e facilidade na manutenção do código. }
}
}
Conclusão e Próximos Passos
O que aprendemos Onde aprofundar
✓ Fundamentos: Variáveis e Operadores → Herança e Polimor smo na prática
✓ Controle de Fluxo e Repetição → Interfaces e Classes Abstratas
✓ Estruturas de Dados: Arrays e ArrayList → Tratamento de Exceções (Try-Catch)
✓ Introdução aos Pilares da POO → Java Collections Framework avançado
Parabéns! Você concluiu a base fundamental da linguagem Java.