以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [讨论]请教,关于vb中的数学函数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152504) |
-- 作者:buckyohare -- 发布时间:2020/7/13 22:38:00 -- [讨论]请教,关于vb中的数学函数 今天看了教程里的“共享成员”。 我个人的理解,String是一个类,他有属性和方法,我们在使用String的共享成员Join时会这样写: String.Join("\\",Parts) 那么对于数学函数来讲,他们属于Math类,使用形式上和String的共享成员类似,为什么他们叫“函数”而不叫“共享成员呢?” String类有属性,那么Math类有没有属性呢?
|
-- 作者:有点蓝 -- 发布时间:2020/7/13 23:10:00 -- 说说我的理解: 2、string是一个类型,实例化后才代表一个具体的字符串,如: dim s as string = "张三" s变量是一个string类实例化后的对象,其值是“张三”。但是我们不能说string类的值是张三,类是一种概述,并不是所有字符串都是"张三" 3、属性和函数(或者叫方法,不同说法而已)一般是对象才有的,比如我们说张三这个人有眼睛,四肢等等,这些就是属性,描述对象的具体状态,但是不能说“人类”这个类有眼睛,四肢属性,比如某些残疾人就没有。 这些都是面向对象的概念,理论上类是不存在属性和函数的,也就是我们所说的“共享成员”,因为世界是不确定性的,总有意外。 但是,我们只是编个程序实现我们想完成的功能而已,我们不是神,也不是哲学家,管他那么多。我自己定义的类型,我就喜欢有“共享成员”,我定义的“人类”这个类就是有眼睛,四肢属性,那又怎么样?! 所以明白了么?Math类有没有属性,只是当时编写这个Math类的开发人员高不高兴而已,那有那么多为什么!您如果有能力完全可以扩展这个类型,自己加上任意属性......比如让数学也有眼睛 编程语言提供的各种语法,类型只是这种语言的一种约定俗成的用法而已,就当做公式一样记住即可。
[此贴子已经被作者于2020/7/13 23:10:51编辑过]
|
-- 作者:buckyohare -- 发布时间:2020/7/14 0:01:00 -- 谢谢家人回复,这个人类的比喻挺形象呢,不过有一处我不太同意,我觉得类是有属性的,只是这个属性并不是具体的。就比如人类有一个属性叫“眼”,当我们实例化成张三的时候,会给这个属性一个默认值“有”,我们也可以在实例化后将这个属性设置成“无”。当然,我还是想搞明白为啥math类的那些数学函数不是方法。(我觉得函数和方法还是有区别的) |