Não consigo acessar os atributos do objeto no método[ Poucas linhas]

Boa noite camaradas!

[b]Minha dúvida é a seguinte, por que não consigo acessar os valores: he.getDefesah(), vi.getPoderv() ?

Na verdade eu tenho um problema de lógica aqui. Porque não sei se o método vai pegar os valores deste objeto criado na principal (segue abaixo), ou da classe que está os comando get/set.[/b]

    public static void main(String[] args) {
        //Não ao certo se devo iniciar esses dois objetos, tanto faz. Foi necessário
        
    Golpe poder = new Golpe();   
    
    Heroi he = new Heroi();
    he.setNome("Okami");
    he.getVida();
    poder.setPoderh((int)(Math.random() * 5));
    poder.setDefesah((int)(Math.random() * 10));
 
    Vilao vi = new Vilao();
    vi.setNomev("Amaterasu");
    vi.getVidav();
    poder.setPoderv((int)(Math.random() * 10));
    poder.setDefesav((int)(Math.random() * 5));
    
}
}

Fico perguntando se o erro, de acesso aos valores, está na maneira em como eles foram “setados” no objeto.

 private int danovilao (int defesahe, int danov){
       int dano; 
       dano = (defesahe - danov);  
       return dano;
     }
     
     private int danoheroi (int defesavi, int danohe){
      int dano;
      dano = (defesavi - danohe);
      return dano;
     }
        
        
        public void VS (Heroi he, Vilao vi){ 
            
        while (he.getVida() > 0 && vi.getVidav() > 0){
        int vidact = danovilao (he.getDefesah(), vi.getPoderv());
            
  
         }
                
 
        }
}

O que eu quero fazer, é que na parte (public void VS), ele acesse essa llinha e aplique o método
int vidact = danovilao (he.getDefesah(), vi.getPoderv());

Duvida boba, para os veteranos.

Abração

Olá RedGrish,

Então pelo que entendi do seu código, você não está retornando valor nenhum nos getVida() (a não ser que você já tenha colocado um valor fixo na classe), em relação aos Sets estão corretos.

Se você puder mandar o erro que dá no console seria mais fácil.

Boa noite!

Tinha setado já a variável. Eu descobri pq não conseguia pegar os valores. Precisava indicar a classe aonde estaria determinado comando. Acho isso
No mais é so, obrigado Cido

    while (he.getVida() > 0 && vi.getVida() > 0){
        int danoheroi = this.getPod() .getPoderh() - this.getPod() .getDefesav() ;
        int danovilao = this.getPod() .getPoderv() - this.getPod() .getDefesah();
      
        
         
             
  
         }
            
            
 
        }