Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.09.2020
Сообщений: 9

Возврат значения из другого класса

02.10.2021, 18:20. Показов 1923. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два класса, в последнем методе необходимо вывести разницу между двумя значениями, однако после компиляции выводится строка с @ в начале. Как из класса Time вывести в класс MenuTimeApplication новое время?
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
 import java.util.Scanner;
 
public class MenuTimeApplication {
    /**
     * @param args the command line arguments
     */
    private static Time ti;
    private static Time time;
        
    public static final Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        System.out.println("Программа для работы со временем");
        int x = 0;
        String s = "";
        while (!"5".equals(s)) {
            System.out.println("1. Укажите время");
            System.out.println("2. Расчет минут");
            System.out.println("3. Расчет часов");
            System.out.println("4. Разница во времени");
            System.out.println("5. Выход из системы");
            System.out.print("Выберите нужное действие: ");
            s = sc.next();
 
            try {
                x = Integer.parseInt(s);
            } catch (NumberFormatException e) {
                System.out.println("Неверный ввод, введите номер действия");
                System.out.println(" ");
            }
            switch (x) {
                case 1:
                    MenuPrint();
                    break;
                case 2:
                    MinutePrint();
                    break;
                case 3: 
                    HourPrint();
                    break;
                case 4:
                    TimePrint();
            }
        }
        System.out.println("До свидания!");
    }
 
    public static void MenuPrint() {
        System.out.print("Введите целое количество секунд: ");
        int S = sc.nextInt();
        ti = new Time();
        ti.setSeconds(S);
        System.out.println(" ");
    }
 
    public static void MinutePrint() {
        System.out.println("Целых минут: "+(ti.getMin()));
        System.out.println(" ");
    }
 
    public static void HourPrint() {
        System.out.println("Целых часов: "+(ti.getHour()));
        System.out.println(" ");
    }    
    
    public static void TimePrint() {
        System.out.print("Введите второе целое количество секунд: ");
        Time SS = new Time();
        int T = sc.nextInt();
        SS.setSeconds(T);
        //time = new Time(HH, MM, SS);
        System.out.println("Время: "+time); 
        time = ti.getDiff(SS);
        System.out.println("Время: "+time);        
    }
}
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
 public class Time {
 
    private int Second;
    
    public Time () {
    }
        
    public Time(int Sec) {
        if (Sec > 0) {
            Second = Sec;
        } else {
            Second = 0;
        }
    }
    
    public Time (int Hour, int Min, int Sec) {
        if (Hour < 0) Hour = 0;
        if (Min < 0) Min = 0;
        if (Sec < 0 ) Sec = 0;
        Second = Hour/3600 + Min/60 + Sec;
    }
 
   
    public int getSeconds () {
        return Second;
    }  
    
    public int getMin () {
        return Second / 60;
    }
    
    public int getHour () {
        return Second / 3600;
    }
    
    public void setSeconds (int S) {
        if (S >= 0) 
        Second = S;
    }
    
    public Time getDiff (Time T) {
        return new Time (Second - T.Second);
    }                 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2021, 18:20
Ответы с готовыми решениями:

Возврат копии структуры из другого класса
Как можно копию структуры из одного класса передать в другой? (именно чтоб она изначально в private была) Сам только до такой вариант...

Возврат значения объектом класса
Может ли экземпляр класса возвращать значение своего поля без обращения к полю напрямую например class MyClass { int val = 5;...

Передача значения переменной из метода одного класса в метод другого класса
Добрый вечер! Есть основная форма Form1 в которой есть метод private void button1_Click(object sender, EventArgs e) обрабатывающий...

10
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
02.10.2021, 20:34
toString
1
1 / 1 / 1
Регистрация: 13.03.2016
Сообщений: 101
03.10.2021, 17:03
Программа же вообще не работает.
Я её в своей IDE запускаю, а она только ошибки выдает, когда хочу вычесть.
0
 Аватар для Aviz__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,488
03.10.2021, 17:18
Цитата Сообщение от Maxik93 Посмотреть сообщение
Программа же вообще не работает.
про пакеты почитай.
0
1 / 1 / 1
Регистрация: 13.03.2016
Сообщений: 101
03.10.2021, 17:36
Aviz__, так я
Java
1
import java.util.Scanner;
скопировал. А что ещё надо?

PS: выбрасывает
Java
1
2
3
Exception in thread "main" java.lang.NullPointerException
    at Solution.TimePrint(Solution.java:73)
    at Solution.main(Solution.java:43)
Добавлено через 8 минут
Java
1
2
3
4
5
6
7
8
9
10
11
  public static void TimePrint() {
        System.out.print("Введите второе целое количество секунд: ");
        Time SS = new Time();
        int T = sc.nextInt();
        SS.setSeconds(T);
        //time = new Time(HH, MM, SS);
        System.out.println("Время: "+time.toString());
        time = ti.getDiff(SS);
        System.out.println("Время: "+time.toString());
    }
}
Я сделал toString если что
0
03.10.2021, 18:38

Не по теме:

Цитата Сообщение от tikhonya Посмотреть сообщение
public static final Scanner sc = new Scanner(System.in);
Когда такое вижу - становится грустно.

0
1 / 1 / 1
Регистрация: 13.03.2016
Сообщений: 101
04.10.2021, 16:01
Цитата Сообщение от Aviz__ Посмотреть сообщение
про пакеты почитай.
Цитата Сообщение от xoraxax Посмотреть сообщение
toString
Помогите, пожалуйста

(Я выше написал)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
04.10.2021, 16:14
Цитата Сообщение от Maxik93 Посмотреть сообщение
Я сделал toString если что
а надо было прочитать что это такое и как используется в яве.
0
 Аватар для Aviz__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,488
04.10.2021, 16:34
Цитата Сообщение от Maxik93 Посмотреть сообщение
Помогите, пожалуйста
да, с радостью, дружище. тока это все бесполезно, т.к. javac тебе кричит о твоей ошибке, но ты глух((.
0
1 / 1 / 1
Регистрация: 13.03.2016
Сообщений: 101
14.10.2021, 04:26
Нас на курсах так и учат
Цитата Сообщение от Arsegg Посмотреть сообщение
public static final Scanner sc = new Scanner(System.in);
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38188 / 21123 / 4307
Регистрация: 12.02.2012
Сообщений: 34,729
Записей в блоге: 14
14.10.2021, 06:57
Цитата Сообщение от Arsegg Посмотреть сообщение
Когда такое вижу - становится грустно.
- а мне - вот от этого "Как из класса Time вывести в класс MenuTimeApplication новое время?". Вопрос свидетельствует о непонимании самой сути ООП

Добавлено через 23 секунды
Цитата Сообщение от Maxik93 Посмотреть сообщение
Нас на курсах так и учат
- плохо учат...

Добавлено через 27 минут
Вот твой код. Ищи разницу:

Класс Time

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
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javaapplication35;
 
/**
 *
 * @author Bob
 */
public class Time {
 
    private int Second;
    
    public Time () {
    }
        
    public Time(int Sec) {
        if (Sec > 0) {
            Second = Sec;
        } else {
            Second = 0;
        }
    }
    
    public Time (int Hour, int Min, int Sec) {
        if (Hour < 0) Hour = 0;
        if (Min < 0) Min = 0;
        if (Sec < 0 ) Sec = 0;
        Second = Hour/3600 + Min/60 + Sec;
    }
 
   
    public int getSeconds () {
        return Second;
    }  
    
    public int getMin () {
        return Second / 60;
    }
    
    public int getHour () {
        return Second / 3600;
    }
    
    public void setSeconds (int S) {
        if (S >= 0) 
        Second = S;
    }
    
    public Time getDiff (Time T) {
        return new Time(Second - T.Second);
    }    
    
    public String toString() { // !!!!
        return "Seconds="+Integer.toString(Second);
    }
}
Класс Main

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
package javaapplication35;
 
import java.util.Scanner;
 
/**
 *
 * @author Bob
 */
 
public class JavaApplication35 {
    /**
     * @param args the command line arguments
     */
    private static Time ti;
    private static Time time;
        
    private static final Scanner sc = new Scanner(System.in);
    
    public static void main(String[] args) {
        System.out.println("Программа для работы со временем");
        int x = 0;
        String s = "";
        while (!"5".equals(s)) {
            System.out.println("1. Укажите время");
            System.out.println("2. Расчет минут");
            System.out.println("3. Расчет часов");
            System.out.println("4. Разница во времени");
            System.out.println("5. Выход из системы");
            System.out.print("Выберите нужное действие: ");
            s = sc.next();
 
            try {
                x = Integer.parseInt(s);
            } catch (NumberFormatException e) {
                System.out.println("Неверный ввод, введите номер действия");
                System.out.println(" ");
            }
            switch (x) {
                case 1:
                    MenuPrint();
                    break;
                case 2:
                    MinutePrint();
                    break;
                case 3: 
                    HourPrint();
                    break;
                case 4:
                    TimePrint();
            }
        }
        System.out.println("До свидания!");
    }
 
    public static void MenuPrint() {
        System.out.print("Введите целое количество секунд: ");
        int S = sc.nextInt();
        ti = new Time();
        ti.setSeconds(S);
        System.out.println(" ");
    }
 
    public static void MinutePrint() {
        System.out.println("Целых минут: "+(ti.getMin()));
        System.out.println(" ");
    }
 
    public static void HourPrint() {
        System.out.println("Целых часов: "+(ti.getHour()));
        System.out.println(" ");
    }    
    
    public static void TimePrint() {
        System.out.print("Введите второе целое количество секунд: ");
        Time SS = new Time();
        int T = sc.nextInt();
        SS.setSeconds(T);
        System.out.println("Время: "+ti); 
        time = ti.getDiff(SS);
        System.out.println("Время: "+time);        
    }
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2021, 06:57
Помогаю со студенческими работами здесь

Возврат значения собственного или библиотечного класса из JNI функции
как из JNI функции вернуть значение не стандартного JNI типа а собственного или библиотечного класса? как должен выглядеть ретурн такой...

Изменить значения одного поля класса из другого поля этого же класса
Допустим, есть три класса - Main, AudioPlayer и SettingsHandler. В классе Main два поля, типов AudioPlayer и SettingsHandler...

Присваивание переменной значения из другого класса
Создал класс per.h в котором объявил переменную jiz теперь в форме хочу этой переменной присвоить число В сомом начале формы...

Ошибка при передаче значения из другого класса
При добавлении во второй класс в void update if (score &gt; 2) { ScreenSpeed=-5f; } Ошибка при компиляции. Не могли бы...

Присвоение переменной значения элемента массива из другого класса
Здравствуйте. В классе Player имеется массив public static int stats = { 40, 100, 15 }; Как присвоить переменной int в другом классе...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru