潭州Java中级班(day_06)

掌握方法的作用,定义格式


方法命名


第一个单词的首字母是小写的,之后的单词首字母是大写

package com.tz.Day06;

public class Test {
    public static void main(String[] args) {
        printInfo();  //方法可以调用多次
        printInfo();  
        printInfo();
    }
    
    /**
     *如果在返回值类型上写上void,则表示方法没有返回值得,就不能使用return返回内容
     *当调用方法的时候,程序就会跑到printInfo中,方法执行了之后在返回
     */
    
    public static void printInfo(){
        char a[]={'a','a','c'};  //字义字符型的数组
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]);
        }
    }
}

 



如果要返回其他类型的数据就改返回值的类型即可

package com.tz.Day06;

public class Test7 {
    public static void main(String[] args) {
        int temp[]=fun();  //通过方法来实例化数组
        print(temp);   //打印数组的内容
        
    }
    public static void print(int x[]){
        for(int i=0;i<x.length;i++){
            System.out.println(x[i]+"\t");
        }
    }
    
    
    public static int[] fun(){  //返回一个数组
        int ss[]={1,3,5,7,9};    //初始化宝义一个数组
        return ss;
    }
    
}

 



方法的重载


方法的重载就是方法名相同,参数的类型不同和参数的个数不同

通过传递参数的个数和类型的不同完成不同的功能

package com.tz.Day06;

public class Test3 {
    public static void main(String[] args) {
        int one=addOne(20,30);  //调用方法
        int one1=addOne(10,20.2f);  //调用方法
        float tow=addTwo(22.8f,55.3f);
        System.out.println(one);
        System.out.println(tow);
        System.out.println(one1);
    }
    
    //定义方法,完成两个数字的相加操作,直接在返回值上写上返回值类型
    public static int addOne(int x,int y){
        int temp=0;
        temp=x+y;
        return temp;
    }
    
    /**
     * 
     * @param y
     * @param a
     * @return  temp
     */
    public static int addOne(int y,float a){
        int temp=0;
        temp=(int)a+y;
        return temp;
    }
    
    /**
     * 定义方法,完成两个数字的相加操作,直接在返回值上写上返回值类型
     * @param x
     * @param y
     * @return temp
     */
    
    public static float addTwo(float x,float y){
        float temp=0;
        temp=x+y;
        return temp;
    }
    
}

 


return
return除了可以返回内容之外 ,也可以结束方法

package com.tz.Day06;

public class Test4 {
    public static void main(String[] args) {
        System.out.println("1.调用方法之前 ");
        fun(5);
        System.out.println("2.调用方法之后");
    }
    
    /**
     * return除了可以返回内容之外 ,也可以结束方法
     * @param x
     */
    public static void fun(int x){
        System.out.println("3.进入方法");
        if(x==10){
            return;
        }
        System.out.println("4.正常执行完fun方法");
    }
    
}

 



方法的递归调用
要求
假设完成一个数字的累加操作,除了可以使用循环也可以使用递归

package com.tz.Day06;

public class Test5 {
    public static void main(String[] args) {
        System.out.println("确实的结果:"+sum(100));
    }
    
    /**
     * 以下代码的过程相当于 100+sum(99) sun(98)+直到最后为1为止
     * 在递归操作中,一定要明确的写出方法的结束判断否则就会操作异常
     * @param num
     * @return
     */
    
    public static int sum(int num){  //定义一个方法用于求和操作
        if(num==1){   //判断是否到了最后一位
            return 1;
        }else{
            return num+sum(num-1);  //递归调用
        }
    }
    
}

 

总结
1.方法是指使用主方法调用的方法
2.方法定义的时候需要写返回值,明确写出返回值的类型,(java的数据类型)如果不需要的话直接返回void
3.在方法中可以进行重载 ,方法名相同参数类型不同和参数个数不同
4.在方法中可以使用return来结束一个方法的操作
5.方法自己调用自己(递归),递归操作的时候一定要有明确的条件

1.掌握数组的引用传递
方法除了可以接收数组之外,也可以通过方法返回一个数组
只需要在返回值类型上明确的声明出返回的类型是数组即可。

排序

package com.tz.Day06;

public class Test8 {
    /**
     * 以下代码只是完成了整形数组的排序操作,如果一个操作中它要求可以排序整形也可以排序浮点类型等各种类型
     * 为了数组排序方便 ,提供了一个java.util.Arrays.sort();
     * @param args
     */
    public static void main(String[] args) {
        int score[]={67,64,85,32,65,98,52};  //定义了一个整形数组 
        int age[]={31,30,10,17,8,9,1,39};  //定义了一个整形数组 
        //sort(score);  //数组的排序
        java.util.Arrays.sort(score);
        print(score);
        System.out.println("\n==============");
        //sort(age);
        java.util.Arrays.sort(age);
        print(age);
    }
    
//    public static void sort(int temp[]){  //执行排序操作
//        for(int i=1;i<temp.length;i++){
//            for(int j=0;j<temp.length;j++){
//                if(temp[i]<temp[j]){
//                    int x=temp[i];
//                    temp[i]=temp[j];
//                    temp[j]=x;
//                }
//            }
//        }
//    }
    
    
    public static void print(int temp[]){  //输出数组的内容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i]+"\t");
        }
    }
    
}

 


数组拷贝
可以将一个数组中指定的内容拷贝给另一个数组

package com.tz.Day06;

public class Test9 {
    
    public static void main(String[] args) {
        int i1[]={1,2,3,4,5,6,7,8,9};  //原数组
        int i2[]={11,22,33,44,55,66,77,88,99}; //目标数组
        System.arraycopy(i1, 1,i2 ,1, 1);  //调用拷贝
        print(i2);  //输出
    }

    public static void print(int temp[]){ //输出数组的内容
        for(int i=0;i<temp.length;i++){
            System.out.print(temp[i]+"\t");
        }
    }

    
    
    
    
}

 


源数组
源数组的开始点
目标数组
目标数组的开始点
拷贝长度


总结
1.数组的引用传递就是堆内存的使用权,可以将一个数组传递方法之中,传递的时候不需要写上[]括号,直接写名字即可
2.方法中对数组所估的修改都会被保存
在java中提供了一些对数组操作支持的方法
System.arraycopy(i1, 1,i2 ,1, 1); //拷贝
java.util.Arrays.sort(age); //排序





posted on 2018-08-24 16:22  王育奕  阅读(186)  评论(0编辑  收藏  举报

导航