this - 我并没有真正得到构造函数方法
问题描述
public class LinkedListNode {
public LinkedListNode next;
public LinkedListNode prev;
public LinkedListNode last;
public int data;
public LinkedListNode(int d, LinkedListNode n, LinkedListNode p) {
data = d;
setNext(n);
setPrevious(p);
}
public LinkedListNode(int d) {
data = d;
}
public LinkedListNode() { }
public void setNext(LinkedListNode n) {
next = n;
if (this == last) {
last = n;
}
if (n != null && n.prev != this) {
n.setPrevious(this);
}
}
public void setPrevious(LinkedListNode p) {
prev = p;
if (p != null && p.next != this) {
p.setNext(this);
}
}
- 这门课的表现
setNext
和setPrevious
工作情况如何? - 在这些情况下,单个“this”指的是什么?
- 那 if 语句是干什么用的?
解决方案
this
是一个指向当前类的常量变量,所以它基本上以public class LinkedListNode
某种方式引用。该setNext
方法将next
变量设置为n
,然后检查当前类是否与last
变量相同,最后检查是否n
不为空并且该类的prev
变量n
不是当前类,然后setPrevious
在n
该类中调用。
setPrevious
将prev
变量设置p
为之前出现this
在p
类中的变量n
,然后如果之前的类引用不为 null 并且next
之前的类引用的变量不是现在的当前类引用this
,它调用setNext
.
推荐阅读
- reactjs - React Material UI KeyboardDateTimePicjer 上的 maxDate 有问题
- javascript - 为什么 deepEqual 方法不适用于此代码?
- foreach - SwiftUI,在 ZStack 中使用 ForEach 会导致屏幕闪烁
- java - 三维列表
- javascript - 如何正确使用带有 Typescript 的 React Context Provider?
- c++ - 如何在现有数组的顶部分配新的动态数组限制
- sas - 使用调用符号
- python - 烧瓶重定向到错误页面的奇怪问题
- java - 如何使用 Video Uri 在 Android 上压缩视频
- angular - 角度重定向但不刷新