‫欢迎回来｡
‫这段视频我想讨论一下成员, 因此, 我在这里创建了一个新类, 我将它命名为成员.
‫现在, 在这个成员的类中, 我想继续创建所有不同类型的成员,
‫这些成员在使用面向对象编程时是相关的｡
‫例如, 我们有私有字段｡
‫我们把这里的一个成员称为private字段, 它类似于private string member, name ten private
‫string job title｡
‫这些只是成员的例子｡
‫因此, 它们可以是私有字段, 也可以是公共字段｡
‫记住他们称之为成员字段｡
‫这是公共域, 那是公共int h.
‫举个例子, 对, 然后一个成员可以有薪水｡
‫诸如此类的事情｡
‫所以所有这些变量, 这些字段, 这些全局变量, 它们都是这个类的成员｡
‫因此, 还有一些属性也是成员｡
‫比如说我想要一个属性, 我在这里输入prop, 然后双击, 我得到这个属性,
‫它就是字符串job title.
‫职务名称｡
‫这里有一个私有字段, 现在我创建了一个同名的属性, 但是大写的是J｡
‫在这里我们有一个getter和setter, 它们也是自动创建的｡
‫但是, 我们也可以继续手动创建, 正如您在上一个视频中看到的那样｡
‫所以让我们真实的地做这个｡
‫所以这里不是用标准的get和set, 我想用get我想返回职位头衔, 而不是用标准的setter,
‫我想用一些像职位头衔应该被设置的东西｡
‫所以职称就是我们的价值｡
‫好吧, 我会的
‫这就是我们的设置, 让我们清理它, 使它看起来更好一点｡
‫所以这是一个成员属性, 它安全地､ 一般地公开了职位｡
‫所以, 你知道, 只要记住属性以大写字母开头, 然后我们有一个成员, 它是一个方法｡
‫因此, 让我们创建一个可以从其他类调用的公共成员方法｡
‫正如您所知, 使用公共方法, 它们可以从其他类中调用, 而类中的方法称为其成员｡
‫于是党委会下课｡
‫在我们的例子中, 这是一个名为members的类, 但不管类的名称是什么,
‫我们假设它是student｡
‫因此, 你有一个与你所有的学生, 所有关于学生的信息和学生的技能, 等等｡
‫然后, 其中的方法也会是成员｡
‫我们来举个例子｡
‫公共空间介绍果汁的事情和布尔是朋友｡
‫我想做的就是简单地介绍一下某人, 如果是朋友的话, 我想用一种,
‫更私密的方式介绍一下自己.
‫好吧, 我会的
‫假设我们有另一个不同的｡
‫我要在这里再加一个字段, 就是芹菜｡
‫于是私撒芹菜｡
‫现在如果是朋友, 我也想告诉他们我的芹菜, 因为我不会和别人分享｡
‫但我不使用公共方法, 而是使用私有方法.
‫所以我不想在自我介绍中这样做｡
‫我想创建一个不同的方法, 它是private, void, sharing, private, info,
‫它会写, hi, my, well, 实际上就是叫我的芹菜｡
‫我的芹菜就是芹菜｡
‫当然, 我们需要知道芹菜的价值, 否则芹菜的价值就一定存在｡
‫所以我们把它设为标准值｡
‫所以最少2万, 这就是我们会员最低芹菜量
‫所以这就是共享的私有信息,
‫我用这个布尔值是朋友, 不管是什么, 都叫共享私有信息, 如果是朋友, 我就叫共享私有信息｡
‫否则我就写这样的｡
‫LS CW嗨, 我的名字是卷括号零和我的工作头衔是卷括号一, 然后我是卡特括号, 两岁｡
‫现在我们当然需要所有这些信息｡
‫原来那一个是会员的名字｡
‫然后我们有了工作头衔和H｡
‫如果某人不是我们的朋友, 我们就会给出这些信息, 因为我们的朋友通常会知道这些信息, 我们的职位, 成员,
‫等等｡
‫但如果我们想向朋友介绍一些新的信息, 那就要像我的薪水一样｡
‫嗯, 这只是我的一个想法这是私人的, 我不会告诉别人在街上通常｡
‫然后我们甚至还有一个不同的成员, 它是一个构造函数｡
‫所以构造函数也是成员｡
‫所以如果我在这里创建一个成员的构造函数, 它就是一个成员｡
‫构造函数是一个成员控制台的右行, 类似于创建的对象, 非常简单.
‫因此, 每当创建成员时, 我们只需创建此对象｡
‫我们还应该在这里做的是, 因为我们没有任何值为我们的成员名称, 职位和工资｡
‫实际上, 我们可以在这里去掉工资, 我们只在成员中初始化它｡
‫我们假设H是30那么成员的名字是Lucy.
‫然后我们有薪水, 露西赚了一大笔钱, 6万美元或欧元, 随便你喜欢｡
‫然后我们还有什么？
‫所以我们有工资员的名字, 工作头衔｡
‫她的工作是什么？
‫假设她是一个开发人员, 我们不打算详细说明她是什么类型的开发人员, 但这是我们的成员构造函数｡
‫而构造函数本身是该类的成员｡
‫最后我们有一个终结函数或者说析构函数, 它也是一个成员,
‫析构函数是用这个弯符号创建的, 然后是类的名字, 它是一个成员或者简单的是成员.
‫而且这个最终用户或析构函数不能在结构体中定义｡
‫这只能在类和中实现｡
‫一个类只能有一个最终失败者｡
‫我们可以创建多个构造函数, 但每个类只能创建一个析构函数,
‫final sizer不能被继承或重载, 也不能被调用｡
‫所以它只存在于这个特定的类中｡
‫所以只要对象超出作用域, 我们的members对象超出作用域, 这个文件分析器就会被调用,
‫我们就创建一个.
‫顺便说一句, 它是用来清理报表的｡
‫所以这里只有清理才有用｡
‫让我们在控制台上写点东西, 比如成员对象的解构.
‫所以每当对象被关闭, 删除, 或者运行到作用域之外, 这个方法, 或者这个final
‫losers, 就会被执行, 清空final losers.
‫因此, 如果此值应为空, 则不应使用它｡
‫所以除非你在这里有什么有用的事要做｡
‫您应该使用文件分析器, 否则它只会耗尽性能｡
‫因此, 您只会有不必要的性能损失,
‫因为当类包含文件分析器时, 会在终结队列中创建一个条目, 然后当调用if分析器时, 会调用垃圾收集器来处理该队列｡
‫这就是为什么你不应该创建一个空的finalize, 因为它只会在队列中添加一些东西, 而这些东西并没有做任何事情,
‫这仍然会降低性能｡
‫好吧, 我会的
‫这通常是文件分析器或析构器｡
‫为了测试它, 这是非常困难的, 因为如果我们超出了作用域,
‫在我们的例子中, 就是如果我们超出了main方法, 那么我们就看不到什么了, 因为我们的程序就关闭了, 对吗？
‫我们先创建一个成员的对象, 我把它命名为1.
‫会是新成员｡
‫而这个新成员或一号只是要成为我们的露西｡
‫所以我们没有一个构造函数来设置年龄, 成员姓名, 薪水, 所有这些东西.
‫因为我们在这个视频中保持简单, 因为它主要是关于成员的一般概念, 并最终确定或结构｡
‫现在让我们调用1号方法, 让它投入使用, 或者我们调用引入方法｡
‫现在她要做自我介绍这里我们要给予一个布尔值.
‫所以我只想说, 好吧, 我是朋友, 所以请告诉我你的薪水｡
‫因为这就是这个引入方法的作用｡
‫顺便说一下, 它会在introducing方法中调用共享私有信息方法｡
‫所以这是唯一的方法, 通过调用公共方法中的私有方法, 来获取类外私有方法的内容.
‫所以这个分享私人信息是一个私人的方法｡
‫所以访问修饰符是私有的, 但是这个public方法可以从外部调用,
‫也就是说它可以在我们的程序类中调用.
‫在这里, 如果我尝试访问共享私人信息, 它会说成员共享和私人信息由于其保护级别而无法访问｡
‫所以我就是无法访问它｡
‫现在为了给大家展示这个解构的成员对象｡
‫好了, 好了
‫是的, 我知道
‫这通电话我们得离开范围｡
‫也就是说只要我们关闭静态虚空总管｡
‫所以我们一看到, 比如说, 第18行, 在我的例子中, 这就是最终用户被调用的时候｡
‫所以这时候第一个成员会被摧毁｡
‫如果我们运行它, 我们会看到它非常, 非常短的一秒｡
‫所以让我来创造它｡
‫实际上, 它只是要直接关闭｡
‫所以让我们编写控制台｡ 日志, 读取这里密钥
‫所以你看到的东西, 所以我们是我的工资是所以她｡
‫好了, 对象创建完毕｡
‫她告诉我们工资是因为我们是朋友, 就像我们在这里说的那样｡
‫是的｡
‫现在, 如果我按一下回车键, 你可以看到那里有一些文本｡
‫其实你没看出来｡
‫但最后, 在我按下控制台键后, 我会在这里运行这行代码, 然后执行代码｡
‫因此, 为了了解这一点, 我们需要在此处使用debug, 并且需要导入debug, 以便显示潜在的修复｡
‫全部进入使用系统诊断｡
‫不可知论者只是想做调试吗？
‫现在我可以称之为光明｡
‫我只想写入这个输出, 然后调用它.
‫所以解构或破坏是因为它破坏了对象的成员｡
‫正在发生的事情｡
‫现在让我们再运行一次｡
‫其实不用钥匙｡
‫我们不需要了因为我们很好｡
‫如果程序只是在之后关闭, 我们就运行它｡
‫我们在这里看到的结构或破坏的成员对象｡
‫事实上, 如果我们回去, 我们只有他们的控制台键｡
‫所以你可以看到它没有被执行｡
‫所以我们看不到这些信息, 但只有在我们按下回车键后, 我们才能看到它｡
‫显示了成员对象或此对象的成员的解构｡
‫这就是结构或文件分析器的一般工作方式和它们的作用｡
‫好极了｡
‫现在, 您已经看到了不同类型的成员｡
‫关于成员还有一些需要了解的内容, 请查看文档｡
‫然后, 您将看到更多关于成员是什么以及他们做什么的详细信息｡
‫但在大多数情况下, 我们在这里看到的将涵盖我们在未来使用中要处理的大部分内容｡
‫好极了｡
‫下一段视频再见｡