Exercicio 4.14 apostila fj-11 (Programa 1)

3 respostas Resolvido
java
F

Será que alguém consegue ajudar? Vi que já existe este tópico, mas somente sobre os Programas 2 e 3. Programa 1 (Pag. 51) Acho que estou errando no método, mas vamos lá.

class Pessoa {

    String nome;
    int idade;

    void fazAniversario (int valor) {
        int novaIdade = this.idade++;
           this.idade = novaIdade;     
    }
}

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

        Pessoa pessoa = new Pessoa();

        pessoa.nome = "Marcela";
        pessoa.idade = 36;

        System.out.println (pessoa.fazAniversario());
    }    
}

ERRO LISTADO NO TERMINAL:

TestaPessoa.java:10: error: cannot find symbol

System.out.println (fazAniversario());

^

symbol:   method fazAniversario()

location: class TestaPessoa

1 error

MBPro-de-Fabiano-Moreno-3:PAG 51a Default$ javac TestaPessoa.java

TestaPessoa.java:10: error: method fazAniversario in class Pessoa cannot be applied to given types;

System.out.println (pessoa.fazAniversario());

^

required: int

found: no arguments

reason: actual and formal argument lists differ in length

1 error

3 Respostas

wldomiciano
Solucao aceita

Vi dois erros.

Vc definiu o método fazAniversario(int valor) de forma que ele requer um argumento do tipo int, mas não hora de invocá-lo, não passou argumento nenhum.

O método fazAniversario() não retorna nada, vc o definiu como void. Ai vai dar erro quando vc passa ele pro println. Ele teria que retornar alguma coisa para fazer sentido e funcionar.

M

Foi o que o wldomiciano disse. Você pode transformar em um método com retorno ou pode retirar o argumento do método fazAniversario().

F

muito obrigado!

Criado 11 de janeiro de 2017
Ultima resposta 12 de jan. de 2017
Respostas 3
Participantes 3