谁帮我解释下代码,看不懂 帮我看看代码,看不懂
谁帮我解释下代码,看不懂
// 我认为这是一个自定义容器
private static class Node { // 自定义私有类, 同上.
U item // 声明范型 item
Node next // 声明自身私有类
Node() { // 构造函数,清空成员变量
item = null
next = null
}
Node(U item, Node next) { // 带两个参数的构造函数,赋值操作
this.item = item
this.next = next
}
/**
* 方法:判断是否结束
* @return 如果两个成员变量都为NULL 则 返回 true
*/
boolean end() {
return item == null && next == null
}
}
private Node
public void push(T item) { // 一层套一层,
top = new Node
// 这种一层一层的感觉
}
public T pop() {
T result = top.item // 找到当前那一层的 item , 赋值返回
if (!top.end()) { // 如果里面的成员变量是否都为空
top = top.next // 如果不为空,就指向它里面的那个 Node 对象
}
return result
}
public static void main(String[] args) {
LinkedStack
for (String s : "Phasers on stun!".split("")) { // 用""做拆分条件来拆分字符
lss.push(s) //一个字符一个字符的赋进去
}
String s // 声明字符串
while ((s = lss.pop()) != null) { // 如果那一层的 item 有值就输出
System.out.println(s)
}
}
}
宏观的讲,LinkedStack 这个类是一个自定义容器类,容器里面放一个自定义类型类型的变量,和它本身的实体,就相当于实体里面还有实体,所以我说是一层又一层的关系。
所以你给你代码,输出的是反向的字符,因为它正向的一个字符一个字符的赋值进去,然后把上一个实体装进去,一层一层的,我觉得没必要,Java 本身有那么多优秀的 容器类,完全可以满足需要,没必要写自定义的。
如果还不明白,明天9点半过后至下午5点我Hi都在,可以回答你的问题。
帮我看看代码,看不懂
uint32_t、uint16_t应该是定义的32位和16位数据类型,你找找宏定义应该能找到,*(__IO uint16_t *) (Bank1_LCD_C)意思是把Bank1_LCD_C转为uint16_t*型的指针,再把index赋给这个指针所指的地址,((uint32_t)0x60000000)就比较简单了,就是把数据0x60000000转换为uint32_t类型。至于_IO就是这个了:#define __IO volatile /*!< defines read / write permissions */