С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для AngelxSword
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 19

Обратиться и изменить переменную из другого класса

17.04.2015, 08:09. Показов 2945. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как можно поменять переменную из другого класса?
Мне уже сказали что это можно сделать с помощью setI, getI, я попробовал но не получилось....


Код класса,в которой хранится переменная img(рисунок)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package ru.java2e;
 
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
 
import javax.swing.ImageIcon;
 
public class Player {
    
    public static final int MAX_V = 100;
    public static final int MAX_TOP = 10;
    public static final int MAX_BOTTOM = 550;
    
    
    
    
    Image img_c = new ImageIcon(getClass().getClassLoader().getResource("res/main.png")).getImage();
    Image img_u = new ImageIcon(getClass().getClassLoader().getResource("res/up.png")).getImage();
    Image img_d = new ImageIcon(getClass().getClassLoader().getResource("res/down.png")).getImage();
    Image img_dead = new ImageIcon(getClass().getClassLoader().getResource("res/main_dead.png")).getImage();
    Image img = img_c;
    
    public Rectangle getRect() {
        return new Rectangle(x, y, 138, 164);
    }
    
    int v = 0;
    int dv = 1;
    int s = 0;
    
    int x = 30;
    int y =100;
    int dy = 0;
    
    int layer1 = 0;
    int layer2 = 1200;
    
    
    public void move() {
        s += v;
        v += dv;
        if(v <= 1) v = 1;
        //if(v >= 10) dv = 0;
        if(v >= 5 & v<=25) dv = 1;
        if(v >= 20) dv = 0;
        if(v >=40) dv = -1;
        
        
        if (v >= MAX_V) v = MAX_V;
        y -= dy;
        if (y <= MAX_TOP) y = MAX_TOP;
        if (y >= MAX_BOTTOM) y = MAX_BOTTOM;
        if (layer2 -v <= 0) {
            layer1 = 0;
            layer2 = 1200;
            
        } else {
        layer1 -= v;
        layer2 -= v;
    }
            
    }
    
    public void keyPressed(KeyEvent e) {
        int key = e.getKeyCode();
        if (key == KeyEvent.VK_RIGHT) {
            dv =1;
        
        }
            if (key == KeyEvent.VK_LEFT) {
                dv =-1;
                
        }
            if (key == KeyEvent.VK_UP) {
                dy =10;
                img = img_u;
            
        }
            if (key == KeyEvent.VK_DOWN) {
                dy =-10;
                img=img_d;
                
            
        }
        
    }
    
    
    
    public void keyReleased(KeyEvent e) {
        int key = e.getKeyCode();
        if (key == KeyEvent.VK_RIGHT || key == KeyEvent.VK_LEFT ) {
            dv =0;
        }
        
        if (key == KeyEvent.VK_UP || key == KeyEvent.VK_DOWN ) {
            dy =0;
            img= img_c;
        }
        
        }
        
    }
Я хочу, что бы при условии выполнения это функции, картинка менялась на img_dead, но в этом классе свой img есть, в итоге совсем не то меняется.
название класса Road
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void testCollisionWithEnemies() {
    
    Iterator<Enemy> i = enemies.iterator();
    while (i.hasNext()) {
        Enemy e = i.next();
        if (p.getRect().intersects(e.getRect())){
            //i.remove();
            //[b]img = img_dead;[/b]
            
            JOptionPane.showMessageDialog(null, "U lost!!!");
            System.exit(1);
            
        }
        
    }
    
    
}
Вопрос №2
я хочу что бы при выполнении условия( тут я знаю как обратиться к другому классу это p.v ) значение Thread.sleep менялось на заданное ниже.( if(p.v>=40 .....
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void run() {
    
    while(true) {
        Random rand = new Random();
        try {
            Thread.sleep(rand.nextInt(11000));
            enemies.add(new Enemy(1200, rand.nextInt(500), rand.nextInt(30),this));
            if (p.v >= 40){
                
                
                Thread.sleep(rand.nextInt(100));
                enemies.add(new Enemy(1200, rand.nextInt(500), rand.nextInt(30),this));
                
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
Заранее спасибо и объясните пожалуйста поподробнее, потому что это мой первый код.

Добавлено через 16 часов 40 минут
ап!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2015, 08:09
Ответы с готовыми решениями:

Из одного класса обратиться к свойству progressBar из другого класса (основного окна)
Привет! :) Помогите пожалуйста нубу (мне). У меня есть два класса. Первый (основной), его код: namespace CMS { ///...

Обратиться из класса к методу другого класса
Доброе время суток коллеги есть вопрос как обратиться с одного метода класса к другому Пример: class A{ protected $a; ...

обратиться к переменной другого класса
Есть класс и в нем объявлены переменные, можно ли их записать в другом классе и работать с ними в начальном классе? table.h #ifndef...

5
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
17.04.2015, 08:34
слипы, итераторы
это не твой код...иди читай книги, список тут
0
 Аватар для AngelxSword
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 19
20.04.2015, 08:21  [ТС]
Код писался на основе видео-уроков и был редактирован мной, я и не говорил что я его с 0 сделал
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
20.04.2015, 09:40
Паблито как всегда четок и краток и по сути прав: если это твой первый код, то он должен заканчиваться словами "..world!" и состоять из нескольких строк всего. Java это не то явление, где можно "галопом по Европам". Начни с простого, с основ, так быстрее пойдет. Иначе ты постоянно будешь такие вопросы задавать.
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
20.04.2015, 10:55
Я тоже соглашусь с высказавшимися выше =) Суть большинства видео уроков отображает эта картинка

Начните разбирать основы ООП, это необходимая база знаний для дальнейшего развития.
0
 Аватар для AngelxSword
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 19
20.04.2015, 15:11  [ТС]
Я пока серьёзно не занимаюсь этим, просто появилось свободное время, захотелось что то сделать.
Возникла проблема, решил обратиться к знающим людям, мб помогут...
То, что нужно смотреть основы джава и читать Блинова я прекрасно знаю, но вопрос чу-чуть не в том...
В первом вопросе совместными усилиями разобрались, но 2ой остался для меня загадкой.
Так же возник ещё 1 вопрос: После выполнения условия TestCollisionWithEnemy всё приложение останавливается, а я хочу сделать, что бы одна гифка воспроизвелась... Пытался усыпить пару классов, пока ничего не вышло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2015, 15:11
Помогаю со студенческими работами здесь

Как получить private переменную класса, функцей членом другого класса
Игра змейка: Есть класс поле в котором содержится размеры поля: class field { private: int FIELD_START; int...

Как обратиться к классу из другого класса
Доброго времени суток ! Собственно сабж. Как мне обратится к OrderDetail.Get_workorder(); созданому в др. классе ? public...

Как обратиться к переменной из другого класса?
Как получить значение spinnerOfHeight package net.net78.zarsite; import java.awt.event.ActionEvent; import...

Как обратиться к ui форме из другого класса?
Имеются 2 совершенно никак не связанных класса: MainWindow и AnotherClass. как из AnotherClass обратиться к объекту UI?

Как обратиться к форме другого класса
Как обратиться к форме другого класса, а именно показать ее пр нажатии кнопки из другой формы. Как делается это я знаю, но не знаю как и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru