Introdução ao Java, Conceitos Básicos de Programação

Introdução ao Java, Conceitos Básicos de Programação
Tempo de leitura: 3 min de leitura
Link copiado!

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.

OperadorSignificadoExemplo
+Adiçãoa + b
,Subtraçãoa, b
*Multiplicaçãoa * b
/Divisãoa / b
%Resto da divisão inteiraa % b
,Negativo (unário)-a
+Positivo (unário)+a
++Incremento++a ou a++
Decremento—a ou a—
OperadorSignificadoExemplo
==Iguala == b
!=Diferentea != b
>Maior quea > b
>=Maior ou iguala >= b
<Menor quea < b
<=Menor ou iguala <= b
OperadorSignificadoExemplo
&&E lógicoa && b
||Ou lógicoa || 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.