一.定义:
1.表示过去发生或已经完成的动作对现在造成的影响或结果,强调对现在造成的影想或结果。
例:The car has arrived. 车子来了。(结果:车子已在门口)
Someone has broken the window. 有人把窗户打破了。(结果:窗户仍破着)
2.表示过去已经开始,一直延续到现在的动作或状态,甚至有可能继续延续下去。可以和表示从过去某一时刻延续到现在(包括“现在”在内)的一段时间的状语连用,如for 时间段、since 过去的时间点、疑问词how long等。这时表示持续动作或状态的动词必须是延续性动词。
My uncle has worked at this factory for five years. 我叔叔在这个工厂工作已经五年了。
Mr. Black has lived in China since 2002. 自从2002年Mr. Black 一直住在中国。
How long have you been here? 你来这里多久了?
二.现在完成时的构成:
肯定式:主语 助动词have/has 动词的过去分词.
疑问式:助动词Have/Has 主语 动词的过去分词?
否定式: 主语 助动词have/has not 动词的过去分词.
例句:
Has he gone to the library? 他是去了图书馆吗?
Yes, he has. 是的,是去那里了。/ No, he hasn’t. 不,他没去那里。
How long has Mrs. Smith been in Beijing? Smith夫人来北京多长时间了?
二.用法:
1.表示过去发生的某一动作对现在造成的影响或结果。
-- It’s so dark.
--Someone has turned off the light.
(有人刚把灯关了,对现在造成的结果是:现在很黑)
-- Are you free?
--I have finished my homework. I am free.
(我已经完成了家庭作业,对现在造成的结果是很有空)
2.表示过去已经开始, 持续到现在的动作或状态.
I have learnt English for more than ten years. 我已经学了10多年的英语。
(从10年前开始,持续到现在还在学)
She has swum since half an hour ago. 我已经游泳了半个小时。
(半个小时前已经开始游泳,到现在还在游)
3.表示从过去开始到目前为止这段时间中反复发生的动作或多次出现的状态。常与频度副词如often, always, every week, twice等连用。
I have been to the Summer Palace twice. 我曾经去过颐和园两次。
He has always said so.他总是这么说.
四.现在完成时的标志词:
(一) 当句中有never(从来没有), ever(曾经), just(刚刚), already(肯定), yet(否定), before(以前),recently(近来),so far(到目前为止),in the past/last few years(在过去几年里)等时,常用现在完成时。
a)already 往往用于肯定句,用在疑问句时表示强调或加强语气;yet 用于否定句和疑问句。
例句:
He has already left here. 他已经离开这里了。
Has he already left here? 他(真的)已经离开这里了吗?(表示加强语气)
My teachers haven’t had breakfast yet. 我的老师们还没有吃早饭。
Have you written to your parents yet? 你已经给你父母写过信了吗?
b)never 是否定词,表示“从来没有”,而ever 表示“曾经”
例句:
We have never been to the Great Wall. 我们从来没有去过长城。
Have you ever been to Canada? 你们曾经去过加拿大吗?
c)just表示“刚刚”(用于完成时态时,与already,never 等副词的位置一样,多用在助动词have/has和动词过去分词之间)
例句:
He has just come back. 他刚刚回来。
They have just finished the work. 他们刚刚完成那项工作。
(二)当句中有"for 段时间"或"since 点时间"等时,主句常用现在完成时,谓语动词必须是延续性动词,若是非延续性动词,要改为延续性动词或表状态的词(短语)。
a)for 一段时间
例句:
I have been here for 5 weeks.
He’s studied English for 3 years.
b)since 表示过去某一时间的)时间点
例句:
I have been here since 2000.
I have been here since 5 years ago.
I have been here since I graduated in 2000.
注1): since 也可单独使用, 表示“自那时起”; 另外since前也可加上ever,以加强语气.
例句:
I have been here (ever) since.
I have been here (ever) since I graduated in 2000.
注2): 对for或since引导的时间状语提问必须用how long, 决不能用when.
如:
I have lived here for 10 years. -------> How long have you lived here?
She has stood here since 2 hour ago. -----------> How long has she stood here?
五.现在完成时注意事项:
1.短暂性动词与延续动词间的转换
如:
He has been a soldier for three years.他参军三年了。
His father has been dead for two years.他父亲去世二年了。
The film has been on for 5 minutes.电影已开始五分钟了。
We have studied English for three years. 我们(开始)学英语已三年了。
2.have been 与have gone 的用法比较
have been to 意思是“到过,去过”,表示曾经到过某处,但现在人不在那儿。
have gone to 意思是“去了”,表示已经去了某地,现在人可能在去的途中或已在那儿了。
have been in 意思是“呆在某处一段时间了”
如:
Has she ever been to Nanjing? 她曾去过南京吗?
You have never been there, have you? 你以前从未去过那儿,是吗?
I have been to Guiling, I went there last year. 我去过桂林,我去年去的。
She has gone to Nanjing. 她已经去南京了。
3.与一般过去时的用法比较
1)一般过去时表示过去某时发生的动作或单纯叙述过去的事情,强调动作;现在完成时为过去发生的,强调过去的事情对现在的影响,强调的是影响。
例句:
I saw this film yesterday.(强调动作发生的时间是yesterday 。)
I have seen this film.(强调对现在的影响,电影的内容已经知道了。)
2 )一般过去时和表示过去的时间状语连用,如:…ago, last week/...In 2008, in the past, just now, the day before yesterday, yesterday ...Then(那时),that day, one day, once(从前)
现在完成时常和recently(近来),ever, never, twice, so far(到目前为止), since,for,in the past/last few years , already(肯定句), yet(否定,疑问句), just(刚刚), before(以前)连用。现在完成时不与表示过去的时间状语连用。
现在完成时可表示持续到现在的动作或状态,动词一般是延续性的,如live, teach, learn, work, study, know.