System.out.println вне любого метода в java
Мой вопрос: мы не можем написать выходной оператор за пределами main в java? Если я заключу его в {} фигурные скобки, то я не получу ошибки, но если я его непосредственно напишу, я получаю сообщение об ошибке. почему так?
public class abc
{
int a=3;
int b=0;
System.out.println("this statement gives error"); //Error!!
{System.out.println("this works fine");}
public static void main(String args[]) {
System.out.println("main");
abc t=new abc();
}
}
Я пробовал писать его в основном, он работает. Почему он не работает без метода?
Ответы
Ответ 1
Когда вы заключите его в фигурные скобки, вы помещаете его в блок инициализатора, который запускается при создании экземпляра класса. Никаких утверждений, кроме переменных деклараций/инициализации, не может выполняться вне методов или блоков инициализации в Java.
Ответ 2
A Class
может иметь только атрибуты или методы.
A class - это проект, из которого создаются отдельные объекты.
int a=3; // attributes
int b=0; // attributes
System.out.println("this statement gives error"); //Error!!
{System.out.println("this works fine");} // init block whenever an object is created.
// since it is inside { }
Ответ 3
Он называется инициализатором экземпляра. Он запускается в дополнение к конструктору каждый раз, когда создается экземпляр объекта.
Существует еще один тип блока, который называется Статический инициализатор, когда вы добавляете статическое ключевое слово до {}. Этот статический инициализатор запускается только при первом загрузке класса.
Итак, вы можете написать код в этих двух блочных и классных функциях члена.
Кроме того, единственное место, которое осталось, предназначено для объявления членов класса и инициализации.