gpt4 book ai didi

java - java中.next和.getNext()有什么区别?

转载 作者:行者123 更新时间:2023-12-02 04:18:06 51 4
gpt4 key购买 nike

我正在为交换链表中节点的算法编写伪代码,并有一个简单的问题:.next 和 .getNext() 之间有区别吗?

其中一个是我知道的方法,但我想知道它们是否相同:

如果不是,您能解释一下为什么其中一个比另一个更有效率吗?谢谢!

Algorithm swap(x, y):
Node n <-- head
while( n.getNext() != x ) do
n <-- n.getNext()
Node v <-- y.getNext()
n.setNext(y)
y.setNext(x)
x.setNext(v)

----------------------

Algorithm swap(x, y):
Node n <-- head
while( n.next != x ) do
n <-- n.next
Node v <-- y.next
n.setNext(y)
y.setNext(x)
x.setNext(v)

最佳答案

也许您的意思是直接访问字段 next 和使用访问器方法 getNext() 间接访问字段之间有什么区别,是这样吗?

理论上,直接按名称访问效率更高,因为它是访问对象中数据的最直接方式。但它违反了封装性,因为类的字段应该隐藏实现细节。您也无法分离读/写访问,因为访问修饰符不够细粒度。

使用附属方法访问是很好的封装。它使您可以自由地修改实现细节,例如将下一个节点存储在文件而不是内存中,而不会影响类的用户。您还可以扩展该类,并使用专门用于特定目的的内容覆盖逻辑。

由于封装在面向对象编程中非常重要,因此强烈建议不要直接访问字段,而使用访问器方法是首选方法。

关于java - java中.next和.getNext()有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085997/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com