确定某个方法是否需要为静态或私有或非静态

时间:2019-03-18 16:54:55

标签: java

我在确定方法是静态还是私有时遇到麻烦。我曾问过不同的人,但是什么时候使用两者的背后的概念并不成立。谁能给我一个例子吗?

1 个答案:

答案 0 :(得分:4)

privatestatic是两个不直接比较的不同概念。

static表示方法或变量与类相关联,而不与类的实例相关。访问静态方法或变量时,可以使用类名进行访问。假设您的Banana类具有静态方法static String fruitName(),则可以这样调用它:Banana.fruitName()。您不需要特定的Banana,而只需要课程。

让我们说说,您有一个类似void peel()的非静态方法,该方法可以修改Banana对象的状态并设置peeled = true。在这种情况下,您不能呼叫Banana.peel(),因为您需要peel特定的Banana。像这样:

Banana niceBanana = new Banana();
niceBanana.peel();

private是一个不同的概念:它是可见性修饰符。它只是表明事物只能从类内部访问。
因此,如果您的Banana类是这样的:

class Banana {
  private int weight;
}

然后,您将只能在weight类内部访问Banana变量。对于标记为私有的其他事物(例如方法,类)也是如此。