Relacionamento entre duas classes[Resolvido]

5 respostas Resolvido
Q
Bom pessoal, estou com um pouco de dificuldade nas matérias de POO. Num exercício eu tenho que criar um relacionamento entre duas classes.

Tenho então a classe pessoa onde a pessoa tem uma reputação

Tenho a classe reputação onde receberá um valor double que será acrescentado à reputação da pessoa. No entanto não sei como fazer isso até porque sou iniciante em java.

Por enquanto criei:

public class Pessoa {

private int idPessoa;

private Reputacao reputacaoPes;
public Pessoa(){
     idPes = 0;
     reputacaoPes = null;
 }

 public int getIdPes() {
    return idPes;
}

public void setIdPes(int idPes) {
    this.idPes = idPes;
}

public Reputacao getReputacaoPes() {
    return reputacaoPes;
}

public void setReputacaoPes(Reputacao reputacaoPes) {
    this.reputacaoPes = reputacaoPes;
}

public void CalcularReputacao(Reputacao valorReputacao){
    this.reputacaoPes = (reputacaoPes + valorReputacao); //O netbeans mostra o erro aqui!
}

}

public class Reputacao {

private int idReputacao;

private double valorReputacao;
public Reputacao(){
    idReputacao = 0;
    valorReputacao = 0;
}

public int getIdReputacao() {
    return idReputacao;
}

public void setIdReputacao(int idReputacao) {
    this.idReputacao = idReputacao;
}

public double getValorReputacao() {
    return valorReputacao;
}

public void setValorReputacao(double valorReputacao) {
    this.valorReputacao = valorReputacao;
}

}

5 Respostas

fventurajr

Você está somando dois objetos em lugar do atributo reputação
Você deveria ter escrito:

Dentro da class Pessoa

public void CalcularReputacao(double valorReputacao){

<strong>// guarda o novo valor da reputação</strong>

<strong>      // que será a soma do valor informado mais o valor atual da reputação</strong>

<strong>      Double totalReputacao =</strong>

<strong>                                          (reputacaoPes.getValorReputacao() + valorReputacao);</strong>

<strong>      // Atualiza o valor de reputação</strong>

<strong>      reputacaoPes.set(totalReputacao) = totalReputacao;</strong>

}

Q

Há um erro aqui “cannot find the symbol: method set(Double) location: variable reputacaoPes of type Reputacao”
O que pode ser?

I
Solucao aceita

Traduzindo: “símbolo não encontrado: método set(Double) localização: variável reputacaoPes do tipo Reputacao”, ou seja, a classe Reputacao não tem o método set(Double). Creio que o certo seria:

reputacaoPes.setValorReputacao(totalReputacao);

Obs.1: Use nomes significativos por exemplo, em vez de reputacaoPes, use reputacaoPessoa;

Obs.2: Métodos recebem dados por meio de parâmetros (ou por meio de variáveis globais). Logo, essa atribuição não faz sentido:

reputacaoPes.set(totalReputacao) = totalReputacao;

Q

Sei o que significa a tradução, o problema é que não tem 2 meses que estou estudando java, portanto há muitas coisas que eu ainda não sei.

fventurajr

Desculpe. É reputacaoPes.set(totalReputacao); // O parâmetro já está entre parentêses.

Criado 18 de outubro de 2019
Ultima resposta 18 de out. de 2019
Respostas 5
Participantes 3