Ви повинні зрозуміти різницю між класом та екземпляром цього класу. Якщо ви бачите автомобіль на вулиці, ви відразу знаєте, що це машина, навіть якщо ви не бачите, яка модель чи тип. Це тому, що ви порівнюєте побачене з класом "машина". Клас містить те, що схоже на всі автомобілі. Подумайте про це як шаблон чи ідею.
У той же час, автомобіль, який ви бачите, є екземпляром класу "автомобіль", оскільки він має всі властивості, які ви очікуєте: є хтось за кермом, у нього двигун, колеса.
Тож клас каже, що "всі машини мають колір", а примірник каже, що "ця машина є червоною".
У світі OO ви визначаєте клас, а всередині класу ви визначаєте поле типу Color
. Коли клас інстанціюється (коли ви створюєте певний екземпляр), пам'ять зарезервована для кольору, і ви можете надати цьому конкретному екземпляру колір. Оскільки ці атрибути є специфічними, вони нестатичні.
Статичні поля та методи поділяються з усіма примірниками. Вони призначені для значень, специфічних для класу, а не конкретного екземпляра. Для методів це, як правило, глобальні допоміжні методи (подібні Integer.parseInt()
). Для полів це звичайні константи (наприклад, типи автомобілів, тобто те, де у вас обмежений набір, який змінюється не часто).
Щоб вирішити свою проблему, потрібно інстанціювати екземпляр (створити об’єкт) свого класу, щоб час виконання міг резервувати пам'ять для екземпляра (інакше різні екземпляри замінять один одного, який ви не хочете).
У вашому випадку спробуйте цей код як початковий блок:
public static void main (String[] args)
{
try
{
MyProgram7 obj = new MyProgram7 ();
obj.run (args);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
// instance variables here
public void run (String[] args) throws Exception
{
// put your code here
}
Новий main()
метод створює екземпляр класу, який він містить (звучить дивно, але оскільки main()
створюється з класом замість екземпляра, він може це зробити), а потім викликає метод екземпляра ( run()
).
C
. Але це буде не дуже добре. Спробуйте використовувати Java так, як вона призначена для використання, як об'єктно-орієнтовану мову.