Я пытаюсь решить это.
В моем проекте у меня есть файл с именем 'Hello.java', который является файлом с аргументом main () и который вызывается при компиляции программы. И у меня есть еще один файл с именем MyObj.java, в котором есть только случайный класс, который я создал для тестирования возможностей Java-ов. Я пытаюсь сделать это:
class Hello
{
public MyObj an_obj;
public static void main(String[] args)
{
setObj();
}
public void setObj()
{
this.an_obj.set_size(7);
say("size is " + this.an_obj.get_size());
}
}
В классе MyObj.java у меня есть этот код:
public class MyObj
{
private int size;
public MyObj()
{
//do nothing
}
public void set_size(int new_size)
{
this.size=new_size;
}
public int get_size()
{
return this.size;
}
}
Это, однако, дает ошибку:
"Невозможно сделать статическую ссылку на
нестатический метод setObj () из
введите Hello ".
Если я добавлю 'static' к объявлению setObj, то есть
public static void setObj()
Тогда я получаю:
Невозможно сделать статическую ссылку на
нестатическое поле an_obj.
У меня вопрос: как мне выполнить то, что я делаю, то есть установить и получить поле объекта, если единственный способ запустить программу - это метод Main, а метод main может вызывать только статические методы? Что, как я могу сделать что-либо вообще с этим ограничением возможности вызывать только статические методы ?????