Este repositório é dedicado aos meus estudos de Java, baseados principalmente no curso completo do canal DevDojo no YouTube. Aqui você encontrará anotações, exemplos de códigos e projetos práticos conforme avanço nos conceitos.
Consolidar meu aprendizado de Java através de anotações e prática constante. O repositório também serve como material de referência para projetos futuros.
Instalação: Baixar o JDK, configurar as variáveis de ambiente e escolher uma IDE como IntelliJ ou Eclipse.
Primeiro Código:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}Exemplo de Declaração:
int idade = 25;
double salario = 4500.50;
boolean ativo = true;
char inicial = 'A';Conversão de Tipos:
double numero = 9.5;
int inteiro = (int) numero; // Conversão explícita (casting)Exemplo de Operadores Aritméticos:
int soma = 10 + 5;
int multiplicacao = 10 * 5;
double divisao = 10.0 / 3.0;Operadores Relacionais e Lógicos:
boolean maior = 10 > 5; // true
boolean condicao = (10 > 5) && (5 < 3); // falseUso de If-Else:
if (idade >= 18) {
System.out.println("Maior de idade");
} else {
System.out.println("Menor de idade");
}Switch-Case:
int dia = 3;
switch (dia) {
case 1:
System.out.println("Segunda-feira");
break;
case 2:
System.out.println("Terça-feira");
break;
default:
System.out.println("Outro dia");
}For:
for (int i = 0; i < 5; i++) {
System.out.println("Número: " + i);
}While:
int contador = 0;
while (contador < 5) {
System.out.println("Contador: " + contador);
contador++;
}For-Each:
int[] numeros = {1, 2, 3, 4, 5};
for (int num : numeros) {
System.out.println("Número: " + num);
}forma simplificada de iterar sobre elementos de arrays ou coleções. Usado quando não é necessário acessar os índices dos elementos.
Explicação:
int numRepresenta cada elemento da coleção ou array.numeros:Itera por todos os elementos do array numeros.
O que é um Array?
Uma estrutura de dados que armazena uma coleção de elementos do mesmo tipo, com tamanho fixo.
Declaração e Inicialização:
int[] numeros = new int[5];
numeros[0] = 10;
int[] outrosNumeros = {1, 2, 3, 4, 5};Iteração:
for (int i = 0; i < outrosNumeros.length; i++) {
System.out.println(outrosNumeros[i]);
}Definição e Uso:
Métodos são blocos de código que executam uma tarefa específica e podem ser reutilizados.
Declaração de um Método:
public static void saudacao() {
System.out.println("Olá, mundo!");
}Chamando um Método:
saudacao(); // Executa o método
Métodos com Parâmetros:
public static void soma(int a, int b) {
System.out.println("Resultado: " + (a + b));
}
soma(5, 3); // Chama o método com os argumentos 5 e 3Métodos com Retorno:
public static int multiplicar(int a, int b) {
return a * b;
}
int resultado = multiplicar(4, 5);
System.out.println(resultado); // Imprime 20O que é Orientação a Objetos?
Paradigma que organiza o código em torno de objetos, que possuem atributos (dados) e métodos (comportamentos).
Conceitos Principais:
- Classe: Modelo ou estrutura para criar objetos.
- Objeto: Instância de uma classe.
- Encapsulamento: Controle do acesso aos atributos e métodos.
- Herança: Reutilização de código entre classes.
- Polimorfismo: Capacidade de um objeto se comportar de várias formas.
Criando uma classe:
public class Carro {
String modelo;
int ano;
public void exibirDetalhes() {
System.out.println("Modelo: " + modelo + ", Ano: " + ano);
}
}Criando um Objeto:
public class Main {
public static void main(String[] args) {
Carro carro = new Carro();
carro.modelo = "Fusca";
carro.ano = 1969;
carro.exibirDetalhes(); // Modelo: Fusca, Ano: 1969
}
}O que é um Construtor?
Método especial chamado quando um objeto é criado, usado para inicializar atributos.
Definindo um Construtor:
public class Carro {
String modelo;
int ano;
// Construtor
public Carro(String modelo, int ano) {
this.modelo = modelo;
this.ano = ano;
}
public void exibirDetalhes() {
System.out.println("Modelo: " + modelo + ", Ano: " + ano);
}
}O que é Encapsulamento?
Prática de proteger os dados de uma classe e permitir o acesso controlado através de métodos.
Modificadores de Acesso:
private:Acesso permitido apenas dentro da própria classe.public:Acesso permitido de qualquer lugar.protected:Acesso permitido na mesma classe, pacote ou subclasses.
Exemplo de Encapsulamento:
public class Pessoa {
private String nome;
// Método Getter
public String getNome() {
return nome;
}
// Método Setter
public void setNome(String nome) {
this.nome = nome;
}
}Uso do Getter e Setter:
public class Main {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa();
pessoa.setNome("João");
System.out.println(pessoa.getNome()); // João
}
}Getters e Setters são métodos usados para acessar (get) e modificar (set) os valores de atributos privados de uma classe. Eles são fundamentais para implementar o encapsulamento em Java, garantindo controle sobre como os atributos de uma classe são acessados ou alterados.
Por que usar Getters e Setters?
Encapsulamento:
Protege os atributos, permitindo acesso controlado.
Restringe modificações diretas, garantindo consistência no estado do objeto.
Validação e Controle:
Os Setters permitem adicionar validações antes de modificar um atributo.
Exemplo: Impedir que um atributo receba valores inválidos,
Flexibilidade:
Getters e Setters podem ser personalizados sem alterar o nome do atributo.
A lógica de acesso/modificação pode mudar sem afetar o restante do código.