[英]How to call toString() Method from one class to another class without main method in java
[英]Call a method from another class without initialization in java
我对下面的代码有点困惑。 据我了解, private ListElement<E> head
与说int head
是一回事。 如果这是真的,那么就不能在不初始化的情况下从外部 class 调用方法,因此head.setPrev()
在您说ListElment<E> head = new ListElment<>()
之前将不起作用。 这与下面的代码相矛盾。 我一定是对 java 有什么误解。Cloud 有人指出了吗? 提前致谢
public class DoublyLinkedList<E> {
private ListElement<E> head;
private ListElement<E> tail;
public DoublyLinkedList() {
head = null;
tail = null;
}
public void addToHead(E value) {
ListElement<E> e = new ListElement<>(value);
if (!isEmpty()) {
e.setNext(head);
head.setPrev(e);
} else { // empty
tail = e;
}
head = e;
}
您省略了isEmpty()
的代码。
假设一个合理的实现,那么如果isEmpty()
返回false
,那么可以保证head
不是 null,因为如果它不为空,列表中必须至少有一个元素。
head
是对ListElement
object 的引用。它开始初始化为null
。 在第一次调用addToHead()
时,对isEmpty()
) 的调用返回true
,因此执行 if-then-else 的else
分支。 最终结果是,在第一次调用之后, head
和tail
现在都引用刚刚创建的元素。
“then”分支仅在列表不为空时执行,在这种情况下,根据定义, head
不能是 null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.