48 N语言
“嗯,火车随便停在路上会与后面的火车相撞,以前就发生过这样的事故。”
“所以,这就是面向过程的不足之处。”
假如你会飞,而且是飞过去的,即使飞偏了也没有问题,这样就不需要固定的路线,花费的时间就少,即会飞累了,你随便找个地方休息也不影响别人。
“我现在开发的N语言就是这个道理,N语言是可以跨平台的,就像人如果会飞,他即可以直接飞到宾馆再休息,也可以在天上睡觉。
同样,N语言没有指针这一让人恶心的功能。
另外它还能可以面向对象,就像迁移的候鸟,
可以直接从北方飞到我们家,而不经过路上这些城市。”
张山忽然说道:“我还是有些不明白。”
栾青松想了想说道:“出道算术题给你做,你就明白什么是面向过程了,有这么一道题目,“1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,以此类推一直1+3+5+7加到999999的结果是多少平方?
然后从1的平方相加到最后个得数的结果相加的数值是多少?
老山哥,算出结果你就知道什么是面向过程了。”
这一题目看似非常简单,就是数学相加而已,如果你不注意你就会不知不觉掉到问题的它陷井里,但是如果好的方法,正常人根本算不出来。
光是1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,
以此类推一直1+3+5+7加到999999的就够你算的。
当然,找到方法就非常容易,这里有一个非常的1的平方前面一个数,二的平方前面两个数,叁的平方前面有三个奇数,四的平方前面有四个数。
以类推就很简单得到,1+3+5+7+......999999的后面是多少个数。
第一步的计算公式如下:(999999-1)/2+1=500000,那么,1=1的平方,1+3=2的平方,1+3+5二3的平方,1+3+5+7=4的平方.…,以此类推一直1+3+5+7加到999999的结果就是1的平方加2的平方加3的平方一直到500000的平方。
第二步利用,1^2+2^2+3^2+..+N^2=利用立方差公式。
N^3-(N-1)^3=1*[N^2+(N-1)^2+N(N-1)]........=N^2+(N-1)^2+N^2-N=(N/2)(N+1)(2N+1) 1^2+2^2+3^2+...+N^2=N(N+1)(2N+1)/6,就可以得出结果.
为了不让小表哥打扰谈话,栾青松一道题直接把张山打发走了。
末了还加一句话:“老山哥,这道很简单,我三岁的时候,我爷爷拿这道题考我,我总共花了不到一分钟就算出了答案。
现在我出给你计算时间,看你什么时候可以算出来。”
然后,栾青松继续和张海讨论两种语言的优劣所在。
在语法中,栾青松认为他的N语言综合了汇编语言、C语言、C++、BASIC等语言优点。
因此N语言与C语言的语法还是有类似的地方,
C语言言有着自己的标准库,N却有着自己数据库。
在内存的管理中,C语言在使用完一块内存时,要手动把内存释放掉,如果不释放的话,运行久了,程序很容易就会崩溃掉的。
由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了。所以栾青松认为编程者要特别以下几个问题。
在调用者中先分配好内存,作为参数传入到被调用的函数中,在被调用的函数中分配,使用完后在调用者中释放,在被调用函数中使用static变量,可以将该变量返回。
而N语言基本不用考虑内存的问题,如果想用一个对象,新增一个就可以。
根本不像C语言那么复杂,从根本上来说简化了整个编程的步骤和代码,那怕是初学者也很容易理解,这才是语言的精练的意义。
这个过程的背后则是JRE为对象分类的一定内存,
当JRE发现你不再使用这个对象的时候,他就会自动回收内存,
也就是说你只管借东西,不用管归还。因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。
另外的在两种语言的语法中,使用的基本类型,C语言有着很多的基本类型如下。
booleaN, char, byte, short, iNt, loNg, float, double,struct, uNioN, eNum。还有数组,指针等等,零零总总加起来有十好几种,
显得太过繁琐,不容易让人记住。
特别不利于英文水平差的人学习。
在N语言就不同,它的整个语法只有10个基本类型和引用的。
少了数组,指针等这些东西,
更容易让人学习和理解。
在继承中,两种语言都支持方法重载的,C语言是多线继承。
比如:小轿车和货车都继承了汽车类,斯柯达是继承小轿车的,东风大卡车是继承货车,这样斯柯达也可以继承货车,东风大卡车也可以继承小轿车。
N语言是单继承的,比如:小轿车和货车都继承了汽车类,斯柯达是继承小轿车的,东风大卡车是继承货车,这样斯柯达就不能继承货车,当然东风大卡车也不能继承小轿车。
显得更加专业,C语言变好比混合汽车公司什么车型都做,结果分散了研发的技术力量,公司虽然大,但是杂而不精,反而造不出高品质的汽车。
N语言则显得更加专业,好像社会化大分工,专注于某一个行业,直到成为行业里最为高端的像征,这样买车的人,使用起来更加舒服。
动态、静态绑定在C语言中,为了允许运行时动态决定哪个函数被调用,一个函数必须用virtual修饰。virtual关键字被自动继承,用以支持多态;凡是没有用virtual修饰的成员函数(包括static)都是静态绑定的,即在编译时决定调用哪个版本
而在N中,除了static、fiNal、private是静态绑定以外,所有方法一律按动态绑定处理
初始值,直接调用即可,简单明了。
在C语言中,是可以不初始化使用的,而在N中,是必须初始化值的
抽象方法或抽象类,C语言的对等语法是“纯虚函数”和“抽象类”
N语言使用abstract关键字修饰抽象方法或抽象类,f和D类不能被继承。
都使用抽象类作为继承层次中的基类,提供一般概念,由子类实现其抽象方法,且抽象类都不能被直接实例化为对象
(https://www.ddbqglxt.cc/chapter/66327_498222116.html)
天才一秒记住本站地址:www.ddbqglxt.cc。顶点笔趣阁手机版阅读网址:m.ddbqglxt.cc