目录
方法的重载(overload)
可变个数的形参
方法参数的值传递机制
基本数据类型的参数传递
引用数据类型的参数传递
递归(recursion)方法
总结
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
//JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
//JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a ,String…books
public void test(String[] msg){
System.out.println(“含字符串数组参数的test方法 ");
}
public void test1(String book){
System.out.println(“****与可变形参方法构成重载的test1方法****");
}
public void test1(String ... books){
System.out.println("****形参长度可变的test1方法****");
}
public static void main(String[] args){
TestOverload to = new TestOverload();
//下面两次调用将执行第二个test方法
to.test1();
to.test1("aa" , "bb");
//下面将执行第一个test方法
to.test(new String[]{"aa"});
}
public static void main(String[] args) {
int x = 5;
System.out.println("修改之前x = " + x);// 5
// x是实参
change(x);
System.out.println("修改之后x = " + x);// 5
}
public static void change(int x) {
System.out.println("change:修改之前x = " + x);
x = 3;
System.out.println("change:修改之后x = " + x);
}
public static void main(String[] args) {
Person obj = new Person();
obj.age = 5;
System.out.println("修改之前age = " + obj.age);// 5
// x是实参
change(obj);
System.out.println("修改之后age = " + obj.age);// 3
}
public static void change(Person obj) {
System.out.println("change:修改之前age = " + obj.age);
obj.age = 3;
System.out.println("change:修改之后age = " + obj.age);
}
其中Person类定义为:
class Person{
int age;
}
//计算1-100之间所有自然数的和
public int sum(int num){
if(num == 1){return 1;
}else{return num + sum(num - 1);}
}
/*① 方法的重载(overload)定义:在同一个类中,允许存在一个以上的同名方法,只有他们的参数个数,或者参数类型不同“两同一不同” 同一个类,相同方法名 参数列表不同,参数个数不同,参数类型不同判断是否是重载跟方法的权限修饰,返回值类型,形参变量名,方法体都没有关系在通过对象调用方法时:如何确定某一个指定的方法方法名---》参数列表② 可变个数形参的方法具体使用1.可变个数形参的格式,数据类型...变量名2.当调用可变个数形参的方法时,传入的参数个数 可以是 0个 1个 多个3.可变个数形参的方法与本类中方法名相同,形参不同的方法直接构成重载4.可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载5.可变个数形参的方法中,必须声明在末尾6.可变个数形参在形参方法中,最多声明一个可变形参③ 关于变量的赋值如果变量是基本数据类型 此时赋值的是变量所保存的数据值如果变量是引用数据类型 此时赋值的是变量所保存的地址值④ 方法形参的传递机制 :值传递形参:方法定义时,声明在小括号内的参数实参:方法调用时,实际传递给形参的数据值传递机制如果参数是基本数据类型,实参赋给形参的是,实参真实存储的数据值⑤ 递归方法 一个方法体内调用它自身方法递归包含了一种隐式的循环,他会重复的执行某段代码,但是这种重复是无需循环控制的递归一定要向指定方向递归,否则这种递归就造成了无穷递归 类似于死循环*/
class instanceTest {public static void main(String[] args) {System.out.println("*****基本数据类型******");int m=10;int n=10;System.out.println("m="+m+",n="+n);n=20;System.out.println("m="+m+",n="+n);System.out.println("*****引用数据类型******");order o1=new order();o1.id=100;order o2=o1;System.out.println("o1.id="+o1.id+",o2.id="+o2.id); o2.id=200;System.out.println("o1.id="+o1.id+",o2.id="+o2.id); int[] arr=new int[]{5,8,4,7,0};// 形参的传递机制:基本数据类型order test=new order();test.swap(m,n);System.out.println("m="+m+",n="+n);// 形参的传递机制:复杂数据类型for(int i=0;iarr[j+1]){test.swap2(arr,j,j+1);}}}//输出查看for(int i=0;i
上一篇:Ajax学习:原生jsonp实践
下一篇:sentinel读取监控文件分析