1.方法
定义:一段定义在类中的业务逻辑的代码.
目的:封装右业务关系的代码,实现代码的复用,即简化代码书写.
2.方法定义的格式
修饰符,返回值类型 方法名(数据类型1,形参名1,数据类型2,形参2...){
方法体;
return[返回值]
}
修饰符:目前固定写法:public static
返回值类型:如果没有返回值:void
如果有返回值,就是具体的数据类型(包括基本数据类型和引用数据类型)
方法名:根据命名规范,最好做到见名知意.
形参列表:形参的数据类型和形参名组成一个形参定义,多个形参之间用逗号分隔.
方法体:就是方法被调用时候执行的语句
return;表示方法体结束,如果返回值为void,后边一定不能加任何值.此时,return语句可以省略
如果有具体的返回值,后面一定要跟一个值(数据类型一致的常量,变量,表达式).
方法定义的位置:
目前位置:类中,main方法之外
方法不能嵌套定义.但是方法之间可以互相调用.
3.方法的调用
<1>.有明确返回值方法的调用
>>>给相应类型的变量赋值
int res = add(1,2);
System.out.println(add(1,2));
>>>单独调用
add(1,2);
<2>返回值为void方法的调用
>>>只能单独调用
print ();
public static void main(String[] args){ int res = add(1,2); System.out.println(res); } // public static int add(int a,int b){ return a + b; }
有参数的方法被调用时,相当于给形参赋值.
方法的返回值返回给调用者
方法之间可以互相调用:
public static void main(String[] args){
introduce("Zhangsan");
}
//
public static void sayHi(){
System.out.println("Hello");
//
public static void introduce(String name){//name = "Zhangsan";
sayHi();//调用自定义方法
System.out.println("My name is : " + name);
}
4.方法的重载
eg1:
/* 演示方法的重载 在一个类中,多个方法名相同,但是形参列表不同(个数或者类型)的方法,称为方法的重载(overload) 方法的重载和返回值无关. 两同一不同: 同类,同名 不同形参列表 */ public class OverloadDemo{ public static void main(String[] args){ int a = 1; int b = 2; double d = 1.5; // int res1 = add(a,b); // System.out.println(res1); double res2 = add(a,b); System.out.println(res2); } /* public static int add(int a,int b){ return a + b; } */ public static double add(double a,int b){ return 0; } public static int add2(int a,int b,int c){ return a + b + c; } public static double add1(double d1,double d2){ return d1 + d2; } }
eg2:
/* 重载演示 */ public class OverloadDemo2{ public static void main(String[] args){ test(1); int a = 1; test(a); short s = 1; test(s); } public static void test(short s){ System.out.println("short类型形参的方法被调用"); } public static void test(int s){ System.out.println("int类型形参的方法被调用"); } }
eg3
/* 方法重载2 */ public class OverloadDemo3{ public static void main(String[] args){ int r1 = add(1,1); System.out.println(r1); double r2 = add(1.0,2.0); System.out.println(r2); } public static int add(int a,int b){ return a + b; } public static double add(double d1,double d2){ return d1 + d2; } }