重复调用的代码块——方法
前面看了一种特殊的方法——构造方法,已经对方法的定义和使用有了一定的了解,不再累述,这里主要想记录三个方面的内容:
1.方法的重载——方法名相同,参数列表不同的方法签名机制。
参数列表不同,即参数个数、参数类型、参数顺序,至少有一项不同。需要注意的是,方法的修饰符和返回值类型不做要求。
看下面的实例:
1 class MethodOverload 2 { 3 public int add(int a,int b)//计算两个整数之和的add()方法 4 { 5 return a+b; 6 } 7 public float add(float a,float b)//计算两个单精度浮点数之和的add()方法 8 { 9 return a+b; 10 } 11 public int add(int a,int b,int c)//计算三个整数之和的add()方法 12 { 13 return a+b+c; 14 } 15 } 16 public class T01 17 { 18 public static void main(String[] args) 19 { 20 int result1; 21 float result2; 22 MethodOverload a = new MethodOverload(); 23 result1=a.add(1,2); 24 result2=a.add(1.2f,2.3f); 25 result1=a.add(1,2,3); 26 System.out.println(result1+"--------"+result2); 27 } 28 }
输出结果:
上面的例子中定义了一个add()方法,参数列表不同,分别输出了各自的正确结果,两个整数之和被三个整数之和覆盖,这就是方法的重载。
我们最常用的System.out.println()就是典型的方法重载。
2.二次包装private不想公开的实现细节——在方法内部调用方法。
1 class Person 2 { 3 private String name; 4 private int age; 5 public void say() 6 { 7 this.talk();//在方法内调用方法 8 } 9 private void talk() 10 { 11 System.out.println(name+age); 12 } 13 public void setName(String name) 14 { 15 this.name=name; 16 } 17 public String getName() 18 { 19 return name; 20 } 21 public void setAge(int age) 22 { 23 this.age=age; 24 } 25 public int getAge() 26 { 27 return age; 28 } 29 } 30 public class T01 31 { 32 public static void main(String[] args) 33 { 34 Person p = new Person(); 35 p.setAge(12); 36 p.setName("xiaoxiao"); 37 p.say(); 38 } 39 }
使用这么多方法就为了一个private,必须发个随笔纪念一下...
3.方法使用实例——把算法写进方法再调用
1 class ArraySort 2 { 3 public static void sort(int[] a) 4 { 5 //冒泡排序算法 6 for(int i=0;i<a.length;i++) 7 { 8 for(int j=i+1;j<a.length;j++) 9 { 10 if(a[i]>a[j]) 11 { 12 int temp=a[i]; 13 a[i]=a[j]; 14 a[j]=temp; 15 } 16 } 17 } 18 } 19 public static void print_a(int[] a,String b) 20 { 21 System.out.println(b); 22 23 for(int i:a)//foreach遍历数组 24 { 25 System.out.print(i+" "); 26 } 27 System.out.println(); 28 } 29 } 30 public class T01 31 { 32 public static void main(String[] args) 33 { 34 int[] a={43,46,22,67,86,27}; 35 ArraySort p = new ArraySort(); 36 p.print_a(a,"排序前:"); 37 p.sort(a); 38 p.print_a(a,"排序后:"); 39 } 40 }
运行结果:
看似简单的知识背后,承载的是收获和成长!