Я новичок в java, и я только начал использовать темы вчера. У меня проблема с доступом к переменным в потоке, который я хочу отобразить. Короче говоря, я сделал (дерьмовые) часы l oop, которые запускаются при запуске программы. После определенных действий у меня есть метод, который проверяет время, но я не знаю, как получить доступ к переменным в потоке, чтобы сделать это возможным.
Это мой основной метод:
public static void main(String[] args) {
Thread timeRunning = new Thread(new Clock());
Clock clock = new Clock();
Commands command = new Commands();
timeRunning.start();
command.whatsTheTime();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
command.whatsTheTime();
Это мои часы l oop:
public class Clock implements Runnable{
public void run(){
//Time
int seconds = 0;
int minutes = 0;
int hours = 0;
//"Clock" loop
while(hours < 24) {
while (minutes < 59) {
while (seconds < 59) {
seconds++;
try {
Thread.sleep(30);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
if(seconds == 59) {
minutes++;
seconds = 0;
}
if(minutes == 59) {
hours++;
minutes = 0;
}
}
}
}
}
Это метод whatsTheTime ():
public void whatsTheTime() {
System.out.println("The time is: " + clock.hours + ":" + clock.minutes + ":" + clock.seconds);
}
Но это не работает. Я хочу знать, как я могу получить доступ к секундам , минутам и часам из run () в классе Clock. Извините, если это очень простой вопрос, но я не знаю, как получить к нему доступ. Я пытался найти решение, но не могу его найти. Возможно, я ищу что-то не то, но, как я уже сказал, я всего лишь несколько месяцев на java, поэтому поиск решения - это одна из вещей, которые мне нужны, чтобы поправиться.