一、方法的注意事项
1.方法不能嵌套
2.方法的返回值类型为void时,可以写return,也可以不写return,写return的话return后面不能加返回值。
二、方法的定义以及调用
1.不带参数的方法定义及调用
public static void main(String[] args)
{
getMax();//方法调用
}
public static void getMax()//方法定义
{
int a=10;
int b=20;
if(a>b)
System.out.println(a);
else
System.out.println(b);
}
2.带参数的方法的定义及调用
public static void main(String[] args)
{
getMax(100,1000);//方法调用
}
public static void getMax(int a,int b)//方法调用
{
if(a>b)
System.out.println(a);
else
System.out.println(b);
}
3.不带返回值的方法的定义及调用
public static void main(String[] args)
{
getMax();//方法调用
}
public static void getMax()//方法定义
{
int a=10;
int b=20;
if(a>b)
System.out.println(a);//没有返回值,所以方法定义写的是void
else
System.out.println(b);
}
4.
带返回值的方法的定义及调用
public static void main(String[] args)
{
//带返回值方法的调用
//方法一:定义变量保存
boolean b=isEvenNumber(20);//如果这里不定义一个变量来存放返回值,那么带参数方法将无意义
System.out.println(b);
//方法二:直接输出
System.out.println(isEvenNumber(20));
}
public static boolean isEvenNumber(int num)
{
if(num%2==0)
return true;//带返回值,所以方法的类型跟返回值类型一致为boolean型
else
return false;
}
三、方法的重载
什么叫方法的重载?
1.多个方法在同一个类中
2.多个方法有相同的名字
3.多个方法的参数不同,参数的类型或者参数的个数不同(与返回值的类型无关)
例如:
public static void main(String[] args)
{
int result1=sum(10,20);//这里的这些调用时Java虚拟机根据参数的类型和参数的个数去判断到底调用的是哪个方法
System.out.println(result1);
int result2=sum(10,20,30);//Java虚拟机根据参数的类型和参数的个数来区分同名的方法
System.out.println(result2);
double result3=sum(10.0,20.0);
System.out.println(result3);
}
//方法的重载(这里的三个方法就构成了方法的重载)
public static int sum(int a,int b){//求两个int型数之和
return a+b;
}
public static int sum(int a,int b,int c){
return a+b+c;
}
public static double sum(double a,double b) {
return a+b;
}
四、方法参数传递
1.基本类型:对于基本数据类型的参数,形参的改变并不影响实参的值
public static void main(String[] args)
{
int num=100;
System.out.println("方法调用前num="+num);//输出结果为100
change(num);
/*调用change方法,change方法中形参int num附初始值为100,然后改变change方法中num的值为10000,方法调用结束,change方法从栈内存中消失*/
System.out.println("方法调用后num="+num);//输出结果为100
}
public static void change(int num)
{
num=10000;
}
2.引用类型:对于引用数据类型的参数,形参的改变并影响实参的值
public static void main(String[] args)
{
int[] a= {1,2,3};
System.out.println("方法调用前a[1]="+a[1]);//输出结果为2
change(a);
System.out.println("方法调用后a[1]="+a[1]);//输出结果为22
//因为这里的数组本身就是引用类型,所以形参的改变影响实参的值
}
public static void change(int[] a)
{
a[1]=22;
}