Совместное использование одной и той же переменной в разных классах

Вот что хорошо работает в JavaScript. Он находится в строке, потому что это то, что ожидал виджет Dojo.

Он соответствует десятизначному номеру NANP Северной Америки с дополнительным расширением. Пробелы, тире и периоды являются принятыми разделителями.

"^(\\(?\\d\\d\\d\\)?)( |-|\\.)?\\d\\d\\d( |-|\\.)?\\d{4,4}(( |-|\\.)?[ext\\.]+ ?\\d+)?$"
1
задан Sébastien Temprado 24 March 2019 в 19:46
поделиться

2 ответа

У вас есть простые методы для достижения этой цели.

1) Используйте число в качестве статической переменной и получите доступ к методу. (Используйте метод Synchronized для увеличения значения для многопоточного приложения)

2) Используйте AtomicInteger для увеличения. (Синхронизация не требуется) ( https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html )

Если вы нужно больше объяснений, пожалуйста, дайте мне знать.

0
ответ дан Manuja Jayawardana 24 March 2019 в 19:46
поделиться

Вы можете использовать решение, упомянутое выше @Mikita Berazouski. Или вы можете использовать Статический метод . Таким образом, вам не нужно расширять сервер.

Статические методы - это методы в Java, которые можно вызывать без создания объекта класса. На них ссылается само имя класса или ссылка на объект этого класса.

Ваше решение будет таким:

public class Test {
    public static void main(String... args) {
        Client c = new Client();
        c.run();
        Business s = new Business();
        s.run();
        System.out.println(Server.number);
    }
}

class Server {
    public static int number = 0;
    public static void run ()
    {
        number ++;
    }
}

class Client  {
    public void run() {
        Server.run();
    }
}

class Business {
    public void run() {
        Server.run();
    }
}

попробуйте код выше здесь , и вы проверите результат.

Другое возможное решение, так как вы объявляете число как статическое в классе Server, заключается в написании кода, подобного этому, это позволяет вам делать разные вещи в пустом прогоне каждого класса:

public class Test {
    public static void main(String... args) {
        Client c = new Client();
        c.run();
        Business s = new Business();
        s.run();
        System.out.println(Server.number);
    }
}

class Server {
    public static int number = 0;
}

class Client  {
    public void run() {
        Server.number ++;
    }
}

class Business {
    public void run() {
        Server.number ++;
    }
}
0
ответ дан DINA TAKLIT 24 March 2019 в 19:46
поделиться
Другие вопросы по тегам:

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