@turdubekov
Студент

Как получить доступ полям класса?

Все привет!

есть два класса: Hero и Dragon
мне надо получить доступ к полям класса Dracon из класса Hero,
чтобы сделать формулу: Урон = сила_героя + оружие_героя - защита_дракона
как это сделать?

public class Dragon {
    private int hp;        // Жизнь
    private int defence;    // защита
    private int strength;   // Сила
    private int weapon;     // оружие
    private int shield;      // щит

    public Dragon(int hp, int defence, int strength, int weapon) {
        this.hp = hp;
        this.defence = defence;
        this.strength = strength;
        this.weapon = weapon;
        this.shield = shield;
    }
}


import java.util.Scanner;

public class Hero {

    private int hp;        // Жизнь
    private int defence;    // защита
    private int strength;   // Сила
    private int weapon;     // оружие
    private int shield;      // щит



   public Hero(int hp, int defence, int strength, int weapon, int shield){
       this.hp = hp;
       this.defence = defence;
       this.strength = strength;
       this.weapon = weapon;
       this.shield = shield;
   }

    void heroAttack(){
        System.out.println("Нажмите  1 чтобы атаковать дракона!");
        Scanner sc = new Scanner(System.in);
        int user = sc.nextInt();

        if (user == 1){
            int damage = strength + weapon;
        }
    }
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Hanneman
Вместо рыбы вот вам удочка: почитайте про getters and setters в Java. Именно через getter вы получите доступ к полям класса. Я уверен, вы разберётесь. Да и на пользу пойдёт.
Ответ написан
@Araya
Reflection API :D
Ответ написан
Комментировать
Либо сделать переменные public, либо создать геттер
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Рекомендую Вам прочитать какую-нибудь книгу по Java, а также изучить принципны ООП, в частности инкапсуляцию. Вам хорошо подсказали, что лучше прочитать про геттеры и сеттеры вместо того, чтобы дать вам ответ
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы