方法详解

方法的所属性
在Java语言中,方法不能独立存在,方法必须属于类或对象。
因此,如果需要定义方法,则只能在类体内定义,不能独立定义一个方法。一旦将一个方法定义在某个类的类体内,如果这个方法使用了static修饰,则这个方法属于这个类,否则这个方法属于这个类的的实例

(使用static修饰的方法属于这个类本身,使用static修饰的方法既可以使用类作为调用者来调用,也可以使用对象作为调用者来调用。值得指出的是,使用static修饰的方法还是属于这个类,因此使用该类的任何对象来调用这个方法时将会得到相同的执行效果,这是由于底层依然是使用这些实例所属的类作为调用者)
(没有static修饰的方法则属于该类的对象,不属于这个类本身。因此没有static修饰的方法只能使用对象作为调用者来调用,不能使用类作为调用者来调用。使用不同对象作为调用者来调用同一个普通方法,可能会得到不一样的结果。)

方法的参数传递机制
Java中调用方法也必须使用类或对象作为主调者。如果声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时实际传给形参的参数值也被成为实参。
Java的实参值是如何传入方法?这实际由Java方法的参数传递机制来控制的,Java里方法的参数传递方法只有一种:值传递。所谓值传递,就是将实际参数值的副本(复制品)传入方法内,而参数本身不会受到任何影响。

(Java里的参数传递类似于《西游记》中的孙悟空,孙悟空复制了一个假孙悟空,这个假孙悟空和孙悟空具有相同的能力。但不管这个假孙悟空遇到什么事情,真孙悟空都不会受到任何影响。)
形参个数可变的方法
递归方法
一个方法体内调用他自身,被称为方法递归。方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。
方法重载
Java允许同一类里定义多个同名方法,只要形参列表不同就行。如果同一个类中包含了两个或两个以上方法的方法名相同,但形参列表不同,则被称为方法重载
方法重载的要求就是两个相同一个不同:同一类中方法名相同,参数列表不同。至于方法的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。

(为什么方法的返回值类型不能用于区分重载的方法?
对于int f(){}和void f(){}两个方法,如果这样调用
int result = f();,系统可以识别是调用返回值类型为int的方法;但Java调用方法时可以忽略方法返回值,如果采用如下方法来调用f();,你能判断是哪一个方法么?如果你尚且不能判断,那么Java系统也会模糊。在编程中有一个重要的规则:不要让系统糊涂,系统一糊涂,那很定就是自己出错了。因此,java里不能使用方法返回值类型作为区分方法重载的依据)

发布了47 篇原创文章 · 获赞 12 · 访问量 7252

猜你喜欢

转载自blog.csdn.net/weixin_43717681/article/details/103070152