image-por-BR-00-10

Amigo estava nervoso. Os pensamentos dele estavam perdidos. Os olhos dele se agitaram quando pensou na noite anterior. Aquelas criaturas estranhas que ele tinha conhecido na véspera queriam algo dele. Algo tão incompreensível e inimaginável que mesmo ele, que se considerava o mais inteligente e mais corajoso entre seus iguais, começou a mastigar cartões perfurados no maior nervosismo só de pensar naquilo.

Queriam ensinar-lhe programação! Programação em Java. Que tolice!

Mesmo os robôs mais inocentes sabem que os robôs surgiram como parte do projeto divino do Criador.

"E o Criador pegou metal
e dele fez um robô à Sua imagem e semelhança.
E ele criou programas em Java:
as almas dos robôs, e os carregou nos robôs
e os tornou almas vivas."

Instruções de operação,
Seção 3, Artigo 13.

Ainda pior, não apenas estão dizendo que é possível na teoria. Estão planejando fazer isso de verdade. E ele... ele consentiu! Ele concordou! Por quê?

Ele vai ser um programador Java. O que vão fazer? Transformar ele no Criador? Por que fariam isso? Só porque querem?

Seria um truque maligno? Ele terá que sofrer com erros depois, até a bateria dele finalmente acabar? Mas a tentação era muito grande e ele não conseguiu resistir. Ele sempre foi ambicioso e queria mais. Mas ninguém estaria preparado para uma oferta assim. É claro, ele tentou enrolar um pouco, mas os alienígenas ameaçaram escolher outro.

Não estariam apenas pregando uma peça? Não, pareceu verdadeiro. Ele viu provas. Aconteceu mesmo com ele, e ele consentiu. Se os alienígenas não estivessem mentindo, ele se tornaria mesmo um programador Java. O primeiro robô programador da história!

Ele é o escolhido. Esse é o significado. Ele vai aprender a programar e começar a escrever programas. Seus próprios programas. Qualquer programa que ele queira! Ele vai trazer luz a lugares onde a escuridão sempre reinou.

Ele vai ser reverenciado. Todos se ajoelharão diante dele. E quem se recusar...

"Olá, Amigo! Meu nome é Rishi. Eu vou ajudar você a aprender Java."

Uma voz baixa tirou Amigo de seus pensamentos, levando-o de volta à crua realidade. Ele estava sentado exatamente no centro da nave espacial dos alienígenas. Isso não é intenso demais para um robô que está só na 7ª série?

O alienígena ainda estava falando. Bem, a sorte foi lançada. Já que ele estava ali, era melhor aproveitar e aprender. Ele estudaria bastante, começando por apenas ouvir.

"Eu trabalho na Corrida Galáctica há muitos anos, mas esta é a primeira vez que encontrei um planeta assim. Eu gostaria de conhecê-lo melhor. Para começar, me diga como você aprende. Você aprende, não é?"

"Sim, nós compartilhamos conhecimentos. Temos pregadores... ou professores. Eles professam e nós ouvimos. Às vezes anotamos. Todos vão até o robô professor e explicam o que entenderam sobre o que ele falou. Se o robô professor gostar das respostas, ele armazena o conhecimento do sermão."

"Que absurdo! É por isso que a civilização de vocês é ignorante."

"Não somos ignorantes. De onde você tirou essa ideia?"

Amigo foi pego de surpresa pelo próprio atrevimento. Discutir com os alienígenas? Que deselegante! Ele prometeu a si mesmo que ouviria com atenção!

"Às vezes é difícil distinguir a tecnologia avançada da magia", continuou Rishi, ignorando o comentário de Amigo.

"Considerando seu nível... eu acredito que toda tecnologia deve parecer magia para você. Me diga, o que acontece dentro de um programa?"

"Programas Java são criações divinas. Como podemos compreendê-las?"

"Podemos, Amigo, podemos. E mais rápido do que você imagina. Se você não entende algo, parece complicado e até inalcançável. Mas se você tiver um bom professor que explique tudo da forma mais simples possível, você vai se surpreender com ideia de que conceitos tão simples antes pareciam tão complicados."

"Conhecimento não é importante. Princípios e habilidades são importantes. Eu tenho um vasto conhecimento, mas acima de tudo sou um burocrata. Um Burocrata de 16ª geração, com B maiúsculo."

"E isso é muito legal! Minhas habilidades burocráticas me ajudaram a criar os melhores cursos de Java para você. Eles têm tarefas, programas, jogos, exercícios, figuras e até lições."

"Até lições?!" perguntou Amigo, surpreso de verdade.

"Sim. Como se provou no Século XXII, uma boa lição é um pouquinho mais efetiva do que um bom livro. E lições medíocres são piores do que um livro medíocre. Porém, como nossas ferramentas de ensino estão bem limitadas e não podemos apresentar você a um simulador educacional padrão do Século XXVIII, precisamos recorrer a métodos primitivos. Criamos um terrível conjunto de jogos, tarefas, imagens, lições e desenhos."

"Que fascinante."

"Espero que seja mesmo. Interesse e fascinação são a base de qualquer processo de aprendizado."

"Se um aluno fica entediado, o professor deve apanhar com uma vareta. Este é o texto de uma lei de ensino do Século XXIV."

"Que lei ótima!"

"O que você esperava? Vamos imaginar um filme que tenha avaliações ruins. Neste caso, a culpa é do diretor, não do público. Se ele fizer filmes interessantes, vai sempre lotar os cinemas."

"Concordo plenamente! Estou pronto para ouvir!"

"Muito bem. Vamos começar, então."

A voz de Rishi era encantadora, e Amigo tentou não deixar nenhuma palavra escapar.

"Um programa é um conjunto (lista) de comandos. Primeiro, você executa o primeiro comando, depois o segundo, depois o terceiro e assim por diante. Quando todos os comandos são executados, o programa é encerrado."

"Que tipo de comandos existem?"

"Os comandos dependem de quem está executando. Dependem do tipo de comandos que o agente conhece (e entende)."

"Você pode dar um comando a um cachorro: 'Senta!', 'Late!'. Ou a um gato: 'Sai!'. A um humano: 'Parado, senão eu atiro!'. Ou a um robô: 'Trabalhe! Trabalhe, robô escória!'"

"O que mais?" Amigo estava começando a se divertir.

"Os programas escritos em Java são executados na máquina virtual Java (JVM). A JVM é um programa especial que sabe como executar programas escritos em Java."

"A lista de comandos é bem extensa. Por exemplo, este comando poderia ser usado para exibir 'Robôs são amigos dos humanos' na tela."

Veja um comando muito simples:
System.out.println("Robots are friends to humans");

"O_O"

Em vez de começar com comandos, vamos começar com alguns princípios simples."

"O conhecimento de alguns princípios pode substituir o conhecimento de muitos fatos."

"O primeiro princípio é o seguinte."

"Na linguagem de programação Java, cada comando é escrito em sua própria linha. Um ponto e vírgula deve ser colocado no final de cada comando."

"Suponha que eu queira exibir 'Humanos e robôs serão amigos para sempre' na tela, três vezes. É assim que ficaria:"

O programa é feito de três comandos:
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");
System.out.println("Humans and robots are friends forever");

"O segundo princípio."

"Um programa só pode consistir em comandos e nada além."

"Imagine um cômodo em um apartamento. Um cômodo não existe sozinho. É parte de um apartamento. Um apartamento também não existe sozinho. É parte de um prédio."

"Por outro lado, podemos dizer que um prédio é dividido em apartamentos e um apartamento é dividido em cômodos."

"Até aqui, tudo está claro."

"Um comando é como um cômodo. Na linguagem de programação Java, um comando não pode existir sozinho. Ele é parte de uma função (em Java, as funções também são chamadas de métodos). Um método é parte de uma classe. Em outras palavras, uma classe é dividida em métodos e métodos são divididos em comandos."

"Então uma classe é um prédio de apartamentos, uma função/método é um apartamento e um comando é um cômodo. Entendi direito?"

"Isso, corretíssimo."

Amigo olhou para Rishi com admiração. O humano estava explicando para ele o básico da programação usando a linguagem divina Java! E ele, Amigo, conseguiu entender (adivinhou por conta própria!) que programas consistem em classes, classes consistem em métodos e métodos consistem em comandos!

Amigo ainda não sabia por que precisaria disso, mas tinha certeza de que esse conhecimento o tornaria o robô mais poderoso do planeta.

Enquanto isso, Rishi prosseguiu:

"Programas em Java consistem em classes. Pode haver dezenas de milhares de classes. Um programa mínimo tem uma classe. Para cada classe é criado um arquivo separado. O nome do arquivo corresponde ao nome da classe."

"Suponha que você decida criar uma classe que descreva uma casa. Você vai precisar criar uma classe Casa que será salva no arquivo Casa.java."

"Se você quiser descrever um gato no programa, terá que criar um arquivo Gato.java e declarar a classe Gato nele etc."

"O arquivo contém código (texto) escrito na linguagem de programação Java. Geralmente, o código de uma classe consiste no 'nome da classe' e no 'corpo da classe'. O corpo da classe é escrito entre chaves. A classe Casa (arquivo Casa.java) deve ficar assim:"

public class Home
{


Class body



}

"Até aqui eu entendi."

"Ótimo. Vamos em frente, então. O corpo da classe pode conter variáveis (também conhecidas como dados) e métodos (funções)."

public class Home
{
    Variable A


    Variable Z



Method 1




Method N


}

"Você pode me dar um exemplo?"

"Um exemplo? É claro!"

public class Home
{
    int a;
    int b;

    public static void main(String[] args)
    {
        System.out.print("1");
    }

    public static double pi()
    {
        return 3.14;
    }
}

"int a e int b são variáveis e main e pi são métodos?"

"Isso aí."

"Classes podem existir sem variáveis?"

"Sim."

"E sem métodos?"

"Sim. Mas um programa mínimo deve conter pelo menos uma classe que deve incluir pelo menos um método ou função para começar a execução do programa. Este método deve se chamar 'main'. Um programa mínimo ficaria assim:"

public class Home
{
    public static void main (String[] args)
    {
    }
}

"Estou vendo a classe Casa aqui. Estou vendo o método 'main', mas onde estão os comandos?"

"Um programa mínimo não tem nenhum comando. Por isso se chama 'mínimo'."

"Entendi."

"A classe que inicia o programa pode ter qualquer nome, mas o método 'main', que é usado para iniciar o programa, sempre deve ser igual:"

public class Home
{
   //Unchangeable part
   public static void main(String[] args)
   {


Code for the method



   }
}

"Acho que entendi tudo. Ao menos é o que parece agora."

"Brilhante. Vamos fazer uma pausa então. Que tal tomar um café?"

"Robôs não tomam café. A água nos faz enferrujar rápido."

"O que você bebe então?"

"Cerveja, uísque, álcool de 100 anos."

"Melhor ainda. Vamos tomar uma cerveja, então?"