Глобальные переменные Java True (Eclipse для Android)

1

Это должно быть относительно прямым, но я все время забочусь о SQL-информации при поиске справки.

В основном у меня есть 3 класса, и каждый из них генерирует число, и я хочу получить общее число в конце. Есть ли способ сделать переменную, которую могут добавить все 3 класса без создания базы данных SQLite?

пример

  • Page1.java создает 5 → добавляет к Total

  • Page2.java создает 12 → добавляет к Total

  • Page3.java создает 10 → добавляет к Total

  • Страница4.java открывает общий

Как я уже сказал, это, скорее всего, простая проблема, но SQLite доминирует над моими поисками.

Надеюсь, ты поможешь, спасибо.

  • 0
    Каков ваш контекст здесь? Они работают в одном приложении? Можно ли получить доступ к экземплярам 3 классов из общего места?
Теги:
variables

3 ответа

2
Лучший ответ

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

Пример:

private static int mCounter = 0;

public static void addToCounter(int i)
{
    mCounter += i;
}

public static int getCount()
{
    return mCounter;
}
  • 0
    У Eclipse есть проблемы со всеми вещами, и это исправление - переименовать все, чтобы ничего не было связано. Я все еще сталкиваюсь с Java, и я понятия не имею, как я мог бы реализовать это на нескольких страницах.
  • 0
    Сортировка, спасибо большое!
0

То, что вы могли бы сделать, было бы иметь частное значение, скажем, private int count в каждом из вашего класса и его соответствующего получателя. Тогда у вас также будет метод в каждом классе, скажем, public void doSomething(){... count =...}.

После того как вы все это, в Page4 вы могли бы сделать что - то вроде:

public class Page4 {Page1 pg1 = new Page1(); Page2 pg2 = new Page2(); Page2 pg2 = new Page2(); Page3 pg3 = new Page3(); Page3 pg3 = new Page3();

 pg1.doSomething();
 pg2.doSomething();
 pg3.doSomething();

 int total = pg1.getCount() + pg2.getCount() + pg3.getCount();
 pg1.doSomething();
 pg2.doSomething();
 pg3.doSomething();

 int total = pg1.getCount() + pg2.getCount() + pg3.getCount();

} }

С другой стороны, вы можете передать целочисленную переменную классу, который будет изменен и передан следующему классу.

Вы также можете передать ссылку на какой-либо класс, который содержит фактический счетчик, и как только каждый класс (Page1, Page2) завершит выполнение того, что ему нужно, он просто ссылается на этот класс и обновляет его.

0

Не ясно, как вы называете свои занятия.

Однако, если у вас есть только 3 простых класса и одно место для вызова классов, вы можете передать свою переменную между классами и добавить к ней значения.

public class Page1 {

  public void addToVariable(int var) {
    var = var + 5;
  }
}

public class Page2 {

  public void addToVariable(int var) {
    var = var + 12;
  }
}
...

А затем вызовите методы класса с помощью переменной:

int yourVariable = 0;
Page1 p1 = new Page1();
Page2 p2 = new Page2();

p1.addToVariable(yourVariable);
p2.addToVariable(yourVariable);

yourVariable проведет общее количество, которое вы ищете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню