我在确定方法是静态还是私有时遇到麻烦。我曾问过不同的人,但是什么时候使用两者的背后的概念并不成立。谁能给我一个例子吗?
答案 0 :(得分:4)
private
和static
是两个不直接比较的不同概念。
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
变量。对于标记为私有的其他事物(例如方法,类)也是如此。