Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

Programa: Código comentado do primeiro programa - o que são Classes e Métodos

Agora que você já é um programador Java - pois já fez um programa -,
vamos entender o que você fez, o que é aquela sopa de letrinhas e para que serve cada parte daquele código bizarro.

Isso inclui uma explicação automobilística sobre Classes e Métodos.

O que são Classes e Métodos em Java

Já neste primeiro exemplo vou falar de dois dos mais importantes conceitos de Java, que você vai ouvir pelo resto de sua vida de programador Java:
classes e métodos.

Classe é a base de tudo, em Java. Classe é algo mais abstrato, é uma definição geral. Um exemplo ou instância de uma classe é um objeto.
Classe é algo mais genérico, objeto é algo mais específico.
Daí vem o fato de Java ser orientado à objetos.

Parece ser complicado e confuso, mas vou explicar e você vai ver que é simples.
Na verdade foi feito pra ser simples, pois imita nossa vida.

O carro, por exemplo, é uma classe. É algo mais geral.
Um exemplo de objeto, é o fusca. Um Honda Civic é um objeto da classe carro, mas é um objeto diferente do objeto fusca.
Bem óbvio, né?

As classes possuem atributos que todos os objetos possuem, mas que não são, necessariamente, iguais. Mas podem ser. Como assim?

Voltemos para os carros.
A classe carros tem o ítem 'motor'. Então o objeto fusca tem motor e o objeto Honda Civic também tem motor, embora esses motores sejam diferentes, pois a característica dos motores são diferentes.
A classe carros tem o ítem portas. No fusca, esse valor vale 2, pois só tem duas portas (a não ser que você tenha turbinado seu fusca ou uma porta tenha caído). Porém, outros objetos da classe Carro tem 4 portas.

Isso ajuda muito na hora de criar grandes projetos. Imagina que você tenha um trabalho numa empresa, com milhares de funcionários e serviços.
Fácil fácil seu programa em Java vai possuir milhares de objetos, mas se você se organizar bem só vai ter algumas dezenas de Classes.
Assim, você organiza o 'mundo' (que no caso é a empresa), em blocos, as Classes.
Então, quando fizer uma alteração, faz nas classes que todos os objetos, automaticamente, herdarão essa mudança.

Passe a ver o mundo como Classes e Objetos.

Por exemplo, antigamente só existiam sexo masculino e feminino.
Hoje em dia, é comum ter bem mais opções, como indefinido.

E aí, vai em cada um dos milhares de funcionários e colocar mais essa categoria?
Não ué, vai lá na classe 'funcionarios' e adiciona a opção 'indefinido' como mais uma opção de gênero.

Pronto, todos os objetos (ou seja, os funcionários, as pessoas), herdarão e terão essa característica, pois todos os objetos são instâncias da classe. Eles são a classe. Se a classe mudou, o objeto mudou.


Código comentado do primeiro programa em Java

No nosso caso, a nossa classe é 'Primeira'.


Agora vamos aos métodos!
Métodos são...métodos! Ou seja, são meios, ou jeitos de se fazer uma coisa. Em outras linguagens, são chamados de funções (C, C++) ou sub-rotinas (Perl).

O que o nosso método faz? Ele imprime (escreve, mas se acostume com a palavra imprimir) o texto 'Meu primeiro programa em Java!'.
Métodos podem calcular soma, subtração, integração etc. Existem métodos de formatação do HD, métodos de backup, métodos de invasão, métodos pra mostrar um texto, um menu, métodos que sorteiam um número...métodos são tarefas.
É uma porção de código que faz algo bem definido.
É um método pra fazer algo.

No nosso caso, o sistema ('System') joga pra fora ('out'), que no caso é a tela, na forma de escrita ('print') a mensagem 'Meu primeiro programa em Java!.

Se você gosta de se questionar, então a resposta é sim. Assim como sai ('out'), pode entrar ('in'), que é quando o sistema ('System') recebe dados de você usuário ou de um arquivo - 'System.in', que você verá no futuro.

E sim, ele não escreve só na tela. Também é comum escrevermos, ou printarmos, para arquivos, para criarmos um registro de erros e eventos (logs), por exemplo.
Por hora, não se estresse com os 'public', 'static', 'void', 'String[]', 'args', eles são esmiuçados detalhadamente aos poucos por partes no âmago de suas entranhas íntimas e pessoais.

Agora as partes mais importantes desse começo:
1. O seu programa, pra rodar, precisa ter a 'main'.
A primeira coisa que o Java faz pra rodar é procurar o 'public static void main(String[] args)'. É daí que ele inicia o seu programa.

2. A classe que contém o método main, 'Primeira', precisa ter o mesmo nome do projeto.
Lembre-se que o nome do nosso projeto é 'Primeira' e a classe é 'public class Primeiro {}'
Ou seja, o método main tem que estar em algum lugar dentro desse par de colchetes aí.

Estes são os erros mais comuns que vejo em fóruns, que os iniciantes cometem. Esquecerem da main.

Agora vou usar com você o melhor método de aprendizado, o teste. Testem:
1. Em vez de main, escreva Main e compile/rode.
2. Em vez de 'public class Primeiro...' escreva 'public class primeiro' e compile/rode
3. Tirem o ';', um '{' ou '}' e compile/rode
4. Que a diferença entre os códigos abaixo?



Esse:
public class Primeiro 
{

    public static void main(String[] args) {
        System.out.println("Meu primeiro programa em Java!");
    }
}

Pra esse:
public class Primeiro
{

    public static void main(String[] args)
    {
        System.out.println("Meu primeiro programa em Java!");
    }
}

E em relação ao original?
public class Primeiro {

    public static void main(String[] args) {
        System.out.println("Meu primeiro programa em Java!");
    }
}


Se você achava que tinha amigos, te apresento o que é amigo de verdade: debugger
Esse cara te aponta os erros que você cometeu. As vezes mostra até a linha e exatamente o que você errou.
Sempre leia os erros e tente entender o que ele está dizendo.

Façam os testes e obterão as respostas, é o primeiro exercício. Leia a mensagem de erro e interprete.
Se fizerem isso e constatarem os erros e a diferença, caso exista, com seus próprios olhos, irão aprender por experiência própria, que é o melhor jeito de se aprender algo.

E parabéns, tem muita gente 'avançada' que ainda erra essas coisas básicas.

3 comentários:

son of the Sun disse...

o metodo main é 'Primeiro' nao? e não 'Primeira'

Fernando disse...

Foi a mesma coisa que pensei.

Anônimo disse...

É tudo a mesma coisa. Só o abre e fecha chaves que torna o código mais legível dependendo de como está acostumado a fazer.

Contribuir com o Java Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo


Tutoriais de Java