方法的注意事项
方法不能嵌套定义
void表示无返回值,可省略return,也可单独的书写return,后面不加数据
方法的通用格式
方法重载
public class shiyan1 {
public static void main (String[] args) {
//与返回值无关
//在调用的时候,Java虚拟机会通过参数不同来区分同名的方法
int a=10;int b=20;
int result =shujuhe(a,b);
System.out.println(result);
double result2 =shujuhe( a,b);
System.out.println(result2);
int result3 =shujuhe(10,39,88);
System.out.println(result3);
}
//需求1:求两个int类型数据和的方法
public static int shujuhe(int a,int b)
{
return a+b;
}
//需求2:求两个double类型数据和的方法
public static double shujuhe(double a,double b)
{
return a+b;
}
//需求3:求三个int类型数据和的方法
public static int shujuhe(int a,int b,int c)
{
return a+b+c;
}
}
输出结果:
30
30.0
137
需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
public class shiyan1 {
public static void main (String[] args) {
//会根据参数数值自动判断是哪个方法 所以有时不进入其他的方法 需要进行类型转换
//另一种调用方式
/*boolean result = shujuhe(10,20);
System.out.println(result);*/
System.out.println(shujuhe/*强制类型转换*/((byte)10,(byte)20));
System.out.println(shujuhe((short)100,(short)101));
System.out.println(shujuhe (100,101));
System.out.println(shujuhe(10L,100L));
}
public static boolean shujuhe(byte a,byte b)
{
if (a==b)
{
System.out.println("1");
return true;
}
else return false;
}
public static boolean shujuhe(short a,short b)
{
System.out.println("2");
return a==b;
}
public static boolean shujuhe(int a,int b)
{
System.out.println("3");
return a==b;
}
public static boolean shujuhe(long a,long b)
{
if(a==b)
{
return a==b;
}
else return false;
}
}
输出结果:
false
2
false
3
false
false
方法的参数传递
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值
change方法调用完毕 从栈内存消失
再次输出 结果还是为100;
执行完毕;
main 方法也从栈内存消失
方法参数传递(引用类型)
对于引用型的参数,形式参数的改变,影响实际参数的值