1.关于public,protected,private的说明
(1)我们通过自己的打印输出也可以看出来,这个时候是不能打印输出age,address的,因为他们不像public里面的name,他们一个是被保护的,一个是私有的,因此我们无法直接进行访问;
2.设计一个类通常的规范:变量私有,函数公有
通过这个例子,我们应该了解到一些基本的代码风格,函数是公开的,变量是私有的,这个可以提高我们的代码的安全性;这个里面我们还自定义了一个新的函数对年龄进行加加操作,主函数里面没有调用这个函数之前age是20,调用这个函数以后就变成了21;
3.this指针指向语句里面的当前对象
这个例子,我们一起认识一下this的用法,以及实用的场景;
这个我们还是自定义了一个函数,只不过这个函数需要我们传递参数,我们就把参数设置为name,因为参数的名字,和我们在类里面定义的变量的名字是一样的,如果我们直接进行打印输出,这个时候程序是可以正常运行的,但是不会打印输出任何结果;因为这个时候编译器自己无法判断那个是参数,那个是我们自己定义的变量,这个时候就无法正常打印我们想要的结果;
这个时候如果在不改变参数的名字的情况下,如果我们想要正常打印结果,就需要使用this这个指针,这个指针指向这个语句里面的当前对象,怎么理解呢,就是当程序运行到s1,setstudent()的时候,就会传进去参数,这个时候name进行了接收,这个时候因为我们使用了this指针,所以编译器就可以正常识别,知道是把后面的参数赋值给前面的变量;
4.成员函数仅仅处理一个成员变量,处理多个成员变量需要独立的外部函数,对象可以作为函数的参数
(1)这段代码分别求了个人3门科目的平均分,以及3个人同一门科目的平均分;
(2)getaverage是求单个人3门成绩的平均分。这个函数就是我们标题里面说的成员函数,成员变量指的就是一个人的3门成绩,这样的成员函数只能够处理这样的一个成员变量;
(3)如果我们想要计算3个人同一门科目的平均分,就不能使用这样的成员函数,因为这样涉及多个成员变量,这个时候我们需要独立的外部函数指的就是我们需要在类定义的外面新定义函数;
(4)这个函数的参数是我们的成员变量,由此可见成员变量可以作为我们的函数的参数,这样就可以求出多个人同一门科目的平均分;
5.对象数组可以作为函数的参数
(1)这个就是使用对象数组作为函数的参数;传递的是数组名,我们依然使用数组进行接收,这个和C语言里是类似的;
(2)就相当于使用数组表示原来的s1,s2,s3,s4;
(3)这个里面调用setstudent函数的时候,对变量进行初始化,调用getaverage3这个函数的时候,就去找到我们外部定义的函数getaverage3,找到与之相对应的if语句,利用for循环计算出每门科目的成绩总和,拿这个总分除以我们传进去的参数n就可以得到这个科目多个人的平均分,这个平均分将会作为返回值返回到主函数里面最后进行打印输出。