Introdução ao Java, Conceitos Básicos de Programação
- 6 de março de 2009
Java nasceu na Sun Microsystems em 1995 e rapidamente chamou a atenção de quem programava na época. Não foi só por ser mais uma linguagem, mas porque veio acompanhada de um ambiente inteiro de execução e bibliotecas, pensado para ser seguro, estável e simples de distribuir. O slogan “write once, run anywhere” apareceu porque o código é compilado para bytecode e roda em cima da JVM. Em outras palavras, você compila uma vez e executa onde houver uma máquina virtual disponível.
Outro ponto que sempre me atraiu é a orientação a objetos tratada como base da linguagem. Tirando os tipos primitivos, tudo gira em torno de classes e objetos. Para começar bem, vale entender quatro ideias que voltam o tempo todo: abstração para esconder detalhes que não importam, encapsulamento para proteger estado e expor comportamento, herança para reaproveitar código quando faz sentido e polimorfismo para permitir que objetos diferentes respondam à mesma mensagem de jeitos próprios.
A sintaxe assusta menos do que parece. Declaração de variáveis segue o padrão tipo e nome, com opção de listar várias do mesmo tipo. Fica assim:
int i;
float total, preco;
byte mascara;
double valorMedio;
char opcao1, opcao2;
Comentários podem ser em linha ou em bloco. Nada de mistério aqui.
// comentário em linha
/*
comentário
em bloco
*/
Os operadores básicos cobrem o que você já espera em contas do dia a dia, comparações e lógica booleana. Deixo tabelas curtas para consulta rápida.
| Operador | Significado | Exemplo |
|---|---|---|
| + | Adição | a + b |
| , | Subtração | a, b |
| * | Multiplicação | a * b |
| / | Divisão | a / b |
| % | Resto da divisão inteira | a % b |
| , | Negativo (unário) | -a |
| + | Positivo (unário) | +a |
| ++ | Incremento | ++a ou a++ |
| — | Decremento | —a ou a— |
| Operador | Significado | Exemplo |
|---|---|---|
| == | Igual | a == b |
| != | Diferente | a != b |
| > | Maior que | a > b |
| >= | Maior ou igual | a >= b |
| < | Menor que | a < b |
| <= | Menor ou igual | a <= b |
| Operador | Significado | Exemplo |
|---|---|---|
| && | E lógico | a && b |
| || | Ou lógico | a || b |
| ! | Negação | !a |
Para quem está começando, laços e decisões são o que fazem o programa ganhar vida. O for é direto e funciona bem para contagens e iterações simples.
public class ExemploFor {
public static void main(String[] args) {
for (int j = 0; j < 10; j++) {
System.out.println(j);
}
}
}
O if resolve casos em que você precisa decidir entre caminhos e pode ser encadeado sem complicação.
public class ExemploIf {
public static void main(String[] args) {
int j = 1;
if (j == 1) {
for (j = 0; j < 10; j++) {
System.out.println(j);
}
}
}
}
Quando a escolha depende de um valor específico, o switch deixa o código limpo e fácil de ler.
public class ExemploSwitch {
public static void main(String[] args) {
if (args.length > 0) {
switch (args[0].charAt(0)) {
case 'a':
case 'A': System.out.println("Vogal A"); break;
case 'e':
case 'E': System.out.println("Vogal E"); break;
case 'i':
case 'I': System.out.println("Vogal I"); break;
case 'o':
case 'O': System.out.println("Vogal O"); break;
case 'u':
case 'U': System.out.println("Vogal U"); break;
default: System.out.println("Não é uma vogal");
}
} else {
System.out.println("Não foi fornecido argumento");
}
}
}
Parte do apelo do Java está na execução gerenciada. A linguagem tem coleta automática de lixo para cuidar da memória, tratamento de exceções bem definido e uma máquina virtual que evoluiu muito em desempenho com JIT e otimizações em tempo de execução. Junte a isso uma biblioteca padrão extensa e multiplataforma e você tem um conjunto que atende de aplicações web a serviços empresariais.
Se você está começando agora, meu conselho é praticar um pouco por dia. Brinque com os exemplos, mude valores, crie classes simples e faça pequenos programas que imprimam algo útil. Entender o fluxo, os tipos e o modelo de objetos cedo torna tudo que vem depois mais fácil.