定义:为了提高代码的复用性,把有特定功能的代码独立封装成一段独立的小程序代码块,需要的时候直接调用这段小程序即可,这种封装封装的具体表现形式称为方法或函数
- 方法的位置: 必须位于类中;方法之中不能再定义方法;一个类中可以有0个、1个、多个方法。
- 方法的定义
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...){
函数体;
return 返回值;
}
其中修饰符用于决定方法的访问权限。返回值类型就是运行这段程序的运算结果的类型,如果函数没有返回值则用void来修饰。函数名是标识符,应遵守命名规则。形式参数是一个变量,用于储存调用函数传递进来的实际参数,可以没有也可以有多个。返回值是将计算结果返回给调用者,return后面返回值的数据类型要跟方法定义的返回值类型保持一致。
// main()就是一个函数
public class Test02 {
public static void main(String[] args) {
// 方法体
/* 4种修饰符
1.default: 默认,什么也不写,在同一个包内可以访问。
2.private: 私有的,在同一个类可见,可以使用在:变量、方法。
3.public : 公共的,对所有类可见,可以使用在:类,接口,方法,变量。
4.protected: 对同一包内的类和所有子类可见, 可以用在:变量,方法。*/
}
}
- 方法的形式
根据参数和返回值排列组合后有四种形式
public class Test02 {
//1、无参无返回值
public void test1(){}
//2、有参无返回值
public void test2(int a){}
//3、无参有返回值
public int test3(){
return 1;
}
//4、有参有返回值
public int test1(int a){
return a;
}
}
- 方法的调用
方法只有在调用后才被执行
方式:对象名.方法名(),注意若方法被static修饰,则通过:类名.方法名()调用。例如
public class Test02 {
public static void main(String[] args) {
System.out.println(123);
}
public int test1(int a){
System.out.println(a);
return a;
}
public double test3(double a){
//调用test1方法
int b = test1(12);
String[] str = {"a","b"};
//调用main方法,要用类名来调用
Test02.main(str);
return a+b;
}
}
- 方法的重载
定义:在同一个类中,可以有一个以上的方法使用相同的方法名称,但是这些方法的参数必须不同,即:参数个数不同,或者是参数类型不同。例如
public class Test03 {
public static void main(String[] args) {
// 方法的重载
func(12);
}
//源方法
public static void func(int a,int b){}
//正确的重载
public static void func(int a){}
public static void func(String a){}
public static void func(int a,int b,int c){}
//以下不是重载
//public static int func(){} //返回值类型不同
//public static void func(int a) throws Exception{}//参数类型相同,抛异常
//public static void func(int c,int d){}//参数类型相同,参数名字不同
}
函数总结
(1)、方法必须先声明后使用,不可使用未声明的方法
(2)、方法不调用是不会执行的,也就是方法只有被调用才被调用
(3)、方法调用一次执行一次,同一个方法可以被调用多次
(4)、方法与方法是平级关系,不能嵌套定义
(5)、方法定义的时候参数之间要用逗号隔开
(6)、如果方法有明确的返回值,一定要用return返回一个值
(7)、函数的结果应该返回给调用者,交由调用者处理
(8)、return语句要放在最后面
(9)、方法要不要输入参数、要不要返回值是根据需求决定、根据自己决定