前面我们讲过了类中的方法声明和定义等;
方法还有其他的一些特性:比如方法的参数、方法的返回值、方法的重载等等;
一、方法的语法
[<modifiers>] <return_type> <name>([<arg_list>]) {
[<statements>]
[return type]
}
案例
public String getPersonName(String pwd, String username){
// statements
return "";
}
二、方法的参数(arg_list)
根据参数的个数,可以分为:无参数、有参数、可变参数,三种方法;可变参数必须是最后一个参数,用 type...
,可变参数是一个数组:
-
funcName(type arg1, type arg2, type... arg3)
//arg3就是一个可变参数 -
arg3
就是一个数组类型type[]
三、返回值
1、没有返回值:方法的返回值就写 void
;
2、有返回值的话:分基本类型和引用类型,有返回值,在方法中必须有 return
语句,返回对于类型的数据;
3、对于有返回值方法的调用,可以接收返回值,也可以不接收返回值;
四、方法重载
方法重载:方法名相同,参数类型或个数不同;
构造器是可以多个的(重载),同样的对于方法来说,也是可以重载的;
重载是为了实现多态,比如定义一个旅行的方法 travel(args) ,那么对于旅行的人来说,只要选择不同的旅行套餐就可以了,不需要知道具体的方法内部实现,这个不同的旅行套餐可以理解为不同的参数或类型;
当我们调用方法的时候,根据传入的参数类型 或 个数的不同,会自动调用对应的方法;
五、编程实战
代码的详细解读,可以参考视频教程
/**
* User: 祁大聪
*/
public class Person {
public void travel(){
System.out.println("我想旅行");
}
public void travel(String car){
System.out.println("我想旅行,用" + car);
}
public int travel(int car){
System.out.println("我想旅行,用" + car);
return car;
}
//方法重载
public String travel(String car, String train){
System.out.println("我想旅行,用" + car);
return "ok";
}
//可变参数 args
public void travel(String car, String train, String... args){
System.out.println("我想旅行,用" + car);
System.out.println(args.length);
for(String s : args){
System.out.println("s = " + s);
}
}
public static void main(String[] args) {
Person p = new Person();
p.travel("大众","高铁","步行","飞机","轮船");
}
}
六、作业练习
常见面试题:
1、重载的方法的名称必须相同 (√)
2、通过参数个数来实现重载 (√)
3、同参数类型来实现重载 (√)
4、返回值类型实现重载? (×)