‫欢迎回来｡
‫在这段视频中, 我们将检查汽车和当地人, 也断点多一点｡
‫我们在上一个视频中看到了如何使用断点,
‫我们在创建本地列表或称为friends的本地变量时创建了一个断点, 该断点仅在main方法中可用｡
‫当然, 我们可以继续创建更多的断点｡
‫所以我只需要创建两个断点｡
‫现在, 假设我们要查看断点｡
‫在这个例子中, 这非常简单, 因为我们只有这两个断点, 对吧？
‫所以它们一直都是可见的｡
‫但现在想象一下我们这样做｡
‫所以我们总结一下｡
‫我们真的只是想在更高的层次上分解它｡
‫现在我们只看到这一个断点｡
‫但是其他断点在哪里呢？
‫你能做的就是开始｡
‫然后或按5开始调试｡
‫然后你可以做的另一件事是你可以检查你的断点｡
‫所以control alt b是快捷方式, 或者你可以直接从debug debug Windows断点转到这里的Windows断点｡
‫这将打开这个小选项卡, 它显示了不同的断点｡
‫因此, 我们在程序中有一个断点, CSS第10行, 字符13, 在程序CSS第21行,
‫字符13有另一个断点｡
‫好吧, 我会的
‫这是我们的两个断点｡
‫现在, 为了去掉断点, 我们可以做的是, 当然, 我们可以在断点上按｡
‫在左手, 我们可以单击它｡
‫正如你所看到的, 它完全从我们的断点消失了｡
‫一旦我们这样做了, 我们也可以只是停用断点｡
‫现在你可以看到中间是白色的｡
‫让我用这个断点来做｡
‫你可以看得更清楚｡
‫现在你可以看到它不再是全红的了｡
‫它不再充满红色｡
‫里面全是白色的｡
‫好吧, 我会的
‫所以它还在, 但已经失效了｡
‫因此, 您可以随时使用此窗口停用断点｡
‫使用此断点窗口｡
‫好吧, 我会的
‫所以这在我们的具体情况下可能没有用, 因为它是一个非常短的程序｡
‫好吧, 我知道了
‫我们这里没什么事｡
‫但是, 一旦你有一个程序, 你有断点在许多不同的文件, 这就派上用场了,
‫它真的帮助你在那里｡
‫好吧, 我会的
‫接下来我想给你们看的是,
‫非常重要的一点, 特别是要找出bug所在的位置, 那就是使用局部变量和顺序.
‫好吧, 我会的
‫我们从命令开始｡
‫您可以看到, 我们在这里有一个新窗口, 名为“订单”｡
‫订单将自动向我们显示当前断点附近的变量, 以便显示当前相关的变量｡
‫这里有一个args变量, 就是我们main方法顶部的这个变量.
‫这个args变量, 然后我们有这个朋友的变量, 它现在是空的.
‫一旦我们进入下一步, 我们就跨过去｡
‫我们现在可以看到这一点｡
‫我们有朋友和派对朋友｡
‫所有这些都自动显示了断点周围的变量, 这些变量接近我们当前所在的位置｡
‫好吧, 我会的
‫这里我和朋友们在一起, 你可以看到我们有七个条目｡
‫然后我们有派对朋友, 在这一点上是空的｡
‫但是一旦我们跨过去, 我们就可以看到现在的方友是什么样的人在看着｡
‫好吧, 我会的
‫所以我们有这个变量count和这个变量party friends, 其中有一些额外的信息｡
‫您可以看到, 此时聚会好友的数量为零｡
‫如果你想了解更多, 你可以在这里看到类型, 它是一个系统集合列表｡
‫然后我们有这个聚会的朋友数, 也是零｡
‫好吧, 我会的
‫伯爵, 这一个在这里, 这一个在这里.
‫然后我们有派对朋友, 计数为零｡
‫好吧, 我会的
‫这就是派对朋友的基本概念｡
‫然后是计数｡
‫所以这是两码事｡
‫如您所见, 有聚会好友计数,
‫这是聚会好友的数量, 还有聚会好友列表, 这是一个当前没有任何好友或任何条目的列表｡
‫好吧, 我会的
‫这就是我们的汽车｡
‫当你查看你当前拥有的变量时, 它非常方便｡
‫现在, 你还可以做的是, 你可以修改它们｡
‫好吧, 我会的
‫因此, 您可以修改此处的值｡
‫您可以继续输入5, 并在将该值更改为其他值后测试程序的行为｡
‫你可以看到, 我把它改成了5, 现在我可以看到, 好的, 我的程序会怎么做,
‫一旦我添加了一个, 或者输入了一个值, 比如说, 5？
‫好吧, 我会的
‫所以这是一回事｡
‫另一个我想给你们看的是当地人｡
‫但在此之前, 我想先给你看一下手表｡
‫我们来看看手表, 手表打开了这个｡
‫一个音符, 看起来和我们刚才看到的很相似｡
‫现在您可以在底部添加要观看的项目｡
‫汽车仍然存在, 所以它只是一个新的标签在这里的最底部｡
‫这是一号表｡
‫这是因为, 断点占用了一些空间, 而且它很重要｡
‫但是我们可以在任何时候把它们都拖出来放在旁边, 这样我们就可以比较它们了.
‫假设我想添加我的朋友, 那么我只需要将派对朋友添加到我的列表中｡
‫好吧, 我会的
‫派对好友进入后可以看到派对好友数为零｡
‫那么你现在的处境总是很重要的｡
‫现在, 我在这里, 我看一下当前好友, 让我进入.
‫如您所见, 我得到了一个错误名称｡
‫Current Friend在当前上下文中不存在, 因此它在该点上还不存在, 但稍后会存在｡
‫让我们再看看朋友, 因为朋友也是不存在于当前环境中的东西｡
‫为什么会这样呢？
‫好吧, 因为现在, 如你所见, 箭头是在我得到党的朋友｡
‫所以我们在这个方法中｡
‫现在, 我们所有变量的作用域都在这个方法, 这个朋友的变量, 这个派对朋友的变量内.
‫这里没有｡
‫所以这不是我们要找的派对朋友｡
‫好吧, 我会的
‫因为我们要找的派对朋友就是这位｡
‫为什么会这样呢？
‫是因为范围｡
‫好吧, 我会的
‫作用域是一个非常重要的概念, 因为在一个方法中创建的变量只在该方法中可用｡
‫这就是为什么我们不能在get party friends中使用main方法中的friends或party friends, 因为这是一个不同的方法,
‫对吧？
‫如果我们在全球范围内创建它们｡
‫所以如果我们在顶部创建它们作为类的字段, 那么它们将在所有方法中可用｡
‫好吧, 我会的
‫所以这一点非常重要｡
‫我在另一个录像带里看着进入范围, 我想｡
‫但在这里, 它真的很容易看到, 因为, 嗯, 我们可以直接看到我们得到的值｡
‫好吧, 我会的
‫现在, 让我们继续进行程序, 让我们只是｡
‫请继续｡
‫我们就说, 好吧, 我们继续｡
‫您现在可以看到聚会好友和当前好友可用, 因为当前好友为空｡
‫所以我们可以直接进入下一步, 我们可以看到当前的朋友是Michele｡
‫所以我们的程序给出了这些值, 同时在右边, 所有这些值不断地给我们最接近的值,
‫这些值最接近我们现在所处的断点｡
‫好吧, 我会的
‫所以一旦我跳出来, 我又跳出来｡
‫然后我看到我是在朋友, 所以我不得不跳起来多次｡
‫但现在我又回到了主方法中, 因为我跳出了get party friends, 现在又加入了party Frances｡
‫现在我的当前朋友是卡洛斯, 而我的朋友数是2, 所以我的列表中只有2个朋友｡
‫这很奇怪因为我以为我的名单里有七个朋友｡
‫我们必须更深入地研究这个问题, 因为我们所做的是一个很大的错误,
‫这是一个非常初级的错误, 我们现在从列表中删除了这个错误, 我们是通过引用传递的,
‫而不是通过值传递的, 我们将在下一个视频中研究这个问题,
‫作为对你的一点准备｡
‫在此之前, 我想再看看另一扇窗户｡
‫如你所见, 这里有很多窗户｡
‫所以你可以学到很多关于调试的知识｡
‫如果你只是检查不同的窗口, 看看你的程序在每一行的位置和状态是什么｡
‫你也可以检查内存等等｡
‫但现在最重要的是当地人｡
‫所以我想给你们看看当地人｡
‫局部变量向你展示了在局部上下文中可用的变量, 也就是在我们当前看到的作用域中｡
‫就像我刚才说的, 范围就是我们所使用的方法｡
‫我们再来一次｡
‫让我们开始调试｡
‫顺便说一句, 一旦调试完成, 你也可以通过按这里的这个按钮, 重启按钮或者按control
‫shift来重启调试｡
‫所以在当前的情况下, 这是一个很重要的局部窗口｡
‫我们现在在本地餐厅, 不是奥托餐厅｡
‫我们正在调查当地人｡
‫所以我们有弧, 这是主弧, 这里的字符串, 这个字符串列表或数组｡
‫然后我们有我们的朋友, 我们有我们的党的朋友｡
‫这就是main方法中可用的变量, 这就是我们当前显示这两个值的原因｡
‫我们可以看到, 我们有七个朋友,
‫我们可以看到我们的聚会朋友, 我们可以看到计数是零, 但是计数变量本身是四, 我们有一个列表｡
‫所以现在我们不是在找朋友, 而是在看名单｡
‫那么什么是单子呢？
‫list是传递给我们的变量｡
‫大家可以看到, 这份清单是我们收到的, 清单上的数字是7｡
‫好吧, 我会的
‫里面有什么？
‫我们有很多不同的名字｡
‫好吧, 我会的
‫这就是本地变量､ 汽车和断点｡
‫在下一个视频中, 我们将修复我们的背部, 因为我们仍然有bug,
‫因为我们正在检查错误的值｡
‫但与此同时, 我们将了解如何解决程序中的其他问题｡
‫好吧, 我会的
‫下一段视频再见｡