母鸡孵出小鸭子
说说List的contains(Object o)方法.
在编码时遇到这样一个问题:
Excel文件中有如下记录:
Title Name Note
Manager Lincon afjdksal
Coder Clinton arueiwqo
Designer Wend zmvcx
...... .......... ..........
...... .......... ..........
对应的文件结构是这样的:
--parentfolder:
--folder1:
manager&Lincon.mid
coder&clinton.mid
designer&wend.mid
.......................
--folder2:
manager&Lincon.mp3
coder&clinton.mp3
designer&wend.mp3
.......................
--folder3:
manager&Lincon.rm
coder&clinton.rm
designer&wend.rm
.......................
要求通过对excel文件的解析,判断出一条记录在三个子文件中有否有对应的audio文件存在.
先写了两个类来描述这两种现象:ExcelRecord和FileName
这怎么来判断呢?......后来边想边写,总不能自己用多层循环来查找吧.......后来突然想到用List这个接口里的contains()方法了,但以住用这个contains()方法里,所判断可都是同一个类有对象呀.于是想到让这两个类都继承自同一个父类NameInfo.这样在定义List对象时用List<NameInfo>,调用contains时就达到以前所常见的那种情景了.
(期间想过让这个两个类ExcelRecord和FileName实现一个接口,如INameInfo,在定义List时这样写List<INameInfo>,似乎也可以达到那种效果.可后来一想,这里用contains是最终想利用覆盖Object类的那个equals来判断,可INameInfo接口又不能覆盖Object的equals方法,就没有往下多想就否掉了这个想法.不过,这样的一个念头让我想起了Serializable这样标签接口的应用.)
有了以上的想法就开始往下写了,在定义List<NameInfo> records时,想着让它里面放进去ExcelRecord类的对象,这样只要覆盖了ExcelRecord类的equals()方法可以达到判的效果了.
写完后没有用JUnit手动地写一个main来测试,发现不行!这是怎么回事?用Debug来跟踪代码的执行情况,有了惊天大发现:
public boolean contains(Object o) {
return indexOf(o) >= 0;
}
public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}
原来contains在调用eqauls方法时是这样调用的:o.equals(elementData[i])的,而不是以前所想像的那样elementData[i].equals(o)!
这样就根本没有必要让这个两个类(ExcelRecord,FileName)继承同一个父类NameInfo了.再进一步想,也就是说只要FileName类很好地覆盖了Object类的equals方法,ExcelRecord的List里就认可了FileName的存在.
(转而一想,当初Sun的设计师在设计这个contains方法的实现时是很随意在设计成现在的o.equals(elementData[i])这样呢,还是以前已有前车之鉴了呢?越来越感受到高手的伟大了.)
也就是说只要DuckEgg这个类很好地覆盖Object的equals方法,hen(hen为List<HenEgg>的实例)在调用contains时就会认为DuckEgg与HenEgg是一样的,小鸭子就可以由母鸡来孵出了.
分享到:
相关推荐
这篇文档是关于人教版四年级语文下册第14课《母鸡》的教学内容,包括反思和教案。课文主要讲述了作者对母鸡的情感变化,从一开始的讨厌到后来的敬佩,以此来体现母爱的伟大。教学目标分为三个方面:一是掌握10个生字...
"母鸡--教学设计" 本教学设计旨在让学生正确、流利、有感情地朗读课文,了解母鸡的生活习性和伟大的母爱在母鸡身上的具体表达,感受作者对母鸡的情感经历,并学习课文抓住特点,用事实说话,具体生动描写动物的写法...
最新人教版四年级语文下册第四单元14《母鸡》教案-.pdf
四年级语文下册 第四单元 14母鸡教案 新人教版-新人教版小学四年级下册语文教案.doc
通过播放录像和朗读,学生能感受到母鸡在照顾小鸡时展现出的勇敢、负责、慈爱和辛苦,从而理解作者的情感转变。 课文的学习分为详略两个部分。详细讲解的部分主要集中在母鸡的讨厌之处和作者对其态度改变的转折点,...
教学准备包括学习单,教学方法采用引导教学法,学生则采用自主、合作、探究的学习方式。 【教学过程】 课程开始以成语填空导入,引发学生对与鸡相关的成语的兴趣。接着检查预习,巩固字词理解,然后通过找寻作者...
《Unity中的公鸡母鸡动物模型制作与应用》 Unity是一款强大的跨平台游戏开发引擎,广泛应用于游戏制作、虚拟现实(VR)、增强现实(AR)等领域。在Unity中,动物模型的创建和动画设计是提升游戏或应用真实感的重要...
根据给定文件的部分内容,我们可以总结出以下相关的知识点: ### 一、听力部分 文档中并未提供具体的听力题目,但可以推测此部分包含了对学生的听力理解能力的考察,可能涉及日常对话、短文理解等内容。 ### 二、...
2. **阅读理解**:通过对《母鸡》这篇课文的默读,学生需要找出体现作者对母鸡前后态度变化的句子,这是对文本理解能力的训练。通过指导学生读出不同情感,培养他们通过语调和语气表达文本情感的能力。 3. **情感...
教师引导学生找出作者对母鸡态度变化的原因,分析母鸡的生活习性,尤其是母鸡对鸡雏的保护行为,以此让学生感受到母爱的伟大。 【知识点】 1. 生字词学习:学生需要掌握新课中的生字和词汇,如“嘎嘎”、“发了狂”...
"母鸡-教学设计.docx" 本资源是基于《母鸡》课文的教学设计,旨在指导学生自主阅读、感悟作者对母鸡由厌恶到敬仰的感情经历,并比较《猫》和《母鸡》的写法异同。以下是教学设计的详细内容: 教学目标 1. 自主...
《母鸡》是著名作家老舍的一篇散文,这篇课文主要描绘了作者对母鸡态度的转变,从最初的反感转为尊敬,通过对比手法展现了母鸡的负责任、慈爱、勇敢和辛苦,以此来赞颂母爱的伟大。文章的语言朴实自然,充满生活气息...
这篇小学四年级语文上册第四单元的教案是关于《母鸡》一课的,由新人教版出版。教案的核心目标是帮助学生认识7个生字,有感情地朗读课文,理解和体会母鸡作为母亲的形象,进而感受母爱的伟大。同时,通过对比《母鸡...
30. Lamb - 小羊:小绵羊,通常用于肉类。 31. Sheep - 绵羊:常见的农场动物,毛可制衣。 32. Goat - 山羊:灵活的动物,适应力强。 33. Cow - 奶牛:主要为了牛奶和牛肉而饲养。 34. Donkey - 驴:耐力好的工作...
- 随笔中描述了母鸡孵出小鸡后的行为,展示了母鸡的勇敢和警惕性。 - 一对近义词是“警戒”和“警告”,都是表示提高警惕的意思。 - 划线句子是过渡句,起到承上启下的作用,将母鸡在家内外的表现连贯起来。 - ...
此题未给出完整信息,因此无法进行具体解析。以上是对题目1至18的具体解析,每个题目都涵盖了相关的语言点和词汇含义,通过这些解析可以帮助考生更好地理解和掌握大学英语四级考试中的词汇和语言运用能力。
微信HTML5在线朋友圈游戏源码带安装部署教程-圣诞母鸡.rar
6. hen - 母鸡 同时,学习形容词"many",表示“许多”或“多的”,以及“farm”这个名词,意为“农场”。 二、拓展词汇 除了核心词汇,还引入了更多的动物名词,例如: 1. lion - 狮子 2. panda - 熊猫 3. tiger - ...
最新人教版四年级语文下册四单元:十四课《母鸡》精品课件一课时(共24张PPT)-.pdf