Java方法(函数)的形式如下:
访问权限 [修饰符] 返回值类型 方法名([参数列表]){
方法体
}
访问权限:控制方法(函数)能否在其他“类”中使用
有public(可以在其他类中使用),protected,private(只能在该类中使用)
修饰符 :final, synchronized,static。如果一个方法中没有static修饰,只能使用“存储对象的变量.方法名()”来引用;
若有static修饰,可以用“类名.方法名()”(推荐使用这种)和“存储对象的变量.方法名()”两种来引用
返回值类型:
a、如果方法没有返回值,则返回值类型为void,例如(第一个代码框,用的是void,不许有返回值)
b、如果返回值为基本数据类型,则返回值类型为基本数据类型或长度比当前返回值类型大的数据类型,具体请看第二个代码框
c、如果返回值类型为引用类型,则返回值类型要么与数据类型一致,要么是数据类型的父类(Object是所有的父类),具体请看第三个代码框
方法名 :要符合Java标识符命名规范,最好是动词或动宾结构
参数列表:可有可无,若有参数则多个参数之间用英文逗号间隔;
若有动态参数(须放在其他参数后面),形式是“数据类型 ... 参数名”,一个方法中只能定义一个动态参数;
动态参数实质上是数组。
我们来举个例子:
public class Test{//Test为“类”名
private void doHomeWork(int a,int ... b){ //int ... b 是动态参数
//此处为private,所以只能在该类中使用; doHomeWork是方法名(也叫函数名)
System.out.println(a);//打印a的值
System.out.println(b.length);//打印动态参数(数组)的长度
System.out.println(b[0]);//打印数组b中的第一个值
}
public static void main(String[] args){
Test test = new Test();//因为上面的doHomeWork方法中没有static,
test.doHomeWork(1,3);//所以用“存储对象的变量.方法名()”来引用
//Test.doHomeWork(1,3);若上面的doHomeWork方法中有static,则推荐用“类名.方法名()”来引用
}
}
//输出的结果是:
1 //第一个数赋值给a,即a = 1;
1 //从第二个数开始赋值给数组b,因为只有一个值,所以数组b的长度为1
3 //数组b的第一个值是3
public int print(){//此处int还可改为long、double等比int长的数据类型
int a = 10;
return a;//此处返回值为int类型
}
public String print(){//此处的String还可以换成Object
String name = "Tom";
return name;//此处返回字符串类型
}
若想了解数组的存储原理请参考 数组的存储原理