Вам нужно немного больше читать, чтобы понять, какова цель static
и почему вы ее используете. То, как вы написали свой код, вы не можете вызывать нестатический метод статическим способом, вам сначала нужно создать экземпляр вашего GetTotalRooms
, прежде чем вы сможете сделать это GetTotalRooms
, так что в случае с вашим кодом вы бы написать это
//...
private GetTotalRooms getTotalRooms = new GetTotalRooms();
int totalRooms = getTotalRooms.GetTotalRooms(IvanHotel);
//...
или вы должны следовать тому, что сказал Док, и сделать метод вашим вызовом static
.
Я бы также порекомендовал вам практиковать ваши соглашения об именах, сначала ваше имя класса звучит как имя метода, а затем у вас есть метод с точно таким же именем вашего класса, ваш класс Hotel
в порядке, но GetTotalRooms
класс это проблема,
id, скорее, назовите его как RoomsList
, так как вы хотите вернуть общее количество комнат, которые у вас есть в Hotel
имена ваших классов должны ссылаться на Object, GetTotalRooms
это не объект, это уравнение в вашем случае. Тогда имя вашего метода должно относиться к действию, и оно должно начинаться с символа в нижнем регистре, имя, которое вы выбрали для вашего метода, хорошо, оно точно говорит мне, что произойдет, когда я его вызову, просто начните с нижнего регистра так что это не будет похоже на класс.
Подробнее об этом можно прочитать здесь:
Кодирование как у Шекспира
и
DZone