Java中的方法

来源:互联网 发布:中国研究数据服务平台 编辑:程序博客网 时间:2024/06/05 21:52

Java里的方法不能独立存在,所有方法必须定义在类里。方法在逻辑上要么属于类,要么属于对象。

Java中方法的定义和功能都和传统的函数相似,但二者又有着显著的不同:在结构化编程中,函数是一等公民,整个软件由一个个函数组成;在面向对象的编程中,整个系统是由一个个类组成。所以在java中方法必须属于类或对象,不能单独存在。所以方法不能像函数那样被独立执行,执行方法时必须使用类或对象来作为调用者。

在类体中定义的方法如果使用了static修饰,则该方法属于这个类,否则该方法属于该类的对象。使用了static修饰的方法可是使用类或者类的对象来调用,普通方法只属于类的对象,只能用类的对象调用。static修饰的方法属于类,该类的任何对象调用这个方法将会得到相同的结果,与使用类作为调用者的执行结果完全相同。不同的对象调用同一个普通方法,可能得到不同的结果。

方法的参数传递机制

参数传递方式:值传递。就是将实参的副本(复制品)传入方法内,不管方法对这个复制品如何操作,实参本身不会受到任何影响。

基本类型、引用类型都是值传递。由于引用类型变量存放的是地址,所以当引用变量做实参传给形参时,传的是栈内存中对象的地址,形参将和实参同时指向栈内存中同一对象的地址,所以形参对对象的操作与实参对对象的操作相同。

形参长度可变的方法:

在定义方法时,在最后一个形参的类型后加三点(...),表示该形参可以接受多个参数值,多个参数值被当成数组传入(形参个数可变的参数其实就是一个数组参数)。下面两种签名效果一样:

public void testint a, String... src;

public void testint a, String[] src;

两种形式都包含一个名为src的形参,在两个方法体内都可将src当成数组来处理。区别是调用两个方法时存在差异:

test (6 , “形参”, “ 长度可变形式”)//这中方式更简洁

test (5 , new String[]{“形参”, “数组形式”});//必须给形参一个数组

数组形式的形参可以处于形参列表的任意位置,个数可变的形参只能处理形参列表的最后,即一个方法中最多只能有一个长度可变的形参。调用包含一个可变长度形参的方法时,这个长度可变的形参即可用传入多个参数,也可以传入一个数组。

方法的重载:

一个类里定义多个同名方法,形参列表不同。

方法重载的要求:两同、一不同(同一个类,方法名相同,形参列表不同)。与方法返回值类型,修饰符等无关。


0 0
原创粉丝点击