have是已经完成,have been是被动,也是已经完成。例如:I have finished it.我已经完成了它。it have been finished by me.它已经被我完成了。
have和havebeen的区别
一、"have"通常表示一种行为或状态的存在。它可以用来表示现在完成时(present perfect tense),也可以表示过去完成时(past perfect tense)。例句:
I have eaten breakfast this morning.
我今天早上吃了早饭。
She had finished her homework before she went to bed.
她睡觉前已经完成了她的家庭作业。
二、"have been"则表示一种行为或状态已经持续了一段时间,并且可能仍在进行中。它通常用来表示现在完成进行时(present perfect continuous tense),也可以表示过去完成进行时(past perfect continuous tense)。例句:
I have been studying English for two years.
我已经学习英语两年了。
They had been working on the project for three months when it was canceled.
当项目被取消时,他们已经工作了三个月了。
总之,"have"强调行为或状态的完成,而"have been"强调持续的时间。
have been的用法讲解
have been共有六种用法,如下:
1、have been 与表示职业的名词连用,用来询问或说明某人所从事的职业。与 how long, for 或 since 等短语连用后,则表示此种状态的持续时间。例句:
Have you ever been a worker?
你曾经当过工人吗?
I've been a teacher before.
以前我曾经是一位老师。
How long have you been a dirver?
你当司机有多久了?
2、也用来表示天气。例句:
It has been cold since last yesterday.
自从昨天以来,天气一直很冷。
The train has been gone (for half an hour).
火车开走了(半小时了)
3、可和表示地点的介词连用,表示相当于汉语中的“去过”、“来”、“到”等不同动词的意思。例句:
How long have you been at the school?
你在/到/来这所学校多久了?
They have been in beijing for more than two years.
他们来北京两年多了。
4、have been 可以与 away, back, in, on, out, over 等小品词连用。相当于一个 表示动作动词的现在完成时的用法, 表示某种状态。例句:
The film has been on (for half an hour).
电影开演(半小时)了。
The film has begun (for half an hour).
电影开演(半小时)了。
5、have been后接动词的现在分词,为现在完成进行时,强调从过去某一时间到现在为止的一段时间内一直进行或反复多次发生的动作。这个动作到说话时是否停止, 视上下文或当时语言环境而定。例句:
He has been working in that school for five years.
他在这学校工作五年了。(现在是否仍在该学校工作,视上下文而定。 )
6、have been +及物动词的过去分词。为现在完成时被动语态的形式,表示一个已完 成的被动动作。例句:
The moon has been visited by human being already.
月亮已经被人类访问过了。