Mostra Idade pq não func, help pls

5 respostas
S

[list]import java.lang.String;
public class MostraIdade{

int idade = 0;

public int calculaIdade(int idade){
	int resultado = 2007 - idade;
	return resultado;
	System.out.println("Sua idade é: " + idade);
}

public static void main(String[] args){
	//Teste teste = new Teste();
	calculaIdade(args[0]);
}

}[/list]

att

5 Respostas

jzf

A vários erros fiz umas mudanças para funcionar e comentei umas linhas. Há várias outras maneiras e mais elegantes de se fazer um programa como esse mas esse tá bom pra você ver o que tava dando de errado ok?

public class MostraIdade{

//private int idade = 0; Vc coloca como atributo desta classe porém não usa em nenhum momento…

public MostraIdade() {

}

public int calculaIdade(String idade){

int resultado = 2007 - Integer.valueOf(idade);

return resultado;

<a href="//System.out.println">//System.out.println</a>("Sua idade é: " + idade); erro você tá mandando imprimir depois de retorna o valor. Ele nunca irá imprimir. tente colocar antes do return e vê o que acontece…

}

public static void main(String[] args){

//Instancia a classe
MostraIdade application = new MostraIdade();

int idade = application.calculaIdade(args[0]);
System.out.println("Idade: " + idade);

//calculaIdade(args[0]); O Erro aqui é que você passa uma String, porém o parametro que está definido no método que você fez é um inteiro…você deve transforma a String para um inteiro.
}

}

D

Resolvido.

Quando vc vai usar um método dentro de outro método, o método precisa ser do tipo static.

[]'s

D
<blockquote><div class="quote-author">davidhc:</div><blockquote>

import java.lang.String;

public class MostraIdade{
int idade = 0;

public static int calculaIdade(int idade){
	int resultado = 2007 - idade;
	System.out.println("Sua idade é: " + idade);
            return resultado;		
}

public static void main(String[] args){
	//Teste teste = new Teste();
	System.out.println(calculaIdade(numeroQualquer));
}

}

Resolvido.

Quando vc vai usar um método dentro de outro método, o método precisa ser do tipo static.

[]'s

clodoaldoaleixo
<blockquote><div class="quote-author">davidhc:</div><blockquote>

import java.lang.String;

public class MostraIdade{
int idade = 0;

public static int calculaIdade(int idade){
	int resultado = 2007 - idade;
	System.out.println("Sua idade é: " + idade);
            return resultado;		
}

public static void main(String[] args){
	//Teste teste = new Teste();
	System.out.println(calculaIdade(numeroQualquer));
}

}

Resolvido.

Quando vc vai usar um método dentro de outro método, o método precisa ser do tipo static.

[]'s

Errado.
A palavra reservada “static” é utilizada para definir um atributo ou um método como pertencente a classe e não a um objeto daquela classe, logo não sendo necessário uma instância da classe para se executar o método ou acessar o atributo.

Você pode usar chamar métodos de dentro de métodos sem utilizar static, no caso da duvida do amigo, havia duas interpretações:

1 - Ele esqueceu de instânciar a classe “MostraIdade”, pois como estava dentro do método main e o main tava dentro da classe, ele achou que podia chamar o método direto.

2 - Ele realmente queria se utilizar da palavra reservada “static”, mas não sabia como.

Além de outros erros que tinham no programa que já foram comentados.

D

Dentro de métodos static, vc só pode acessar métodos ou atributos do tipo static e do jeito que ele estava tentando acessar, o método mostraIdade() tinha que ser static.

Ele poderia tb instanciar a classe dele e chamar do jeito:

Classe classe = new classe();
System.out.println(classe.mostraIdade());
Criado 27 de fevereiro de 2007
Ultima resposta 28 de fev. de 2007
Respostas 5
Participantes 5