Carregando...

Métodos em Java

Escreva um método chamado ring que imprime uma palavra: ding. Coloque essas linhas de impressão sob static void ring() com parênteses vazios. Dentro de main, escreva só ring(); — o nome, depois parênteses vazios, depois um ponto e vírgula. Compile e execute. A tela deve mostrar uma linha: ding. main não guarda o println de ding. O método guarda. Essa separação é o que esta página ensina.

As linhas que vivem sob ring

Até agora, a maior parte do seu trabalho de impressão ficava direto dentro de main. Isso ainda funciona. Um método dá a essas mesmas linhas um nome próprio. Você escreve as linhas uma vez sob esse nome. Depois main as pede escrevendo o nome como uma chamada.
Crie um arquivo de programa pequeno chamado Chime.java. O public class da primeira linha deve coincidir com o nome do arquivo: public class Chime. Não deixe um nome de classe antigo Pack ou Skip neste arquivo; o compilador espera que o nome da classe e o do arquivo coincidam.
Fora de main, ainda dentro das chaves da classe, escreva:
static void ring() {
System.out.println("ding");
}
A palavra static permanece nesta forma iniciante para que main possa chamar ring sem construir um objeto. A palavra void significa que este método não devolve um valor ao chamador — só executa o corpo. O nome ring é o rótulo que você digitará em main. Os parênteses vazios () significam que o método desta página não recebe valores de entrada. As chaves guardam o corpo. System.out.println("ding"); escreve as quatro letras d-i-n-g. Salve o arquivo antes de compilar.

Chime.java que você compila

Aqui está o programa pequeno completo desta página. main guarda só a chamada. ring guarda a impressão.

ring imprime ding

java
public class Chime {
    public static void main(String[] args) {
        ring();
    }

    static void ring() {
        System.out.println("ding");
    }
}

Na pasta que guarda Chime.java, execute javac Chime.java. Quando parênteses, chaves e pontos e vírgulas coincidem, o javac não escreve nenhuma linha própria. Depois execute java Chime — não java Chime.java. Tire o final .java do segundo comando. Os mesmos dois comandos funcionam no Windows e no macOS; esta página não precisa de outra ortografia de shell para nenhum dos sistemas. O programa deve imprimir uma linha e parar: ding. Não deve pedir que você digite. Se o terminal ficar esperando teclado, ainda há uma chamada nextLine de um exercício antigo no arquivo. Apague essa chamada e conserve ring(); em main mais o método ring acima. Uma linha errada na tela não significa que você precise reinstalar o JDK.

Percorra uma execução na ordem. Java começa em main. A única instrução em main é ring();. Essa chamada salta para o método ring. Dentro de ring, println escreve ding. Depois ring termina, e main não tem mais nada, então o programa acaba. Você não colocou System.out.println("ding"); dentro de main nesta página. Colocou sob ring e pediu pelo nome. Se a tela mostra ding, a chamada chegou ao corpo. Se a tela fica em branco depois de uma compilação limpa, main nunca chamou ring, ou main ainda guarda só chaves vazias sem chamada dentro.

Chamar ring de main mais de uma vez

Mude só main para que chame o mesmo método duas vezes:
public static void main(String[] args) {
ring();
ring();
}
Deixe o método ring em si intacto. Compile e execute de novo: javac Chime.java, depois java Chime. A tela deve mostrar duas linhas, cada uma dizendo ding. A primeira chamada executa o corpo uma vez. A segunda chamada executa o mesmo corpo outra vez. Essa reutilização é o motivo de nomear as linhas. Você não copiou o println uma segunda vez sob ring. Escreveu uma segunda chamada em main.
Se você tirar o segundo ring(); e deixar só uma chamada, a tela volta a um único ding. A definição do método não imprime sozinha. Só uma chamada de main (ou de outro método mais tarde) executa o corpo. Um arquivo que define ring mas nunca o chama de main pode compilar e ainda assim mostrar tela em branco quando você executa java Chime, porque main não tem o que fazer.

Peças do cabeçalho de um método

Nesta página o cabeçalho é static void ring(). Leia da esquerda para a direita. static deixa main chamar o método nesta forma iniciante. void significa que nenhum valor volta pela chamada. ring é o nome. () ficam vazios de propósito: esta sessão não envia palavras nem números para o método. A próxima página, parameters, coloca nomes dentro desses parênteses. A página seguinte, return, troca void quando você precisa de um valor de volta. Guarde as duas para depois. Hoje os () vazios e void bastam.

📊 Peça do cabeçalho nesta página

Peça Nesta página
static main pode chamar ring sem um objeto
void ring não devolve um valor
ring o nome que você digita na chamada
() nenhum valor entra nesta página
{ ... } o corpo que imprime ding

A chamada em main deve coincidir exatamente com o nome: ring(); com r minúsculo, parênteses vazios e ponto e vírgula. Escrever Ring(); com R maiúsculo é um nome diferente para Java. Escrever ring sem () não é uma chamada nesta forma. Escrever System.out.println("ring"); imprime as quatro letras da palavra ring; não executa o corpo do método. Conserve a chamada ring(); quando quiser ding na tela.

Um resto comum é uma demo antiga Pack for-each ainda sentada em main ao lado da nova chamada. Então a tela pode mostrar 2, 4 e 6, ou red e blue, em vez de ding — ou os dois tipos de linhas misturados. Limpe main até as chamadas ring(); que esta lição precisa. Outra confusão é colocar o método dentro das chaves de main. Os métodos desta página ficam dentro da classe, ao lado de main, não aninhados dentro de main. O javac não tratará um método enterrado dentro de main como o ring que você chama. Feche as chaves de ring antes de main terminar, e as de main antes da classe terminar, para que cada bloco possua só as próprias linhas.

Pronto para as próximas páginas

Você pode escrever static void ring(), colocar linhas println nas chaves dele e chamar ring() de main para a tela mostrar ding. Chamar duas vezes imprime ding duas vezes sem copiar o corpo. Parênteses vazios e void ficam nesta página de propósito. parameters colocará valores dentro dos parênteses. return deixará um método devolver um número ou texto a main. Essas são as duas páginas depois desta.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
7
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo