[RESOLVIDO]Erro netbeans com metodos

Ola a todos, criei esse algoritmo que no netbens da erro nos metodos, respostaUm() , respostaDois() e respostaTres(),
Quando vou compilar me da o erro e pergunta se quero compilar assim mesmo, eu compilo e o programa roda normalmente.
Tem algum erro de logica mesmo que nao estou vendo ou é o netbens?
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package projetodia;

import java.util.Scanner;

/**
*

  • @author Leo Ramos Andrade 20151101844
    */
    public class Program {
    public Program(){
    Scanner t = new Scanner(System.in);
    int nome;
    System.out.println(“Escolha um nome:”);
    System.out.println(“1 - Joao”);
    System.out.println(“2 - Marcelo”);
    System.out.println(“3 - Leonardo”);
    nome = t.nextInt();
    switch(nome){
    case 1: System.out.println("Voce selecionou: "+nome);
    respostaUm();
    break;
    case 2: System.out.println("Voce selecionou: "+nome);
    respostaDois();
    break;
    case 3: System.out.println("Voce selecionou: “+nome);
    respostaTres();
    break;
    default: System.out.println(“Voce quer me enganar? safadu.”
    + " Numero invalido!”);
    break;

     }
    

    }
    public respostaUm() {
    System.out.println(" Esta e a resposta 1! Joao gosta de sapatos caros!!");
    }
    public respostaDois() {
    System.out.println(“Esta e a resposta 2! Marcelo gosta de roupas caras!!”);
    }
    public respostaTres() {
    System.out.println(“Esta e a resposta 3! Leonardo nao gosta de gravatas borboletas”);
    }

}

Que erro?

Cade o seu método main?

Construtor não foi feito para colocar todo o código nele

No main eu só puxo a classe program oras,
erro - Invalid method declaration, return type required

Ué, como vou saber que você tem outra classe?

Você não colocou o tipo de retorno nos métodos

Então coloque void antes do nome do método (nesse exemplo o void se enquadra)

public void respostaUm() {
System.out.println(" Esta e a resposta 1! Joao gosta de sapatos caros!!");
}
public void respostaDois() {
System.out.println("Esta e a resposta 2! Marcelo gosta de roupas caras!!");
}
public void respostaTres() {
System.out.println("Esta e a resposta 3! Leonardo nao gosta de gravatas borboletas");
}

Problema resolvido! :+1:

1 curtida

Seus métodos estão sem tipo de retorno definido e o Java é fortemente tipado então ele precisa que você defina um tipo;

  public respostaUm(){}

Não é o mesmo que

  public void respostaUm(){}

ou

  public String respostaUm(){ return "Resposta";}
1 curtida

Quando um método não tem retorno, que é o caso de

 public Program(){

É quando é método construtor.

1 curtida

funcionou sim, esse void ai acho que nao entendi direito como funciona, pensei q void era pra nao ter retorno.

1 curtida

Exatamente,o void indica que não tem retorno.

Se seu método não terá a keyword return, então quer dizer que ele não retornará nada e se ele não vai retornar nada, você tem que declarar void antes do nome do método

public void esteMetodoNaoRetorna()
{
    System.out.println("Este método não precisa retornar nada, então vou usar void");
}

Se alguma resposta te ajudou, considere marcar como solução e colocar [RESOLVIDO] no nome do tópico

1 curtida

Entao, quando imprime essa frase nao é o retorno ?
tipo vai retornar uma string pro usuário
isso ai que eu confundo.

Não, isso é o corpo do método, return é quando tem a palavra return

public int esteMetodoRetornaUmNumeroInteiro(){
    return 5;
}