游戏开发论坛

 找回密码
 立即注册
搜索
楼主: instemast

面向对象语言的语义学中的意味不明之处,剧本中常出现

[复制链接]

4

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2008-9-27 16:35:00 | 显示全部楼层

Re:面向对象语言的语义学中的意味不明之处,剧本中常出现

刚才仔细想了想,又有点想法,既然是OO,就应该是实例之间传送消息,怎么会用到局部参数newhp呢?所谓newhp完全是一个局部变量,仅承载用户输入,在manager->setplayerHP(player)内部实现时起作用就行了。也就是说,newhp这个参数没有资格作为句子的一部分出现。
作为OO的写法,应该就是"主语->方法即谓语(宾语)",尽量做到单输入。

4

主题

38

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2008-9-27 17:23:00 | 显示全部楼层

Re:面向对象语言的语义学中的意味不明之处,剧本中常出现

另外,关于介词结构无法避免的情况,个人认为应该这样处理manager->moveplayer(door);
总的来说,我觉得楼主想要解决的是方法嵌套的问题,或者是对象嵌套的问题

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 18:47:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

func-谓语 a-主格 b-目的格 c-宾格

这中句子在人类交流中用多了会现的很愚蠢,因为在生活中我们很少用倒装句


同志,这个句子,是语法分析后的数据结构好不好?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:00:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

AAA->GiveItem( BBB, CCC ); 试问,这是什么意思?虽然“GiveItem”是一个有意义的单词,但仍然没有告诉...


如果我这么写呢,你看看是不是意义明确些了呢?
BBB GiveItem CCC to AAA.
AAA ni BBB ga CCC wo GiveItem suru.

也可以这么理解:
AAA GiveItem CCC to BBB.
AAA ga BBB ni CCC wo GiveItem suru.

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:02:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

面向对象是思想(语义),不是书写风格( C ? C++ ? )

这句也不对,内涵要靠形式来表现,2者相辅相成. 所以,思...


就是因为,2者相辅相成----所以写这篇文章时脑细胞消耗比较大----容易混淆

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:05:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

method( pObj, s, t ); 这就变得不一样了----你心里明白,pObj是一个对象----换言之可以把对象看作是一个特...


这里我没有涉及到多个对象,我不想搞得太过复杂:s, t 是两个基本数据类型的变量。

比如 Player_MoveTo( pPlayer, x, y );
你觉得 pPlayer 是不是一个对象呢?

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:07:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

有些情况下很难确定“对象”在句子中的确切意义

你要用古怪命名法,没谁懂


我不用古怪命名法(其实到目前为止我也根本没有用过“古怪命名法”)试试看:

Attack(PlayerA,PlayerB);

这几个单词不古怪吧,但是我仍然看不出,句子意思如何

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:13:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

因为 C 程序中,对象的概念不明确,他们可以将设计重点放在具体意思上

你说C 程序中对象的"概念&qu...


“不明确”
C 程序不强求程序员非要采用OO思想,程序员可以有自己的一套思想。

“具体意思”
就是说,把API设计的重点,放在人类语言所描述的意思上。比如:

link a and b 用 C 可以简单地写:
Link(a,b);

如果用 C++ 则容易陷入沉思----我到底采用哪种格式呢:
a->LinkBefore(b);
b->LinkAfter(a);
Manager->Link(a,b);

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:15:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

“对象”“类”----是抽象的概念, 你说c里只有全局函数 那全局函数不要穿任何参数因为连int,float,什么的都是对象, 那这样的c语言还有批个用


int, float 是不是对象,取决于----语义:

GetTextureSize( int texID, int *pWidth, int *pHeight );

这里都是 int, 但我们知道: texID是对象,后两个参数则不是

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
 楼主| 发表于 2008-9-27 19:27:00 | 显示全部楼层

Re: Re: 面向对象语言的语义学中的意味不明之处,剧本中常

sander_like_kof: Re: 面向对象语言的语义学中的意味不明之处,剧本中常出现

C++风格引起的另一个耐人寻味的问题是,实际上你已经看到过了,比如:
是设计为 Manager->Move( Player...


“你怎么又矛盾了? ClassXXX_Method()只是书写风格啊”

我写这句话的时候,不认为 ClassXXX_Method 是书写风格。

因为:

我感觉书写风格主要不是指identifier的名称(细节),而是语法(大的方面)。

我举例说“ClassXXX_Method”是告诉读者:
这个函数,具有OO的含义。我不想罗嗦地再花费一句话,甚至是多句话来说明“这是一个表示OO意义的函数,比如:xxxxxx”,所以用这样的命名来简单说明。

PS. 话虽如此,这么写文章确实会引起细心的朋友的误解。我考虑修正它。非常感谢你提出!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 04:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表