一:方法的概述
将一堆代码封装成一个具有独立功能的整体就是方法
使用方法的好处有:
1:提升了代码的复用性
2:简化了代码的逻辑,更符合java中面向对象的思想
方法定义的格式:
public static 返回值类型 方法名(参数列表){方法体}
返回值类型 : 数据类型,如果没有返回值,使用void占位;
方法名: 将来调用方法的时候,需要使用这个方法名;
参数列表: 形式参数,方法体中的原材料;
方法体: 一堆代码;(完成具体功能的代码)
例如 public static int max (int a, int b){方法体}
调用格式:
int num1 =5, num2 = 10;
int Max = sum(num1,num2);
System.out.println(“两个整数的和为:” + sum);
形参与实参的区别:
1:形参是形式参数,定义方法的时候用;由数据类型和变量名组成
2:实参是实际参数,调用方法的时候用;可以直接写常量也可以是一个已经定义好的变量名;
例如在 :public static int max (int a, int b){方法体}
中,a和b便是形参.
在第二个代码里 num1和num2便是实参.
方法中的两个明确:
1: 明确返回值类型
2: 明确参数列表
根据方法体确定方法的参数和返回值;
在方法体中,编写代码的时候,发现需要"原材料",就设计方法的参数;需要将"结果"反馈给别人,就设计方法的返回值;
二:方法的调用格式:
1:当方法不带返回值的时候为
方法名(实际参数);
例 getMax(5,9);
2:2:当方法带返回值的时候
返回值类型 变量名=方法名(实际参数);
例 int max= getMax(5,9);
调用方法的时候,实参的数量需要与形参的数量和类型保持一致.
注意事项:
1:方法不能嵌套定义;
2:方法的定义不分先后,定义后,不调用不会执行
3: 如果方法没有返回值类型,需要使用void关键字,同时方法体中可以省略return;
4:如果方法有返回值类型,方法体中必须写retrun 数据值;
方法重载的特点:
1:同一个类中,方法名相同,参数列表不同就是方法重载
2:好处是方便了方法的调用者
注意事项:
1:方法重载与方法的返回值无关,仅仅与名称和参数列表有关;
2:参数列表不同包括3种情况; 1:类型不同,2:个数不同;3:类型不同的情况下,顺序不同;
参数传递:
基本数据类型参数传递
特点: 传递的是数据值,对原来方法的变量没有影响
引用数据类型参数传递
特点: 传递的是地址值,对原来方法的变量有影响
例子:
/* 1.求两个整数之和
2.求两个小数之和
3.判断两个整数是否相等
4.判断两个小数是否相等
5.获取两个整数中较大的值
6.获取两个小数中较大的值
7.获取两个整数中较小的值
8.获取两个小数中较小的值
9.用一个方法获取两个整数中较大的值或较小的值*/
public class Test12 {
public static void main(String[] args) {
int sum1 = sum(5,8);
System.out.println("两个整数的和为:" + sum1);
double sum2 = sum(3.15,15.92);
System.out.println("两个小数和为:" + sum2);
boolean Equal1 = getEqual(6,6);
System.out.println(Equal1);
boolean Equal2 = getEqual(6.15,8.15);
System.out.println(Equal2);
int judge1 = max(5,9,1);
System.out.println("最大值:" + judge1);
int judge2 = max(5,9,0);
System.out.println("最小值:" + judge2);
double judge3 = max(5.15,8.67,1);
System.out.println("最大值:" + judge3);
double judge4 = max(5.15,8.67,0);
System.out.println("最小值:" +judge4);
}
//求两个整数之和
public static int sum(int a,int b){
return a+b;
}
//求两个小数之和
public static double sum(double a,double b){
return a+b;
}
/*3.判断两个整数是否相等
4.判断两个小数是否相等*/
public static boolean getEqual(int a,int b){
return a==b ? true:false;
}
public static boolean getEqual(double a,double b){
return a==b ? true:false;
}
//用一个方法获取两个整数中较大的值或较小的值
public static int max(int a,int b ,int flag) {
if (flag == 1) {
if (a > b) {
return a;
} else {
return b;
}
} else {
if (a < b) {
return a;
} else {
return b;
}
}
}
//用一个方法获取两个小数中较大的值或较小的值
public static double max(double a,double b,int flag){
if(flag == 1){
if(a>b){
return a;
}else {
return b;
}
}else{
if (a < b) {
return a;
} else {
return b;
}
}
}
}