Problema com retorno String

13 respostas
wilsontads
public class Calculos {
    Dados dados = new Dados();
    
        
        if(dados.getSexo().equals("Feminino")){
            if (dados.getImc() < 19.1) {
               dados.setImpresult(" Abaixo do peso");
            } else if (dados.getImc() >= 19.1 && dados.getImc() < 25.8) {
                dados.setImpresult("no peso normal");
            } else if (dados.getImc() >= 25.8 && dados.getImc() < 27.3) {
                dados.setImpresult("Marginalmente acima do peso");
            } else if (dados.getImc() >= 27.3 && dados.getImc() < 31.3) {
                dados.setImpresult("Acima do peso ideal");
            } else {
                dados.setImpresult("Obeso");
            }
        } else { // CASO SEJA HOMEM
            if (dados.getImc() < 20.7) {
                dados.setImpresult(" Abaixo do peso");
            } else if (dados.getImc() >= 20.7 && dados.getImc() < 26.4) {
                dados.setImpresult("no peso normal");
            } else if (dados.getImc() >= 26.4 && dados.getImc() < 27.8) {
                dados.setImpresult("Maginalmente acima do peso");
            } else if (dados.getImc() >= 27.8 && dados.getImc() < 31.1) {
                dados.setImpresult("Acima do peso ideal");
            } else {
                dados.setImpresult("Obeso");
            }
        }
    }

Segue imagem do erro..
Não consigo entender, por que ele não aceita o .equals =\

[img]http://i227.photobucket.com/albums/dd125/technosbr/imagem-28.jpg[/img]

13 Respostas

wilsontads

Esse getSexo,
retorna uma String da classe Dados ‘-’

FabricioPJ

Tente colocar esse código dentro de um método main.

wilsontads

tentei fazer o seguinte:

String sexy= dados.getSexo();
        
        if(sexy.equals("Feminino"))

mas o mesmo erro é retornado.. ;S
o sexy, aceita o getSexo
mas não consigo fazer a comparação

mario.fts

qual é a msg de erro?

wilsontads

O problema é que o meu main ja ta na classe Calculadora

wilsontads

Não tem msg de erro…
o problema é que no sugest não aparece o equals
e quando eu for a fazer o .equals, eu tenho aquele

Gerson_da_S_Lima

Pode postar o fonte da classe Dados?

wilsontads
public class Dados  {
   Calculadora calculadora = new Calculadora();
    private  double peso;
    private  double altura;
    private  String sexo;
    private  String impresult;
    private  double imc;

    public String getImpresult() {
        return impresult;
    }

    public void setImpresult(String impresult) {
        this.impresult = impresult;
    }
    

    public double getImc() {
        return imc;
    }

    public void setImc(double imc) {
        this.imc = imc;
    }
   // public boolean versexo;

    public double getAltura() {        
        return altura;
    }

    public void setAltura(double altura) {
        this.altura = altura;
    }

    

    public double getPeso() {
        return peso;
    }

    public void setPeso(double peso) {
        this.peso = peso;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        if(calculadora.jrFeminino.isSelected()){
            this.sexo ="Feminino";
        }
        else if(calculadora.jrMasculino.isSelected()){
            this.sexo="Masculino";
        }
        else{
        sexo = "Não informado";
        }

        
    }
    

}
A

O seu código da classe Calculos deve estar dentro de algum método.

Uma sugestão… você pode criar um Enum e colocar “Feminino e Masculino” assim comparar sempre usando o Enum

wilsontads

Eu naõ entendo por que ele não aceita o argumento
inclusive, pra pegar o sexo eu ja criei um objeto do tipo Calculadora, e coloquei dentro do primeiro if
conforme

Calculadora calculadora = new Calculadora();
        
       if(calculadora.jrFeminino.isSelected()){
}

mas continuo tendo o mesmo problema :cry:

[img]http://i227.photobucket.com/albums/dd125/technosbr/imagem-30.jpg[/img]

A

Você não pode fazer comparações/ações fora de método… no máxim atribuições de variáveis da classe (Sendo que o correto é fazer dentro de um construtor).

Cria um método e coloca esse código dentro dele.

wilsontads

alexfmjr:
Você não pode fazer comparações/ações fora de método… no máxim atribuições de variáveis da classe (Sendo que o correto é fazer dentro de um construtor).

Cria um método e coloca esse código dentro dele.

Noooooooooooooooffa
alguem tem uma arma ai? ‘-’
puts, e olha que ja aconteceu algo parecido uma vez, e meu professor me recomendou isso
kkk
I’m Sorry pessoal. :oops: .
e vlw Alex

felipekeller

Como disse o alex. Você precisa criar um método e colocar o código da classe cálculos dentro.

por exemplo: public Calculos(){ “código que vc escreveu” }

até porque o que você está fazendo não tem sentido. Está comparando os atributos da classe Dados() e os mesmo estão todos nulos.

Criado 10 de março de 2010
Ultima resposta 10 de mar. de 2010
Respostas 13
Participantes 6