Нестатические поля связаны с экземпляром.У вас есть одна копия этих полей для каждого экземпляра.
public class CurrencyConverter {
int rupee = 63; // non static instance field
int dirham = 3; // non static instance field
// etc.
почему мне нужно создавать экземпляр моего класса CurrencyConverter для вызова printCurrencies ()?
Без экземпляра у вас есть ноль копий, и, следовательно, нечего печатать.
Разве вы обычно не можете просто вызывать методы?
Если вы сделаете метод статичным и удалите все ссылки на поля экземпляра, тогда да, вы можете.Это работает нормально, но больше ничего не помогает.
public static void main(String[] args) {
printCurrencies();
}
static void printCurrencies() {
}
Я нахожусь в одном блоке класса?
Не уверен, что вы имеете в виду, но естьэто только один класс, и все в нем.
int rupee = 63;
int Rupee = 63;
Не делайте этого, если вам не нравится путаница.Вы должны четко обозначить различное назначение каждого поля в имени.
Я попытался изменить модификатор доступа printCurrencies () на static, но тогда мои локальные переменные не являются статичными.Почему мне НУЖНО создавать экземпляры?
Копия нестатических полей не существует, пока вы не создадите их явно.