‫欢迎回来｡
‫在上一个视频中, 您看到了如何创建类｡
‫在这段视频中, 我们将看看构造函数｡
‫正如我之前告诉过你的, 它们确实可以减少你需要的代码量, 所以你不需要那么多代码｡
‫例如, 我们在这里所写的是我们可以减少很多的东西｡
‫所以我们可以减少这些, 或者我们甚至可以去掉每个物体的这两条线, 这样我们就可以在初始化的时候把它们放进人体｡
‫所以我们就这么做吧｡
‫让我们在这里创建一个新的方法, 称为构造函数｡
‫它非常接近于一种方法｡
‫这不是一种方法｡
‫它是一个构造函数, 同时也是一个成员, 对吗？
‫我们来创建一个构造函数, 它是公共的, 它的名字和类本身的名字一样.
‫但正如你在这里看到的, 没有空, 没有字符串, 没有返回值｡
‫它不需要它｡
‫它只需要访问修饰符｡
‫在这种情况下, 它是公众｡
‫然后你需要人类｡
‫因此, 您应该使用public, 因为否则就无法使用此构造函数｡
‫所以在这里使用public非常重要｡
‫然后, 在这里, 您可以添加每次创建此类的对象时所需的参数｡
‫假设我想要一个字符串名和一个字符串姓｡
‫所以每次有人创造了一个人, 他都需要给予我这些信息｡
‫让我们看一下这里, 我们马上就能看到, 一旦它知道有一个构造函数, 它就会抱怨,
‫因为它说缺少参数.
‫因此, 没有给出对应于所需形参“人的名字”的参数｡
‫所以这里需要两个字符串｡
‫第一个将是名字, 第一个名字, 第二个将是姓氏｡
‫但光是这样是不够的｡
‫我们还要解决这个问题, 因为我们知道, 这个人有成员变量,
‫比如名字和姓氏, 我们希望在每次创建对象时都改变这些变量｡
‫我们说名字等于名字｡
‫这听起来可能有点混乱, 实际上它不起作用, 因为它在这里说, 哦, 不,
‫我不明白你想要什么｡
‫您可以指定相同的内容｡
‫你不能把同样的东西分配给同样的东西｡
‫所以同一个变量对同一个变量｡
‫这里有两种不同的方法｡
‫所以要么你把这个变量名改成我的名字, 然后你简单地说全局名字就是我的名字｡
‫这是一种方法｡
‫好吧, 现在成功了｡
‫也可以使用this关键字｡
‫所以这个点姓等于姓｡
‫现在它突然起作用了｡
‫为什么呢？
‫因为这个姓意味着我想知道这个物体的姓, 它就是这个姓.
‫所以是成员变量而不是局部变量｡
‫所以这个字符串, 我的名字和字符串姓氏都是局部变量｡
‫它们基本上都是参数, 是的｡
‫但是它们被很好地当作局部变量使用｡
‫所以除了这个方法或者这个构造函数之外, 没有人会知道这个｡
‫例如, 我的名字变量, 只有在这里才知道｡
‫所以现在我要做的就是说, 好吧, 这个姓｡
‫所以这个物体的价值应该是人类诞生时赋予我的价值｡
‫因此, 每当调用此构造函数时｡
‫所以构造函数构造函数很像一个方法, 每当创建一个对象时就调用它｡
‫在这种情况下, 当这个类被用作数据类型时, 它将使用构造函数并调用构造函数.
‫正如你所看到的, 这是两种不同的方法｡
‫现在让我们继续回到程序｡
‫如您所见, 我可以在这里简单地添加值｡
‫所以CC, 让我们假设瓦格纳和我将摆脱所有其他的东西, 我们在这里｡
‫我们现在只有CC了CC要做自我介绍｡
‫现在你可以看到, 我们将整个代码限制在了一行｡
‫我们以前有四行或三行, 现在我们只有这一行｡
‫所以我们说了同样的话｡
‫所以你好｡
‫我是CC瓦格纳｡
‫所以才这样｡
‫把名字交出来, 把姓氏交出来｡
‫所以如果你在人类上方盘旋, 你可以看到它需要什么｡
‫它需要我名字和姓氏字符串
‫如果我们看看我们的人类阶级, 这正是我们这里所拥有的｡
‫所以现在你知道如何使用构造函数了｡
‫我将把它改成名字, 我也会用这个, 这里也应该是名字,
‫因为我喜欢用这个.
‫所以我总是知道我使用的是字段或者成员变量, 也就是全局变量.
‫顺便说一下, 现在我们不再需要使用public, 因此可以将其设为private｡
‫我们可以将这两个变量都设为私有｡
‫现在, 为了让您看到它仍然在工作, 让我们再次运行代码, 您会看到｡
‫嗨, 我病了, 瓦格纳
‫所以现在我不再从这里访问这些变量了｡
‫我只需要创建一个构造函数或者创建一个人类对象, 然后通过传递这些信息来传递构造函数或者调用构造函数｡
‫我需要这样做, 因为否则就无法创建整个对象｡
‫这将导致一个错误, 正如您所看到的｡
‫所以现在它不喜欢代码｡
‫它说, 哦, 缺少了一些东西, 缺少了一个构造函数信息｡
‫所以这是没有争议的｡
‫没有给定与所需窗体参数姓氏对应的参数｡
‫好吧, 我会的
‫所以我还是用最后一个名字｡
‫这又是什么？
‫她的名字是我就叫她瓦格纳吧.
‫所以现在她嫁给了另一个人, 现在她实际上是瓦格纳｡
‫好吧, 我知道了
‫好吧, 我会的
‫回到我们的构造函数和变量, 对你们来说有点挑战｡
‫因此, 这是一个挑战｡
‫再向human添加两个成员变量｡
‫一种叫眼睛颜色｡
‫另一个H｡
‫您应该在这里使用正确的数据类型, 然后调整构造函数,
‫使其在创建人类对象时需要使用所有四个值｡
‫所以它应该使用快名､ 姓､ 眼睛颜色和年龄, 然后创建两个人类类型的对象｡
‫当然, 您需要在我们的程序类中创建它们｡
‫好吧, 我会的
‫所以, 继续发布视频, 并尝试这样做｡
‫好吧, 我会的
‫我希望你试着去做｡
‫首先, 创建一个公共字符串I或者私有字符串I color,
‫然后创建私有字符串H, 它是int类型.
‫现在让我们调整构造函数｡
‫所以我会添加一个字符串I, color, 然后添加一个int, H, 然后我还要调整构造函数的内容.
‫所以I的颜色是, 而H的颜色是｡
‫现在让我们回到这里, 创建一个对象.
‫其实是两个物体如此的人性化｡
‫在我的例子中, 丹尼斯是一个新人类, 我将输入名字｡
‫姓什么｡
‫如你所见, A. J. 告诉我们需要输入什么｡
‫名字, 姓氏, 眼睛颜色H.
‫好吧, 那就这么办吧｡
‫眼睛颜色为绿色, H为整数｡
‫在我的例子中, 我们输入29｡
‫现在我想让丹尼斯自我介绍一下｡
‫而且事情是这样的, 自我介绍还没有调整好｡
‫所以如果我运行它, 它还不会添加关于眼睛颜色和年龄的重要信息｡
‫让我们回过头来介绍我自己, 加上我是某某, 某某岁, 那么岁, 那将是我们对我眼睛的颜色,
‫这将是我们的三, 这是第四个值｡
‫我给H加上颜色, 所以我会按照我在文本中使用的顺序, 而不是按照我在这里创建变量的顺序｡
‫所以现在如果我们再运行一次代码, 我们就会看到｡
‫嗨, 我是丹尼斯·帕内塔, 29岁｡
‫我的眼睛是绿色的｡
‫非常有用的信息｡
‫非常感谢您的光临｡
‫现在让我们创造第二个人类, 我将它命名为Amalia, 也就是我的女儿｡
‫她是一个新人类, 她很新｡
‫阿玛丽亚, 新来的她的眼睛颜色仍然是蓝色的｡
‫如果父母的眼睛不是棕色的, 婴儿的眼睛往往是蓝色的｡
‫现在她多大了？
‫她才一岁｡
‫阿玛雅, 来, 自我介绍一下.
‫不幸的是, 她不够健谈, 或者她还不知道如何说话, 至少不知道这类信息｡
‫这样我们就高了, 在我看来, 要结束一岁｡
‫所以你甚至可以调整｡
‫因此, 您可以创建一个if语句并介绍自己｡
‫所以如果有人低于某某年, 低于两年, 实际上是一年和零年, 或者我不确定零是否有效, 但是对于一年, 你可以说,
‫好吧, 它不是年, 但它会在这里｡
‫你知道吗？
‫我真的试着这么做｡
‫好吧, 我会的
‫我希望你试过了｡
‫所以我在这里用一个if语句｡
‫所以如果年龄等于一, 那就做点别的｡
‫否则就这么做｡
‫所以如果年龄是或者你实际上是一岁｡
‫还有别的这个｡
‫好吧, 我会的
‫现在应该没事了｡
‫我们就这样了｡
‫嗨, 我是阿玛雅｡
‫又一岁｡
‫我的颜色是蓝色｡
‫好极了｡
‫所以我希望你能做到｡
‫现在您了解了如何使用构造函数｡
‫一个构造函数, 因为在下一个视频中我们将使用复数形式的构造函数,
‫这意味着我们将在同一个类中创建多个构造函数, 你们将看到它的用途, 以及为什么它是有用和重要的｡
‫而且我们将来会使用很多类, 它们有多个不同的构造函数｡
‫下一段视频再见｡