Java 如何使用另一个类中的方法?

Java 如何使用另一个类中的方法?,java,cannot-find-symbol,Java,Cannot Find Symbol,我想我已经正确地设置了我的方法,以给出房间的总数,但它不会编译。我哪里出错了 公共级酒店{ 公共单间; 公共休息室; 公共休息室; 公共酒店(国际号码单人房、国际号码双人房、国际号码客房){ 单人房=单人房数量; 双人间=数量双人间; 国王房间=数字房间; } 公共静态酒店=新酒店(1,3,5); int totalRooms=GetTotalRooms(伊万酒店); 公共静态void main(字符串[]args){ 系统输出打印LN(总房间); } } 公共类GetTotalRooms{ 公

我想我已经正确地设置了我的方法,以给出房间的总数,但它不会编译。我哪里出错了

公共级酒店{
公共单间;
公共休息室;
公共休息室;
公共酒店(国际号码单人房、国际号码双人房、国际号码客房){
单人房=单人房数量;
双人间=数量双人间;
国王房间=数字房间;
}
公共静态酒店=新酒店(1,3,5);
int totalRooms=GetTotalRooms(伊万酒店);
公共静态void main(字符串[]args){
系统输出打印LN(总房间);
}
}
公共类GetTotalRooms{
公共静电室;
公共国际酒店(酒店){
totalRooms=Hotel.singleRooms+Hotel.doubleRooms+Hotel.kingRooms;
返回房间;
}
}

为了让它编译,我应该修改什么?我收到一个找不到符号的错误,我不知道原因。

看起来您对
静态的概念感到困惑。无法从
静态
上下文访问非静态值

这段代码应该可以解决问题

public class Hotel { 
    //...
    static int totalRooms = GetTotalRooms.getRoomsCount(IvanHotel);
    //...     
} 

class GetTotalRooms { 

    public static int getRoomsCount(Hotel yourHotel) {
        totalRooms = Hotel.singleRooms + Hotel.doubleRooms + Hotel.kingRooms;

        return totalRooms;
    } 
} 

如果您是初学者,我建议您阅读大量示例代码,并从基本概念开始。不要跳过基本概念。

您需要多读一点,了解
静态的目的是什么以及为什么要使用它。按照编写代码的方式,您不能以静态方式调用非静态方法,您首先需要创建
GetTotalRooms
的实例,然后才能这样做
GetTotalRooms
,因此在编写代码的情况下,您需要这样做

//...
private GetTotalRooms getTotalRooms = new GetTotalRooms();
int totalRooms = getTotalRooms.GetTotalRooms(IvanHotel);
//...
或者,您应该按照Doc所说的,将该方法也设置为您调用的
static

我还建议你练习你的命名约定,首先你的类名听起来像一个方法名,然后你有一个与你的类名完全相同的方法,你的
Hotel
类很好,但是
GetTotalRooms
类是个问题

我宁愿将其命名为
RoomsList
,因为您想返回您在
酒店中拥有的房间总数

你的类名应该引用一个对象,
GetTotalRooms
不是一个对象,在你的例子中是一个等式。然后你的方法名应该引用一个动作,它应该以一个小写字符开头,你为你的方法选择的名称很好,它确切地告诉我当我调用它时会发生什么,只要让它以小写字母开头,这样它就不会看起来像一个类

您可以在此处阅读更多信息: