在java中调用用户定义类中存在的方法,以下哪种编程实践更好?

问题描述 投票:-2回答:1
Stack newStack = new Stack();
newStack.push(0);

Stack.push(0);

注意:这里Stack是一个用户定义的类,在java中手动实现堆栈的概念,而不是预定义的。

java
1个回答
1
投票

这就允许拥有多个堆栈用于不同的目的。

Stack newStack = new Stack();
newStack.push(0);

当使用这个时,我们可以只拥有一个堆栈。

Stack.push(0);

我更喜欢第一种方式,因为它允许同时初始化多个堆栈,而第二种方式做不到。


0
投票

在第一个例子中。push 的非静态方法。Stack 类。 为了使用 push 方法,你必须创建一个实例的 Stack 类。

Stack newStack = new Stack();
newStack.push(0);

相当于匿名实例的代码是。

new Stack().push(0);

在这种情况下,这将是一种无用的,因为你最终会想要 pop 您创建的堆栈。

在第二个例子中。push 的静态方法。Stack 类。

Stack.push(0);

南都-拉吉的回答是正确的,你只能有一个。Stack 而不是一个以上的非静态的 push 方法。

创建和使用非静态方法一般是比较好的编程实践,不过也有一些情况,比如Java的 Math 类,其中静态方法效果更好。

© www.soinside.com 2019 - 2024. All rights reserved.