Problema com objeto [resolvido]

public class heartRates {

private String nome;
private int idade;
private double frequen, frequenciamin = 1, frequenciamax;
//inicio da parte para somente o nome

public void setNome(String name) {

    nome = name;

}

public String getNome() {
    return nome;
}
//parte do nome concluida

//necessario colocar o tipo por completo para
public void idade(Integer nasci) {

    idade = nasci;

    idade = (idade - 2012) * -1;
}

public Integer getIdad() {
    return idade;
}


public void frequencia(){
    frequen = 220 - idade;
    frequenciamin = frequen * 0.50;
    frequenciamax = frequen * 0.85;
}    
//metodo para chamar a frequencia minima
public double getFrequenciamin() {

    return frequenciamin;
}

public double getFrequenciamax() {
    return frequenciamax;
}

}


Na hora em que pesso a frequenciamax pelo métogo getFrequenciamax ele vem como 0 mesmo eu tendo alterado o valor dele na fórmula.

Após criar o objeto você deve primeiro chamar o método frequencia() para setar a frequenciamax.

public class Principal { public static void main(String args[]) { hearRates h1 = new heartRates(); h1.idade(1990); h1.frequencia(); System.out.println(h1.getFrequenciamax()); } }

hmm, os metodos que farão alguma fórmula que aparecera, por outro metodo, tmb devem ser declarados isso?

Se fosse chamar apenas o método para pegar a máxima você retornará apenas o valor da variável de frequênciamax que é um double. Se você não chamar o método frequencia() antes de getFrequenciaMax() você estará retornando o valor default do double que é 0 porque ainda não foi inicializado frequenciamax.

frequencia() irá configurar, e getFrequenciaMax() irá mostrar o valor para você.

hmm, i essa inicialização tem que ser na classe que tem o método main?

Por favor, ao postar tópicos, não deixe todas as letras do título MAIÚSCULAS.

Além disso, poste códigos com a tag code:

Finalmente, seu tópico foi mesmo resolvido? Se foi, qual foi a solução?

Primeiramente você declarou:

private double frequen, frequenciamin = 1, frequenciamax;

em frequenciamax você não inicializou com nenhum valor, logo ele inicializa com um valor default para double é 0.

mas no método frequencia(), você muda o valor da variável em:

public void frequencia(){ frequen = 220 - idade; frequenciamin = frequen * 0.50; frequenciamax = frequen * 0.85; //<- aqui, você está atribuindo um novo valor para frequenciamax }

Você pode criar um construtor que possa receber alguns argumentos e ele vai inicializar conforme o que foi passado.

new heartRates(); //isso funciona porque quando não é criado um construtor na classe, automaticamente é criado um construtor por default

E será inicializado conforme foi definido na classe.