`
白粥若水
  • 浏览: 103842 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

11-10-09 一个小例子带来的思考

 
阅读更多

今天上课,老师出了一个据说是面试题目的东东:编写一个虚数类(a+bi),并提供相加和相减的方法。

 

题目一出来,众皆不屑,这是什么题目,顺手拈来。

 

public class imaginaryNumber{

private int a ; //实数部分

private int b ; //虚数部分

 

public imaginaryNumber(int a,int b){

this.a = a;

this.b = b;

}

 

public String toString(){

return new String(this.a+"+"+this.b+"i");

}

 

}

 

这是类的数据结构,很简单。然后是相加的方法。

 

首先是一个同学这么写的:

public void add(imaginaryNumber o2){

this.a += o2.a;

this.b += o2.b;

}

老师说,答案刚及格。为什么? 基本功能实现了,一个很简单的破绽:不支持连加,当几个数相加时,很麻烦。

 

 

皆颔首同意,又一人改之:

public imaginaryNumber add(imaginaryNumber o2){

 

return new imaginaryNumber(this.a+o2.a , this.b+o2.b);

}

想:这次总可以了吧

老师说跟上面的是一个分数。提问:为什么?

想半天。

老师答:每加一次,都要创建一个imaginaryNumber对象,浪费内存

想:靠,这样的啊。平时还真没想过

 

 

最后老师给了一个算好的答案,将上面的2种优势结合起来:

public imaginaryNumber add(imaginaryNumber o2){

this.a += o2.a;

this.b += o2.b;

return this;

}

答案虽不是最好,肯定有更好的答案,但这个例子说明了一个问题

我们平时每一下敲键盘的时候,是否想清楚了?是否是最好的方式?是否考虑到了整个程序的性能要求?

 

简而言之,我们是否认真对待过我们做的东西?

 

例子虽小,感触颇深,回来就记下来了。

分享到:
评论
1 楼 outcool 2011-10-10  

相关推荐

    C语言的小程序 有200个例子 超值啊

    每个小程序都是一个独立的学习单元,通过实际运行和分析这些程序,你可以更直观地理解C语言的各个概念,并逐步提高编程能力。此外,解决例子中的问题和挑战,也是提升编程思维和问题解决技巧的有效途径。 为了充分...

    幼儿园教案2021-大班科学教案:我是小问号.doc

    这篇文档是一个针对幼儿园大班的科学教案,名为“我是小问号”。教案旨在培养孩子们对科学事物的好奇心,激发他们积极思考并提出问题的能力。以下是教案中的关键知识点: 1. **活动目标**: - 提高孩子们的思维...

    20151910042-刘鹏-DSA思考题-05 - Stack and Queue1

    逆序操作的一个典型例子是对输入的字符进行逆序输出,例如,输入一串字符后,利用栈的后进先出特性可以轻松实现换行操作。而在匹配操作中,栈被用来检测字符串中的成对元素,例如在编程语言中,代码块的开始和结束...

    how-to-be-a-programmer-cn.pdf

    ### 如何成为一个优秀的程序员 #### 一、个人技能 **1. 学会Debug** - **如何分离问题debug:** - 分解问题到最小可重复执行的部分。 - 使用二分法查找错误来源。 - 确保每次只改变一处。 - **如何移除错误:*...

    很好的英语四六级作文模版

    - 先介绍对方的观点,并给出一个例子来支持这个观点。 - 例如:“Some people believe that ①---------------- (观点一). For example, they think ②----------------- (举例说明). And it will bring them ③--...

    2009年考研英语真题及解析-09考研英语答案..doc

    这篇文档标题为“2009年考研英语真题及解析-09考研英语答案”,描述部分并未给出具体信息,但标签为空,说明没有特定的关键词。文档内容是一段关于动物智力研究的文章,作者通过引用果蝇实验来探讨智慧与生存之间的...

    江苏省丹阳市九年级政治全册 9-11-1走向世界的中国教案 苏教版.doc

    这个主题属于中学政治或思想品德课程的一部分,旨在帮助九年级的学生理解中国在全球化进程中的角色以及国际地位的提升。 1. **经济全球化与WTO**: - 经济全球化是指世界各国经济日益紧密联系的趋势,表现为贸易...

    算法导论 教师手册 英文版 课后思考题答案

    - **课后思考题答案**:引导学生思考随机化算法的优点与应用场景,以及其可能带来的问题。 ##### 5. **第五章:堆排序** - **讲座笔记**:详细讲解了堆排序算法的工作原理,包括堆数据结构的构建与维护。 - **...

    广东工业大学传感与检测技术基础复习思考题带答案

    电桥电路图未给出,但应变片应两两对应,一个桥臂上的两个应变片同向应变,另一桥臂上的应变片反向应变。 2-10 ⑴ U0=(4V/480Ω)*1.2Ω=0.1V;⑵ U0=(4V/240Ω)*1.2Ω=0.2V;⑶ U0=(4V/240Ω)*2*1.2Ω=0.4V。 2-11...

    2015年春八年级政治下册 第11-20课复习教案 苏教版.doc

    这篇文档是针对2015年春季学期八年级下册政治课程的复习教案,涵盖了第11至20课的内容,旨在帮助学生巩固和理解教材中的核心知识点。教案设计者强调了教学目标、重点和难点,并提供了教学方法和教具,以确保复习的...

    第四章正确的思考方法

    埃玛·盖茨博士的故事就是一个很好的例子。他通过长期的静坐冥想来训练自己的思维,从而能够创造出众多的发明和发现。 ##### 2. 补偿性报酬 尽管正确的思考方法可能会带来暂时的不便或者挑战,但最终得到的补偿性...

    初二政治上学期换位思考与人为善.ppt

    比如,一个简单的故事讲述了一个老人和一个小男孩救鱼的故事。小男孩不小心将装有小鱼的水桶打翻,鱼儿散落一地。老人教给小男孩一个办法:将水洒在小鱼身上,帮助它们回到水中。这个故事告诉我们,即使是微不足道的...

    “深度学习”要有深度——一节公开课带来的思考.pdf

    深度学习是当前教育领域内备受关注的一个概念,它超越了传统的表面式学习,注重培养学生的理解和批判性思维能力。在“深度学习”要有深度——一节公开课带来的思考中,作者通过对一节数学公开课的观察,探讨了如何...

    如何写PS purdue网上教程

    在动笔之前,有几个关键问题值得思考,这些问题能帮助申请者更好地组织自己的思路: 1. **你的独特之处是什么?** - 思考自己有哪些特别的经历、成就或者背景是其他人所不具备的。 2. **哪些细节可以突出你的特点...

    Ice-Breaking小游戏.pdf

    游戏通常包括几个环节,其中一个例子是"倾听测试",它是一个判断性的小测试,通过故事情节让参与者做出判断,以此来训练他们的专注力和理解能力。 在倾听测试中,给出一个关于商店打烊时遭遇事件的情境,参与者需要...

    【心得体会】大疫情下的小思考.docx

    ### 大疫情下的小思考——从个人到社会的深刻反思 #### 一、生命的脆弱与珍贵 在这篇文章中,作者通过回顾2003年的非典疫情以及2020年的新冠肺炎疫情,深刻体会到了生命的脆弱与珍贵。文章提到了刘慈欣在《流浪...

    战略思考:利用资源收入投资可持续发展的未来(英文)-2019.2-39页.rar

    标题中的“战略思考:利用资源收入投资可持续发展的未来”揭示了这份报告的核心主题,它聚焦于如何通过有效地管理和投资自然资源产生的收入,来推动一个国家或组织的长期可持续发展。这通常涉及到经济、环境和社会三...

    蜈蚣博弈例子:为什么4个强盗无法均分80根金条.docx

    "蜈蚣博弈"是一个在经济学和博弈论中广泛讨论的概念,源自1981年罗森塞尔提出的一个动态博弈模型。这个模型通过一系列的决策和反推,揭示了个体在博弈过程中的策略选择如何影响整体结果。在这个例子中,四个强盗如何...

    麦肯锡金字塔原理思考、写作和解决问题的逻辑培训教材.pptx

    - **层次分明**:从底层到顶层,信息越来越抽象,最终支持一个中心思想。 - **逻辑顺序**:各层级之间的信息按照一定的逻辑顺序组织。 **2.2 具体表现** - **思想章节段落句子图**:文章中的思想形成单一思想统领...

    系统思考进阶与综合演练.doc

    系统思考是一种深度理解复杂系统行为的方法,它强调对系统内部各个元素之间相互作用的理解,...无论是个人的成长、组织的发展还是社会的变迁,系统思考都为我们提供了一个全面、动态的视角,让我们能够预见并塑造未来。

Global site tag (gtag.js) - Google Analytics