Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099
1

Объяснить тест

15.05.2017, 11:12. Показов 557. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Main { 
 
    static class X { 
        static String x = Y.y; 
    } 
 
    static class Y { 
        static String y = X.x; 
    } 
 
    public static void main(String[] args) throws Throwable { 
        Y.y = "0"; 
        System.out.println(X.x); 
    } 
}
Что выведется?

Ответ null, и вот пояснение:
1)сначала Y.y инициализирован null
2)X.x инициализируется Y.y то есть null
3)Y.y инициализируется X.x то есть null
2)после Y.y = "0" , X.x же остаётся null
результат : null

Не могу понять, почему, во-первых, сначала Y.y инициализируется, а не X.x и, во-вторых, почему присваивается null в такой ситуации, мы же явно что-то присваиваем переменной, а не просто пишем:
Java
1
2
3
    static class X { 
        static String x; 
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2017, 11:12
Ответы с готовыми решениями:

Программа на контестере проходит только 1 тест из 9. Можете объяснить, в чем моя ошибка и как ее исправить!
Объясните, в чем моя ошибка в решении задачи. Условие: 103. Подсчет войск ограничение...

Тест (Тест->Создать тест.->Модульный тест.)
есть нечто подобное в билдере ? или вообще программа создающая тесты и на VS и на билдер и пр.? и с...

СМА AEG 41030 913729401 вход в тест, Стиралка не включается , в тест не входит
Всем привет стиралка AEG 41030 913729401 Typ 93P22599 .Замок блокируется и стиралка стает в паузу....

Можно ли создать тест в программе My Test Student и запустить этот тест через Delphi?
Здравствуйте! Мне нужна помощь! Я сейчас делаю курсовую, и мне нужно сделать тест, и я хотела бы...

6
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.05.2017, 13:13 2
Цитата Сообщение от Artmal Посмотреть сообщение
во-первых
какая разница, Y сначала проинициализировать, или X?
Цитата Сообщение от Artmal Посмотреть сообщение
во-вторых
ты говоришь Y.y=X.x;
X.x==null; значит в Y.y запишется что?
1
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099
15.05.2017, 13:30  [ТС] 3
Цитата Сообщение от xoraxax Посмотреть сообщение
какая разница, Y сначала проинициализировать, или X?
Разница в том, что я хочу понять по какой логике порядок определяется. Рандом?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.05.2017, 15:03 4
Цитата Сообщение от Artmal Посмотреть сообщение
Разница в том, что я хочу понять по какой логике порядок определяется. Рандом?
бесполезный вопрос, можешь считать, что рандом
0
768 / 478 / 66
Регистрация: 22.12.2013
Сообщений: 2,403
Записей в блоге: 19
17.05.2017, 07:23 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class TestIni {
    static class Z { 
        static String z ;
        Z(){
        System.out.println("Hello from Z");
        System.out.println("z = "+z);
        }
    } 
    
    static class X { 
        static String x = Y.y;
        X(){
        System.out.println("Hello from X");
        System.out.println("x = "+x);
        }
    } 
 
    static class Y { 
        static String y = X.x; 
        Y(){
        System.out.println("Hello from Y");
        System.out.println("y = "+y);
        }
    } 
 
    public static void main(String[] args) throws Throwable { 
        Y.y = "0"; 
        System.out.println("X.x = " + X.x);
        
        X x = new X();
        System.out.println("X.x = " + X.x);
        
        System.out.println("Z.z = " + Z.z);
    } 
}
/*run:
X.x = null
Hello from X
x = null
X.x = null
Z.z = null
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)*/
Z.z - мы вообще не инициализировали.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
17.05.2017, 08:50 6
тогда уж так
Java
1
2
3
4
5
6
 static class X {
        static String x = Y.y;
        static {
            System.out.println("X");
        }
    }
0
768 / 478 / 66
Регистрация: 22.12.2013
Сообщений: 2,403
Записей в блоге: 19
17.05.2017, 11:48 7
Цитата Сообщение от xoraxax Посмотреть сообщение
тогда уж так
Согласен. Так будет точнее. Ну как я сразу не вспомнил о статической инициализации.
Сразу придет просветление.
0
17.05.2017, 11:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2017, 11:48
Помогаю со студенческими работами здесь

Тест: Тест на логику - (лучшее из когда-либо виденого)!
Нашёл классный тест, правда результат совсем не классный:( http://www.spishy.ru/test/27 Мой...

Тест на механическую понятливость. Тест Беннета
http://nazva.net/logic_test5/ Правильные ответы: 44 / 70 (62.9%) Описание: Ваш уровень...

Рассылка писем, Тест на реакцию, Реакция тест, Рассылка писем, Тест на реакцию, как сделать
Как это сделать? Необходимо отправить сообщение по электронной почте списку адресатов, с...

СМА Beko WKB 51031 PTMA сервисный тест, Помогите с входом в сервисный тест и кодами ошибок
Коллеги помогите с входом в сервисный тест и кодами ошибок.


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

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