Programação em Java do Zero
Java é muito usado em sistemas corporativos, Android e servidores. Seu ponto forte: um mesmo programa roda em vários sistemas operacionais. O código-fonte é compilado para bytecode e executado na JVM (Java Virtual Machine). Este artigo guia você pelo primeiro programa, variáveis, condições, repetições e classes, e mostra como compilar e executar tudo por conta própria.
Todos os exemplos aqui foram compilados e executados com Java 17, e a saída mostrada é real.
O que você precisa
- JDK 17 ou mais recente (verifique com `java -version` e `javac -version`)
- Um editor de texto, como o VS Code ou o Notepad++
Como funciona
São três passos: escreva um arquivo `.java`, compile com `javac` para obter um arquivo `.class`, e execute com `java`.
Seu primeiro programa
Crie `Hello.java`. O nome da classe precisa ser igual ao nome do arquivo. Digite este código:
public class Hello {
public static void main(String[] args) {
System.out.println("Olá, Java");
}
}
Compile e execute:
javac -encoding UTF-8 Hello.java
java -Dfile.encoding=UTF-8 Hello
Saída:
Olá, Java
`main` é o ponto de partida do programa. `System.out.println` imprime um texto. A opção `-encoding UTF-8` garante que textos em português no arquivo sejam lidos corretamente.
Variáveis e tipos
Java é de tipagem estática: você declara o tipo de cada variável.
| Tipo | Armazena | Exemplo |
|---|---|---|
| int | número inteiro | `int idade = 20;` |
| double | número decimal | `double preco = 19.5;` |
| boolean | true ou false | `boolean aprovado = true;` |
| String | texto | `String nome = "Budi";` |
Condições e repetições
Este exemplo tem uma classe `Student` que determina o conceito a partir da nota, e um laço `for` que percorre a lista de alunos.
import java.util.ArrayList;
import java.util.List;
public class Hello {
static class Student {
String name;
int score;
Student(String name, int score) {
this.name = name;
this.score = score;
}
String grade() {
if (score >= 80) return "A";
else if (score >= 70) return "B";
else if (score >= 50) return "C";
return "F";
}
}
public static void main(String[] args) {
System.out.println("Olá, Java");
List<Student> students = new ArrayList<>();
students.add(new Student("Budi", 85));
students.add(new Student("Siti", 72));
students.add(new Student("Andi", 45));
int total = 0;
for (Student s : students) {
System.out.println(s.name + " tirou conceito " + s.grade());
total += s.score;
}
System.out.println("Média das notas: " + (total / students.size()));
}
}
Saída real:
Olá, Java
Budi tirou conceito A
Siti tirou conceito B
Andi tirou conceito F
Média das notas: 67
Pontos importantes:
- `class Student` fica dentro de `Hello` como classe aninhada estática, para agrupar o código relacionado.
- `this.name = name` separa o parâmetro do campo que tem o mesmo nome.
- `total / students.size()` é uma divisão de inteiros, por isso o resultado é 67 e não 67,33. Use `double` se precisar de decimais.
Erros comuns para iniciantes
- **Nome do arquivo diferente do nome da classe:** se a classe é `public class Hello`, o arquivo precisa se chamar `Hello.java`.
- **Ponto e vírgula esquecido:** cada instrução termina com `;`. A mensagem de erro aponta para a linha.
- **Texto em português ou tailandês corrompido:** compile com `-encoding UTF-8` e execute com `-Dfile.encoding=UTF-8`.
- **`javac` não reconhecido:** verifique se o PATH aponta para a pasta `bin` do JDK.
Próximos passos
Tente criar uma pequena calculadora, guarde uma lista com `ArrayList` e divida o código em várias classes em arquivos separados, antes de partir para o desenvolvimento web com Spring Boot.
Resumo
O Java compila o código-fonte e o executa na JVM. O ponto de partida é o método `main`, as variáveis têm tipos explícitos, e as classes organizam o programa.