波波老师,我对您视频中capacityIndex 前面的static静态变量为啥去掉不是特别理解,为什么在类里面运用了就可以删去呢?

来源:14-7 哈希表更复杂的动态空间处理方法

v不离不弃v

2020-02-05

写回答

1回答

liuyubobobo

2020-02-05

static 变量是指这个类的所有对象共享的变量。


一个类中如果声明了一个 static 的变量,那么,这个类的所有对象,a, b, c, d, e, f, g,其对应的值,全都一样。

比如 upperTol,lowerTol 是 static 的,那么每一个 HashTable 类对象的 upperTol,lowerTol,都是这个值。


而非 static 的变量,是类成员变量,类成员变量,每个类的对象是不一样的。


比如我创建一个学生类,里面有一个 title 属性,可以声明成 static 的,赋值是 "Student",因为学生类的所有对象,对应的“职业”都是“学生”;

但是,name 属性不能是 static 的,因为每个学生的名字不一样。


同理,capacityIndex 不是一个所有对象共享的内容,一句没一个哈希表对象的不同,要取不同的值。


再仔细理解一下 capacityIndex 的意义?


继续加油!:)

1
3
liuyubobobo
回复
v不离不弃v
final 表示是否可变;static 表示是否静态(类共享还是每个类对象单独使用),两个不同的作用语义。
2020-02-07
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程