Рубрики

Вывод программы Java | Комплект 1

Уровень сложности: Новичок

Прогнозировать выход следующих программ Java.

Программа 1

// имя файла Main.java

class Test {

    protected int x, y;

}

  

class Main {

    public static void main(String args[]) {

        Test t = new Test();

        System.out.println(t.x + " " + t.y);

    }

}

Выход

0 0

В Java защищенный член доступен во всех классах одного пакета и в унаследованных классах других пакетов. Поскольку Test и Main находятся в одном и том же пакете, проблем с доступом в вышеуказанной программе нет. Кроме того, конструкторы по умолчанию инициализируют целочисленные переменные как 0 в Java (см. Этот GFact для более подробной информации). Вот почему мы получаем вывод как 0 0.

Программа 2

// имя файла Test.java

class Test {

    public static void main(String[] args) {

        for(int i = 0; 1; i++) {

            System.out.println("Hello");

            break;

        }

    }

}

Вывод: ошибка компилятора
Произошла ошибка в выражении проверки условия цикла for. Java отличается от C ++ (или C) здесь. C ++ рассматривает все ненулевые значения как true и 0 как false. В отличие от C ++, выражение целочисленного значения не может быть размещено там, где ожидается логическое значение в Java. Ниже приведена исправленная программа.

// имя файла Test.java

class Test {

    public static void main(String[] args) {

        for(int i = 0; true; i++) {

            System.out.println("Hello");

            break;

        }

    }

}
// Вывод: Hello

Программа 3

// имя файла Main.java

class Main {

    public static void main(String args[]) {   

        System.out.println(fun());

    

    int fun() {

        return 20;

    

}

Вывод: ошибка компилятора
Как и C ++, в Java нестатические методы нельзя вызывать в статическом методе. Если мы сделаем fun () статическим, то программа прекрасно скомпилируется без каких-либо ошибок компилятора. Ниже приведена исправленная программа.

// имя файла Main.java

class Main {

    public static void main(String args[]) {

        System.out.println(fun());

    

    static int fun() {

        return 20;

    }

}
// Вывод: 20

Программа 4

// имя файла Test.java

class Test {

   public static void main(String args[]) {

       System.out.println(fun());

   }

   static int fun() {

       static int x= 0;

       return ++x;

   }

}

Вывод: ошибка компилятора
В отличие от C ++, статические локальные переменные не разрешены в Java. Смотрите этот GFact для деталей. Мы можем иметь статические члены класса для подсчета количества вызовов функций и других целей, которые служат локальным статическим переменным C ++. Ниже приведена исправленная программа.

class Test {

   private static int x;

   public static void main(String args[]) {

       System.out.println(fun());

   }

   static int fun() {

       return ++x;

   }

}
// Вывод: 1

Пожалуйста, пишите комментарии, если вы найдете какие-либо ответы / объяснения неправильными или хотите поделиться дополнительной информацией по темам, обсужденным выше.

Рекомендуемые посты:

Вывод программы Java | Комплект 1

0.00 (0%) 0 votes