Есть Class1, в котором создаётся экземпляр Class2:
public class Class1 {
public static void main(String[] args) {
Class2 class2 = new Class2("Hello");
}
}
Class2:
public class Class2 {
static String hello;
Class2( String hello){
this.hello = hello;
}
public static void main(String[] args) {
System.out.print(hello);
}
}
Почему при таком создании экземпляра Class2 не исполняется его метод main? Разве создание класса не должно автоматически исполнять его метод main?
Метод
public static void main(String[] args) {
// your code
}
Является, в некотором смысле, маяком для компилятора. Он позволяет определить, что класс, в котором расположен этот метод, является стартовым и с него нужно начинать работу приложения.
Создание экземпляра класса вызывает автоматический вызов конструктора этого класса:
Foo foo = new Foo();
Что подразумевает выполнения метода-конструктора в классе Foo, а не выполнения его main.
class Foo {
public Foo() {
// Конструктор
}
}
Таким образом, в случае, если вы хотите, чтобы ваш класс Class2 при создании выводил на экран переменную hello, то вам необходимо определить метод для этого:
public class Class2 {
static String hello;
Class2(String hello){
this.hello = hello;
printHello();
}
void printHello(){
System.out.println(this.hello);
}
метод main используется как точка входа приложения. Если вы хотите передать аргумент при создании объекта:
Class2 obj = new Class2("Hello");
то вам нужно добавить конструктор и в нем уже работать с аргументами. Или создать метод в классе Class2 и вызывать его уже после создания объекта, передавая в него аргумент.
obj.myPrint("Hello");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я загружаю файл audio через onActivityResult(), мне нужно его отправить на сервер (php) с помощью библиотеки volleyКак мне кодировать audio в строку base64
У меня есть какой то массив со словами, который я сортирую по длинеХочу сделать так, что бы на выходе он выдавал все возможные перестановки
Занимаюсь написанием автотестовНедавно стал очень сильно тормозить (работает по 3, 9, 49 минут, в зависимости от тестового стенда, когда раньше...
Есть Activity0, в которой создается обьект созданного мной класса (ToggleValues)Этот обьект настраивает всплывающее окно с EditText, кнопками OK и CANCEL, и запускает...