Java Para Noobs - Parte 2: Ensino Fundamental


Que bom ver você aqui novamente. Vamos a mais uma aula dessa linguagem que muitos consideram difícil, mas que eu vou provar que na realidade é muito simples de se evoluir.

Neste ponto você já deve saber como criar um programa e uma classe java. Então crie um arquivo chamado Testando.java e nele coloque o seguinte código:

public class Testando {

  //Olha só, eu fiz um comentário e ninguém sabe disso
  public static void main(String[] args) {
    System.out.println("Será que ninguém sabe mesmo??");
  }
}

Essa linha em verde é um comentário. É uma linha que não será interpretada pelo compilador. Você pode até xingar o Java usando isso que ele não tá nem aí. Você deve estar se perguntando o porquê de se usar comentários e provavelmente achando que eles são inúteis.

Bem, eles não são inúteis. São imprescindíveis para que haja a indentação do seu código, ou seja, para que ele se torne mais legível pois em projetos grandes ou que exijam um nível maior de complexidade; até em trabalhos em equipe a indentação do seu código é uma prática crucial para que seja bem sucedido.

Agora um exemplo de como os comentários funcionam e suas respectivas opções:

//Início do programa
public class Comentando {

  /* É aqui que seu programa começa. O método `main` é chamado quando executamos uma classe `java`. 
  Ele dá inicio ao seu programa e é um método publico ou seja que qualquer outra classe ou método 
  podem acessar. É estático, ou seja, ele pode ser acessado diretamente da definição da classe, sem 
  precisar instanciar nenhum objeto. E não possui nenhum tipo de retorno por ser void. */
  public static void main(String[] args) {

    // Agora, uma impressão
    System.out.println("Agora eu sei comentar");
  }
}

Existem 2 tipos de comentários: os iniciados por //, que são comentários referentes a uma linha e os blocos de comentários, que são iniciados por /* e terminados por */. Este segundo tipo pode lidar com múltiplas linhas. Veja como a indentação faz diferença em seu programa. Fica mais fácil de entender e de se localizar com ela.

Agora vamos a segunda parte dessa aula. Java se utiliza de vários tipos de dados para representar diferentes grandezas, sejam em medidas, peso, valor, ou até mesmo palavras e frases. Para organizar isso tudo foram criados os tipos de dados que são divididos em duas categorias:

- Dados primitivos: são dados básicos que são utilizados para construir seus algoritmos. Eles são incluídos por padrão na linguagem Java e em várias outras. Java usa os 4 tipos básicos de dados primitivos;

- Dados derivados: São dados que são derivados a partir dos dados primitivos.

Tipos de dados

- Tipo Inteiro: dados que recebem valores referentes ao conjunto dos números inteiros, incluindo números negativos e o 0;

- Tipo Real: este tipo de dado recebe valores referentes ao conjunto dos números reais incluindo os dados pertencentes ao tipo inteiro. Atenção: no Java a casa decimal é representada por um ponto;

- Tipo Lógico ou Booleano: são dados que podem receber apenas valores lógicos como verdadeiro, falso, 0 ou 1;

- Caractere: dados que recebem valores alfanuméricos e deve ser acompanhado de aspas simples. Exemplos: ‘a’ ‘b’ ‘c’;

- String: é um vetor, um conjunto de caracteres que formam palavras, frases ou textos e deve vir acompanhado de []. Exemplo: [alfabeto].

Agora vamos ver esses tipos de dados em Java:

- Int: dado de tipo inteiro;
- Byte: dado de tipo inteiro de 8 bits;
- Short: dado de tipo inteiro curto;
- Long: dado de tipo inteiro longo;
- Float: dado de tipo real ponto flutuante;
- Double: dado de tipo real ponto flutuante duplo;
- Char: dado de caractere;
- String[]: vetor de caracteres;

Agora vamos criar um programa que diga quanto dinheiro você tem na carteira. Como o dinheiro é um valor com casas decimais devemos usar float, um dado de tipo real.

public class Carteira {

  public static void main (String[] args) {
    float grana = 55.90;
    System.out.println("Eu tenho ");
    System.out.println(grana);
  }
}

Note que este algoritmo imprime a frase “Eu tenho ” em uma linha e o valor 55.90 na outra linha. Como fazer para que ele imprima a frase completa em uma única linha?

public class Carteira {

  public static void main (String[] args) {
    float grana = 55.90;
    System.out.println("Eu tenho " + grana);
  }
}

Basta colocarmos a frase “Eu tenho ” entre aspas e a variável grana fora delas, porém utilizando o sinal de + para concatenar os dois.

Já que falei sobre variáveis, acho que está na hora de explicar como elas funcionam. Quando você define um tipo para o dado que quer armazenar e dá um nome para ele, você cria uma variável. Desta forma basta apenas inicializar, ou seja, definir um valor, para que sua variável não lhe retorne erros quando for compilar o programa.

Aqui vai 3 exercícios para você fazer sobre variáveis:

1) Crie um programa com os nomes que desejar, porém que tenha uma variavel de tipo float com o valor 27.45, uma de tipo inteiro com valor 55 e uma de caractere com a letra C. Feito isso você deve criar 3 linhas de impressão, cada uma com sua devida variável;

2) Volte ao programa que fez no exercício anterior e comente o que cada linha faz usando o tipo de comentário que desejar;

3) Pegue esse mesmo programa e mude todos os println para printf. Use o utilitário de quebra de linha \n onde desejar pular uma linha. Escreva mais textos se desejar. Porém, use as quebras de linhas com o \n;

A essa altura do campeonato, você provavelmente já é um expert em imprimir com Java, mas como você faz para receber dados do usuário? Existem milhares de funcionalidades dentro das funções do Java. Porém, para adicionar essas funções no seu código é necessário importar. Mas não importe todas, pois além de demorar muito para compilar, é um desperdício de recursos. Importe apenas o que for necessário para seu programa.

Saiba também que você pode criar suas próprias funções e importar para o seu programa. Mas isso é assunto para outra aula. Para importar uma função utilizamos a chamada de função import:

import pacote_a_ser_importado;

Para efetuarmos o recebimento dos dados, precisamos da classe Scanner que fica dentro do pacote java.util. Então realizaremos a importação dessa maneira:

import java.util.Scanner;

Agora precisamos declarar um objeto e inicializar ele. Vamos chamar esse objeto de ler:

Scanner ler = new Scanner(System.in);

Agora podemos ler dados do usuário. Lembre-se: Java é uma linguagem fortemente tipada, ou seja, maiusculas e minusculas fazem diferença e também os tipos de dados. Se atente a isso. Dessa forma, a leitura dos dados deve ser bem tipada também.

Para ler um número inteiro deve-se digitar o seguinte código para uma variável de nome numero:

numero = ler.nextInt();

Agora quero ver isso rodando na sua máquina. Mãos à obra:

import java.util.Scanner;

public class Idade {

  public static void main (String[] args) {
    Scanner ler = new Scanner (System.in);
    int tempo;
    System.out.println("Quantos anos você tem?");
    tempo = ler.nextInt();
    System.out.printf("Eu tenho " + tempo " anos \n");
  }
}

Agora vamos efetuar alguns cálculos matemágicos utilizando Java. Primeiro, vamos aos famigerados sinais:

- Soma: +
- Subtração: -
- Divisão: /
- Multiplicação: *
- Resto da divisão: %

A matemática continua a mesma. Só vai mudar a forma com que você calcula. Vamos pegar o mesmo código de antes como exemplo. Porém vamos efetuar algumas contas simples depois disso:

import java.util.Scanner;

public class Idade {

  public static void main (String[] args) {
    Scanner ler = new Scanner (System.in);
    int anonasc;
    int anoatual;
    int idade;

    System.out.println("Em que ano estamos?");
    anoatual = ler.nextInt();
    System.out.printf("Em que ano você nasceu?");
    anonasc = ler.nextInt
    idade = anoatual – anonasc;
    System.out.println("Você tem " + idade " anos");
  }
}

Este é um programa que calcula sua idade por meio da subtração entre sua data de nascimento e o ano atual. As resoluções de soma, subtração e multiplicação serão similares a esse código:

var a + var b = var c

Nesses casos, quando não houverem casas decimais, todas as variáveis podem ser declaradas como tipos inteiros. Mas quando for uma divisão var a / var b = var c, os dois primeiros índices podem ser inteiros, porém o resultado deve ser sempre de tipo real, float ou double. Ou o compilador te retornará um erro, uma vez que nem sempre a divisão entre dois numeros inteiros será um numero inteiro.

Então temos o seguinte código. Você tem 4 maçãs para dividir entre 2 amigos. Uma vez que você não quer as maçãs:

public class Dividir {

  public static void main (String[] args){
    int macas = 4;
    int amigos = 2;
    float divide = 0;
    divide = (macas/amigos);
    System.out.println("Cada amigo tem " + divide " maçãs");
  }
}

Espero que tenha compreendido as 4 operações básicas em Java. Agora chegamos ao fim da nossa aula, mas não antes de eu deixar alguns exercícios para você:

- Faça 4 programas que recebam 2 números do usuário e que cada um realize uma operação soma, subtração, multiplicação e divisão. Me envie no grupo ou nos comentários abaixo com o seu nome. Se tiver alguma dúvida é só chamar.

Este curso se baseia na apostila do Java Progressivo e no livro Use A Cabeça! - Java. Adaptei o texto tentando o deixar compreensível ao máximo sem acrescentar conteúdos irrelevantes no momento.

Este curso busca ensinar uma forma direta e sem curvas de aprender Java da forma com que se pensa, tornando a linguagem algo mais natural\ com uma curva de aprendizado suave. Lembre-se: copiar e colar não vai te fazer você se tornar um programador. Você só aprende a programar através de repetição e memorização, além de exercitar seu raciocínio lógico para elaborar as fórmulas necessárias para que seu programa realize o que foi proposto.

Até a próxima aula!


Voltar para o blog