重复调用的代码块——方法

前面看了一种特殊的方法——构造方法,已经对方法的定义和使用有了一定的了解,不再累述,这里主要想记录三个方面的内容:

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 }
View Code

运行结果:

posted @ 2017-04-09 22:05  王醒燕  阅读(1105)  评论(1编辑  收藏  举报