Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 38
1

Передача значений между классами

09.06.2018, 14:08. Показов 7663. Ответов 5

Author24 — интернет-сервис помощи студентам
Подскажите, как грамотно реализовать передачу данных между классами.

В классе А есть переменная, также для этой переменной есть get и set, именно в этом классе нужно установить переменной variable значение 5.
Java
1
2
3
4
5
6
7
8
9
10
11
12
class A {
        int variable;
        public A() {
            setVariable(5);
        }
        public void setVariable(int variable) {
            this.variable = variable;
        }
        public int getVariable() {
            return variable;
        }
    }
Далее, есть класс В, в котором есть метод returnVariable где нужно получить значение переменной variable и вывести на экран.
Java
1
2
3
4
5
6
class B {
        void returnVariable() {
            A a = new A();
            System.out.println(a.getVariable());
        }
    }
Java
1
Результат вывода: null или 0
Я знаю что при new A(); создается новая ячейка в памяти, и getVariable() как бы равен 0 или null. Но есть я устанавливаю int static variable; то результат выводит: 5. Скажите, как можно обойтись без статических полей в данном случае?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2018, 14:08
Ответы с готовыми решениями:

Передача данных между классами
Делаю Telegram-бота, который будет пересылать построчно логи из файла построчно. Что есть? Код...

Работа между классами
Есть главный класс main.java, есть класс pampam.java, созданный отдельно путем "new"->"Java...

Взаимосвязи между классами
Здравствуйте, ни как не могу разобраться с взаимосвязями между классами. Нужна помощь в написании...

Настройка видимости между классами
У меня такая структура программы (s1). org controllers MainFrame.java ...

5
Автоматизируй это!
Эксперт Python
7196 / 4687 / 1222
Регистрация: 30.03.2015
Сообщений: 13,367
Записей в блоге: 29
09.06.2018, 17:48 2
Лучший ответ Сообщение было отмечено DenisStifler как решение

Решение

DenisStifler, передай классу В нужный объект с А, с уже имеющимися значениями. Например в конструкторе, тогда статик не нужен.
0
0 / 0 / 0
Регистрация: 15.06.2015
Сообщений: 38
09.06.2018, 18:14  [ТС] 3
Передаю в конструктор 5.
Java
1
2
3
4
5
class A {
    void TestA() {
        new B(5);
    }
}
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
public class B {
    private int variable;
 
    private int getVariable() {
        return variable;
    }
 
    void setVariable(int variable) {
        this.variable = variable;
    }
 
    B(String text) {
        new A().TestA();
        System.out.println(text + getVariable());
    }
 
    B(int variable) {
        setVariable(variable);
    }
 
    public static void main(String[] args) {
        new B("My ID: ");
    }
}
И все равно My ID: 0

Добавлено через 11 минут
ответил
0
2700 / 2013 / 502
Регистрация: 17.02.2014
Сообщений: 9,389
09.06.2018, 18:51 4
все, как на ладони, сам видишь https://www.cyberforum.ru/java/thread2250765.html
0
Автоматизируй это!
Эксперт Python
7196 / 4687 / 1222
Регистрация: 30.03.2015
Сообщений: 13,367
Записей в блоге: 29
11.06.2018, 10:12 5
DenisStifler, я вообще то писал о передаче объекта!
что то вроде такого
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
public class A {
    private int value;
 
    public void setValue(int value) {
        this.value = value;
    }
 
    public int getValue() {
        return value;
    }
}
 
class B {
    private A innerA;
 
    public B(A innerA) {
        this.innerA = innerA;
    }
 
    public int getValueOfA(){
        return innerA.getValue();
    }
 
    public void setValueOfA(int newValue) {
        innerA.setValue(newValue);
    }
 
    public static void main(String[] args) {
        A a = new A();
        a.setValue(555);
        B b = new B(a);
        System.out.println(b.getValueOfA());
    }
}
0
227 / 196 / 71
Регистрация: 21.10.2016
Сообщений: 441
12.06.2018, 11:49 6
DenisStifler, ???
Java
1
2
3
4
5
6
7
class Test {
 
    public static void main(String[] args) {
        B b = new B();
        b.returnVariable();
    }
}
Bash
1
2
3
const@mate ~/progs $ javac Test.java
const@mate ~/progs $ java Test
5
0
12.06.2018, 11:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2018, 11:49
Помогаю со студенческими работами здесь

Передать параметр между классами в java
Как передать параметр (значение) объекта из класса main в другой класс? Допустим можно сделать...

Вопрос по передаче переменных между классами
Здравствуйте. Есть вопрос касательно доступа к переменным и объектам из одного класса в другой. В...

XML соответствие между классами и именем команд
Есть задача: Реализовать консольную программу на Java, которая бы представляла некую реализацию...

Отношения между классами и объектами(вывод по значению)
Пишу прогу, основное уже работает. Нет мыслей только о реализации метода поиска по переменной...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru