我学过一点C语言。C语言主要是用函数解决问题(学的时候也不知道这是面向过程)。总之觉得函数就可以解决一切问题,数据送进去,函数给出处理结果。问题解决。
然后这几天看了面向对象的内容(matlab)。看到构建类的时候,有一点不太明白。
先说说我对“类”的“认识”,然后再提出问题。如果“认识”部分哪里错了还请各位指正!
认识:类就像一个word中的“格式刷”。你定义好了一个类,就可以用类去制造对象。或者可以看成一个excel模板,你定义好了一个“学生类”的数据模板,包括:姓名、性别、身高、体重、年级、班级、各科成绩。然后你往这个模板中录入了张三李四的信息后。张三李四就被这个模板塑造成了“类”的“对象”。 C语言中的“结构体”也可以为建立结构化数据打下一个模板?(能不能像“类”一样批量制造对象我就不清楚了,没用过)
问题:函数处理数据要对数据类型进行规范,比如我编了一个函数,作数值加法。输入参数x,y。 函数内:z=x+y 输出参数是 z ,变量类型必须数值型。不能是逻辑变量,也不能是字符类型,也不能是数组类型。虽然函数只能处理特定类型的变量,但是没必要和变量进行强绑定吧? 那么为什么在定义“类”的时候,下面要给出一段代码让你写“方法” ?(我看来看去这个方法就是个处理类数据的特定函数。如果理解有误请指正)。我想知道定义类的时候同时定义对应的方法,目的是什么? 我猜不在类中定义方法。你在外面写个函数处理类定义的结构化数据应该也是可以的吧?但是类中留出定义方法的空间,一定是有好处的?这个好处是什么呢? 我看视频介绍把大象装进冰箱为例。大象这个类中定义了,打包大象这个方法。 冰箱这个对象中定义了,开门,塞进物品,关门这三个方法。 但是 打包,开门,塞进物品,关门 这几个函数我想不写在类中应该也不是不可以吧? 只要这些函数能兼容大象,冰箱这些特定的结构化数据应该一样可以工作吧?
那么在类中定义函数的_最主要_目的是什么呢? 增加代码可读性可维护性?可以封装隐藏函数,保护知识产权? 便于从现实到代码的抽象?提高程序运行效率? 其它?
----------------------如果是chatgpt的答案请注明。