日期:2011-03-22 16:17:00 来源:本站整理
办法过载[Java编程]
本文“办法过载[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在任何程序计划语言中,一项重要的特点就是名字的应用.我们成立一个对象时,会分配到一个保存区域的名字.办法名代表的是一种具体的行动.通过用名字描写自己的系统,可以使自己的程序更易人们理解和改正.它非常象写散文——目的是与读者沟通.
我们用名字引用或描写全部对象与办法.若名字选得好,可以使自己及其他人更易理解自己的代码.
将人类语言中存在具体差别的概念“映射”到一种程序计划语言中时,会呈现一些特别的问题.在平常生活中,我们用相同的词表达多种差别的含义——即词的“过载”.我们说“洗衬衫”、“洗车”以及“洗狗”.但假如强迫象下面这样说,就显得很笨拙:“衬衫洗 衬衫”、“车洗 车”以及“狗洗 狗”.这是由于听众根本不需求对履行的行行动任何明确的辨别.人类的大大都语言都具有很强的“冗余”性,所以即便漏掉了几个词,仍旧可以推断出含义.我们不需求举世无双的标识符——可从具体的语境中推论出含义.
大大都程序计划语言(分外是C)要求我们为每个函数都设定一个举世无双的标识符.所以绝对不能用一个名为print()的函数来显示整数,再用另一个print()显示浮点数——每个函数都要求具有唯一的名字.
在Java里,另一项因素逼迫办法名呈现过载情形:构建器.由于构建器的名字由类名决意,所以只能有一个构建器名称.但假如我们想用多种方法成立一个对象呢?比方,假定我们想成立一个类,令其用尺度方法举行初始化,别的从文件里读失信息来初始化.此时,我们需求两个构建器,一个没有自变量(默许构建器),另一个将字串作为自变量——用于初始化对象的那个文件的名字.由于都是构建器,所以它们必须有相同的名字,亦即类名.所认为了让相同的办法名伴随差别的自变量范例利用,“办法过载”是非常关键的一项办法.同时,固然办法过载是构建器必须的,但它亦可利用于其他任何办法,且用法非常便利.
在下面这个例子里,我们向大家同时展示了过载构建器和过载的原始办法:
//: Overloading.java // Demonstration of both constructor // and ordinary method overloading. import java.util.*; class Tree { int height; Tree() { prt("Planting a seedling"); height = 0; } Tree(int i) { prt("Creating new Tree that is " + i + " feet tall"); height = i; } void info() { prt("Tree is " + height + " feet tall"); } void info(String s) { prt(s + ": Tree is " + height + " feet tall"); } static void prt(String s) { System.out.println(s); } } public class Overloading { public static void main(String[] args) { for(int i = 0; i < 5; i++) { Tree t = new Tree(i); t.info(); t.info("overloaded method"); } // Overloaded constructor: new Tree(); } } ///:~
Tree既可成立成一颗种子,不含任何自变量;亦可成立成生长在苗圃中的植物.为支持这种成立,共利用了两个构建器,一个没有自变量(我们把没有自变量的构建器称作“默许构建器”,注释①),另一个采取现成的高度.
①:在Sun公司出版的一些Java资猜中,用粗陋但很阐明问题的词语称谓这类构建器——“无参数构建器”(no-arg constructors).但“默许构建器”这个称谓已利用了很多年,所以我挑选了它.
我们也有大概但愿通过量种途径调用info()办法.比方,假定我们有一条额外的消息想显示出来,就利用String自变量;而假定没有其他话可说,就不利用.由于为明显相同的概念赋予了两个独立的名字,所以看起来大概有些古怪.幸运的是,办法过载答应我们为二者利用相同的名字.
以上是“办法过载[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:辨别过载办法
- ·下一篇文章:<b>由构建器保证初始化</b>
- ·中查找“办法过载”更多相关内容
- ·中查找“办法过载”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论