определяется как статический.
==============================

й день!

Я новичок в Java. Я не могу скомпилировать следующий код:

Появляется следующая ошибка:

`Non-static method calcArea(int, int) cannot be referenced from static content`

Что это значит? Как я могу решить эту проблему ..?

Ваш ответ будет высоко оценен. Спасибо

Основываясь на вашем совете, я сделал экземпляр, который является новым test () следующим образом:

Это верно? Какая разница, если я сделаю это ...

 что предложила Нанн, определенно решит вашу проблему. Тем не менее, я думаю, что было бы разумно, если бы вы вошли в привычку прямо сейчас, пока вы находитесь на раннем этапе изучения Java, пытаться использовать как можно меньше статических методов, за исключением случаев, когда это применимо (например, служебные методы). , Вот ваш код, модифицированный для создания экземпляра Test и вызова метода calcArea для вашего объекта Test:

По мере того, как вы углубляетесь в кодирование с использованием Java и, предположительно, учитывая, что код, который вы только что написали, начинают работать с объектами, такими как объекты многоугольников, метод, подобный calcArea, принадлежит контексту экземпляра, а не статическому контексту, поэтому он может работать на внутреннее состояние ваших объектов. Это сделает ваш код более объектно-ориентированным и менее процедурным.



 поэтому вы можете вызывать его без экземпляра класса test (`new test()`). Но это вызывает`calcArea` который НЕ является статическим: ему нужен экземпляр класса

Вы могли бы переписать это так, я думаю:

Как показывают комментарии и другие ответы, вы, возможно, не захотите идти этим путем навсегда: вы получите только статические функции. Выясните, какой на самом деле должна быть статика в вашем коде, и, возможно, сделайте себя объектом и вызовите функцию оттуда: D



 это означает, что вы можете вызывать этот метод через имя класса, например:

без создания объекта,

Вот;**Контрольная работа** это имя класса, но для этого**Calcarea ()** метод должен быть статическим, иначе вы можете вызывать нестатический метод над объектом; Вы создаете объект, создавая экземпляр класса, такого как:

здесь «а» является объектом типа Test и

можно вызвать, если метод**не** определяется как статический.



`calcArea` не должно быть статичным. Для использования других методов в главном классе вы должны создать экземпляр его.



Если нет, посмотрите, но краткий ответ заключается в том, что статический метод не может (не может) получить доступ к «this», потому что он не назначен ни одному конкретному экземпляру класса. Поэтому нельзя вызывать метод экземпляра (не статический) из статического, потому что как компьютер узнает, на каком экземпляре должен выполняться метод?