Java的方法
方法是用积木你们节目,表演的任务,可称得上是一次又一次地用同一代码,以执行任务,每一次。 基本,但基本部件的方法的声明是它的名字,它的返回类型,参数签名和代码段曲括号。 以下代码行的一个例子,一种宣言。 静态无效dosomething ( ) ( / /添加代码这里) 这种方法被称为dosomething有一个返回类型的空白,它只是表明,该方法不返回一个值。 我们已经看到关键字已经作废,这是返回型的主要方法。 如果方法dosomething被添加到您的主程序阶层,然后在主体法的阶级,你会调用方法dosomething输入以下代码: dosomething ( ) ; 注方法dosomething需要以静在时刻,因为主要方法,从其中我们假设方法dosomething是去被称为,也是静态的。 该方法dosomething不须静,如果我们创造了一个类的哪dosomething将属于。 如果您想要一个方法返回一个值,你必须指定返回类型的方法,然后,你必须使用关键字,返回在法典座,指明返回值。 静态诠释getfivedoubled ( ) (选出10位; ) 下列方法将简单地返回值10至何处,它被称为从。 以下一行代码,可补充说,例如,在你的主要方法,以转让本价值的一个变量: 诠释mynumber = getfivedoubled ( ) ; 这条线的代码将指派价值10至变量mynumber 。 注仅仅因为方法getfivedoubled现在有一个返回类型,但这并不意味着它可以不被要求对自己的。 getfivedoubled ( ) ; 这种方法将基本上什么事都不做,但你可能有一个方法执行需要的任务,然后返回一个值,你想不理会。 一种方法有一个返回值(不作废) ,必须有一个return语句,在一切可能的退出点,从方法。 编译器将逐步升温,如果路径没有一个返回值是可能的。 在另一方面,如果你有一个方法返回型作废,然后想退出了该方法的早期,你可以使用关键字回报自己的。 举例来说,采取以下代码: 公共无效dosomething ( ) (如果( leaveearly ==属实)的回报; / /否则继续进行剩下的代码) 这是多少类似于break语句,是用来退出了某些代码块,如开关案件和循环中,我们看到了。 例如,我们刚刚看到的是一个非常基本的例子,但使用的关键字,返回在这个例子可十分有益的,立即退出了复杂的码簇在一个特定的方法。 参数传递以往方法, getfivedoubled ,真是没有意思,非常不方便,因为它只会返回一个值, 10 。 不过,我们可以创建一个方法,将采取任何号码,双重它,然后返回了一倍价值。 可以做到这一点用参数传递。 参数传递可以让你通过价值观的一种方法,该方法可以操纵。 下列方法中包含一个参数,这是一倍,而且新价值的回归。 诠释doublenumber (诠释号码) (人数*= 2 ;回报有多少; ) 正如您所看到的,参数是一个变量的数目类型Int及指明是与括号内表示,按照名字的方法。 呼吁这种方法,你可以,比如,用以下代码: / /双重2等于4条诠释mynumber = doublenumber ( 2 ) ; / /然后连其目前的人数为4等于八mynumber = doublenumber ( mynumber ) ; / /然后再翻两番,目前有多少平等32 mynumber = doublenumber ( doublenumber ( mynumber ) ) ; 这最后一行代码将调用方法doublenumber两次,第一次回到价值是双重的价值mynumber ,这反过来又是那么通过作为参数,以第二个电话doublenumber最终回报的最终价值32 ,指派它以变mynumber 。 重复这些话,我们刚才所说,如果我们的价值,你通过作为参数,是一个原始数据类型,变量,变量,它本身并非传递给方法。 一个新的变数,这是价值创造的方法,然后再使用。 这意味着变化作出这个值内所谓的方法不会影响其价值的原始变量。 你还可以有一个以上的参数,用逗号分开,连续参数。 以下简单的例子, spiderseyes.java ,包含法繁殖,其中载有两个参数是两个类型Int及回报价值的两个参数相乘得出的。 这里是代码: 市民阶级spiderseyes (公共静态诠释乘(诠释valuea ,诠释valueb ) (返回valuea * valueb ; )公共静态无效主体(弦距翻译起始位[ ] ) (诠释numberofspiders = 10 ;诠释eyesperspider = 8 ;诠释totaleyes =乘( numberofspiders , eyesperspider ) ; 55 System.out.println ( "总眼= " + totaleyes ) ; ) ) 有两件事要注意从这个例子。 首先,我们用关键字为静态方法繁殖。 这是因为不存在的,例如每班spiderseyes目前开设,因此,为了为主体,它是静态的,为了能够访问这个方法繁殖,它必须是静态也。 第二件事,以公告,该方法主要还考虑一个参数,这是一个数组的弦乐团。 方法签名这是有可能的有两种方法,分享同一个名字。 但是,他们必须有不同的签名,因为否则,当你想打电话的方法之一,编译器无法区分一,从另一方面,由于引用这种方法是基于编译器确认签字。 有方法的同一个名字,但具有不同的签名,是众所周知的,因为超载的方法。 名字的方法和参数签名的这种方法确定一个方法的签名。 返回类型的一种方法,不影响其签字。 因此,你不能有两个方法具有相同的名称具有两种不同的返回值具有相同参数的签名。 在前面的例子, spiderseyes.java ,我们有一个方法称为倍增,历时两个参数值的类型诠释,返回参数的值值相乘。 如果我们还包括一个方法做着同样的事情,而所用的价值型双,我们反而可能会造成另一种方法具有相同的名字,但具有不同的参数签名。 公共静态诠释乘(诠释,诠释二) (返回一个* B组; )公共静态双乘(双A ,双B ) (返回一个* B组; ) 参数签名,是由数据类型的参数,因此,一些参数也。 让我们说,我们现在增加了以下方法,加上原有的两个方法: 公共静态长乘(诠释,诠释二) (回报(长期)款( a * b )款; ) 该计划将不再编制,因为这种方法与原繁殖方法有着相同的签名。 他们有同一个名字,也同样参数签名两个参数均型诠释。 最明显的解决办法是改变参数签字后一种办法采取两项参数式长。 公共静态长乘(长的,只要二) (返回一个* B组; ) 这将现在的工作,因为该参数签名,是不一样的。 如果你是无法改变的参数签名在一个合理的方式,甭管;只是给予方法不同的名称(例如, multiplyint , multiplydouble , multiplylong等) 。 这是一篇文章说:由加夫列长佩雷斯。
|
|||
|