Особенности того, что вы подразумевали, плюс в квадратных скобках официальное название в соответствии с глоссарием от Oracle:
Когда вы разрабатываете класс (прототип объекта), все поля и методы без модификатора static описывают конкретное свойство каждого объекта - например, скорость движения конкретного автомобиля veh1 класса Vehicle. В этом классе может быть метод getSpeedKMph(), возвращающий скорость этого автомобился в км/ч.
Если он не отмечен модификатором static, то в коде метода есть доступ к текущему объекту с помощью ключевого слова "this". Скорость считаем на основе значения из this. Получаем результат с помощью выражения "int kmph = veh1.getSpeedKMph()".
Если же сделать метод статическим с помощью модификатора static, то он будет находится не в контектсе объектов veh1, veh2 и т.д., а только в самом типе Vehicle. Его вызов будет возможен через Vehicle.getSpeedKMph(). При этом доступа к конкретному объекту через "this" в нем естественно не будет, так как он не упоминается при вызове метода. Для того что бы переделать метод на статический придется добавить аргумент для вызова этого метода (Vehicle veh) и заменить слова "this" внутри кода на, собственно, veh. И вызывать с помощью конструкции: "int kpmh = Vehicle.getSpeedKMph(veh)".