0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49

Использование одного экземпляра класса

20.09.2018, 14:19. Показов 912. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день!
Вот хоть убей, не могу понять как!
Суть такая. Есть игра, в игре 4 класса, а именно. Main в котором идет игра. Battle, в котором битва, Player, где лежат атрибуты игрока(сила, ловкость, ХП и тд.) и Mob, тоже что и Player, только атрибуты не определены.

Вот в чем суть. Если в main Player получает урон, тоесть ХП становится меньше, то в Battle это изменение не учитывается. Потому что я Battle я создаю нового плеера. а вот как сделать так, что бы я всегда использовал только один экземпляр класса, и все изменения, будь то полученый урон, травма, уменьшающая силу и тд, были во всех классах где я буду юзать этого плеера. помогите, Вот не могу нагуглить.

Вот небольшой пример программы:
ХП я сделал методом, потому-что в игре ХП высчитывается выносливость*100. Выносливость в начале определяется броском кубика.
В начале мы просто вычитаем из ХП 10. Потом в Location мы из ХП вычитаем число выпавшее на кости. Как видно, ХП-10 не запомнилось.
Игра:
Java
1
2
3
4
5
6
7
8
9
10
class Main {
  public static void main(String[] args) {
    Dice dice = new Dice();
    Player player = new Player();
    int playerHp = player.hp();
    playerHp = playerHp - 10;
    System.out.println(playerHp);
    Location location = new Location();
  }
}
Герой
Java
1
2
3
4
5
6
class Player {
 int hp() {
   int hp = 200-100;
   return hp;
 }
}
Любой другой класс, для проверки, сохраняются ли изменения
Java
1
2
3
4
5
6
7
8
9
class Location {
  Location(){
    Dice dice = new Dice();
    Player player = new Player();
    int playerHp = player.hp();
    playerHp = playerHp - dice.dice(6);
    System.out.println(playerHp);
  }
}
Игральная кость
Java
1
2
3
4
5
6
7
8
9
10
11
import java.util.Random;
 
class Dice {
 
  Random random = new Random();
 
  int dice(int max) {
    int dice = random.nextInt(max);
    return dice + 1;
  }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2018, 14:19
Ответы с готовыми решениями:

Использование одного экземпляра класса
Добрый день! Помогите, никак не могу накопать нужную информацию. Как использовать один и тот же экземпляр класса, одну инстанту? В...

Использование метода одного класса в другом
Вопрос вот в чем. Как в классе useEmployee использовать метод описанный в классе Employee? При запуске программы, компилятор никаких ошибок...

Как при создании экземпляра класса инициализировать переменные вложенного класса
Здравствуйте. Подскажите пожалуйста как при создании екземпляра класа инициализировать переменные вложеного класа. Добавлено через 22...

10
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.09.2018, 14:38
ну так не создавай где попало новые экземпляры, создай один и передавай его в конструктор например
0
0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49
20.09.2018, 14:49  [ТС]
xoraxax
ну так не создавай где попало новые экземпляры, создай один и передавай его в конструктор например
Я бы с удовольствием)
Но я не знаю как. Напиши, если не трудно, как.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.09.2018, 14:49
https://docs.oracle.com/javase... index.html
0
0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49
20.09.2018, 14:56  [ТС]
xoraxax
К сожалению, я только учу английский.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.09.2018, 15:01
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Location {
  Player player;
 
  Location(Player player){
    this.player = player;
  }
}
 
class Main {
  public static void main(String[] args) {
    Player player = new Player();
    Location location = new Location(player);  //передать созданный player
  }
}
0
0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49
20.09.2018, 16:02  [ТС]
JIeIIIa
Location(Player player){
this.player = player;
}
Это конструктор?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.09.2018, 16:05
Poreyzmih, да.
0
0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49
20.09.2018, 16:12  [ТС]
JIeIIIa
Java
1
2
3
4
5
6
7
8
9
10
class Main {
  public static void main(String[] args) {
    Dice dice = new Dice();
    Player player = new Player();
    int playerHp = player.hp();
    playerHp = playerHp - 10;
    System.out.println(playerHp);
    Location location = new Location(player);
  }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
class Location {
  Player player;
    Location(Player player){
    this.player = player;
  }
  Location(){
    Dice dice = new Dice();
    int playerHp = player.hp();
    playerHp = playerHp - dice.dice(6);
    System.out.println(playerHp);
  }
}

Java
1
90
В локейшене второй участок кода игнорируется, что я делаю не так?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
20.09.2018, 16:16
Цитата Сообщение от Poreyzmih Посмотреть сообщение
что я делаю не так?
Пытаетесь писать код не понимая базовых принципов.

Или создайте конструктор со всеми необходимыми параметрами, или добавляете в объект геттеры-сеттеры и после создания объекта "настраиваете" созданный экземпляр.
0
0 / 0 / 0
Регистрация: 28.08.2018
Сообщений: 49
20.09.2018, 18:15  [ТС]
JIeIIIa

Спасибо! начало положено, дальше буду гуглить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2018, 18:15
Помогаю со студенческими работами здесь

Добавление экземпляра класса в список
Добрый день, дорогие форумчане, мне дали задание : Создать пользовательский класс с полем string, создать список и заполнить его...

Непонятный пример экземпляра класса
Что значит? Выходит на 36 строке. Сам код public class delegate { private interface Graphics { void draw(); }

Запуск еще одного экземпляра программы как нового процесса.
Hi Kak zapustit drugoj java aplication kak novi(nezavisimi) process is pervovo aplicationa ?? znaju odin sposov no ne uveren 4to...

OutOfMemoryError при создании экземпляра класса в цикле
Здравствуйте! У меня есть функция, реализующая поиск на отрезке методом дихотомии. Там используется цикл, где на каждой итерации создается...

Для чего null при создании экземпляра класса?
Добрый вечер! Вопрос следующий, во второй строке кода, а именно City biggestcity = null, зачем делать именно так и почему нельзя создать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru