您的位置:首页 > 职场人生

黑马程序员_Java基础[5]_重载、数组

2014-04-28 23:42 176 查看
----------
android培训 、java培训
、期待与您交流! ----------

1,重载

    在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数参或数类型不同即可。

    重载只和参数列表有关系。

    (比如定义了某一个方法,然后我需要再一个方法,和这个函数功能一样,就是多一个参数,或者有一个或多个参数类型不一样的时候,就可以重载)

   当定义的功能相同,但参数与运算的未知内容不同,(可以是不同返回类型的但必须是同名的)

   那么,这时就定义一个函数名称表示该功能,方便阅读,而通过参数列表的不同类区分多个同名函数。即重载。
2,数组。  重要。【引用数据类型】

    之前只学过一维数组。就是容器。

    数组就是【同一种数据类型】的集合,数组中的元素从0开始

    格式:

    元素类型[] 数组名=new 元素类型[元素个数或数组长度]

    int[] name=new int[]{2,34,5}    (这种方式不能在[]内写长度)

    int[] name=new int[3]

    int[] name={3,34,3444}

    name.length表示数组长度

    name[0]下标0的元素,即第一个元素

    

    数组注意数组长度越界。

    数组通常和循环结合使用。通常是for

    数组的排序,倒序Arrays.sort()  顺序:for条件小于数组长度,,倒序,初始长度减一,条件大于0最后减减

        排序:指定排序,

              冒泡排序(记住圈外圈内是长度-1和长度-i-1)

    无论什么排序,都需要对满足条件的元素进行位置置换,

    所以可以把这部分相同代码提取出来,单独封装

    在for中要计算数组中和:定义一个变量int sum=0    sum+=name[i]

    而计算最大值                       int max=name[0]  if(name[i]>max) max=name[i];    

    假设下标为0的元素最大,然后每个数依次跟0元素比,如果比0元素大,最大就是该下标的数,直到比较遍历数组结束。

    定义int max=0 是0下标 同int max=name[0] 。if(name[i]>max) max=name[i];则为if(name[i]>name[max]) max=i;

    

栈:数据使用完毕会自动释放。局部变量都在栈里。
堆:堆内存中的每一个实体,都有一个地址,表示存放的位置。

       new出来的东西就是实体(包括数据,对象)都在堆里。

     (上面,name在栈里,而new出来的东西在堆里角标元素,堆指向一个16位的地址,name根据地址指向角标元素

      这个时候如果设立一个int y=name  就是把name的地址赋值给y,随意改动他们中的某个元素,都会改变的。

       如果这个y是:int y=new int[3]这个时候y会指向一个新的地址值。)

代码区域:

/**

 * 对数组的一些练习,

 * 1,数组的定义,2数组的输出,3数组的排序,4,数组的倒序,5,最值,求和等

 */

package ChongWuSystem;

import java.util.*;

public class IASort{

    

    public static void main(String [] args){

        

        int [] ar={99,87,2,8,55,33,4};

        ShowS(ar);

        SelectSort(ar);//选择排序

        ShowS(ar);

        ShowD(ar);

        

        int max=Max(ar);

        int min=Min(ar);

        int sum=Sum(ar);

        System.out.println("最大值和最小值数组之和分别是:"+max+"\t"+min+"\t"+sum);

        

        int [] arr={199,187,12,18,155,133,14};

        ShowS(arr);

        bubbleSort(arr);//冒泡排序

        ShowS(arr);

        Arrays.sort(arr);//

        ShowS(arr);

    }

    //打印数组

    public static void ShowS(int[] ar){

        for(int i=0;i<ar.length;i++)

        {

            System.out.print(ar[i]+"\t");

        }    

        System.out.println();

    }

    /*排序数组

     * 选择排序

     */

    public static void SelectSort(int []ar){

        

        for(int i=0;i<ar.length-1;i++){

            

            for(int j=i+1;j<ar.length;j++){

                

                if(ar[i]>ar[j]){//如果把>改为<,则返回来。

                    

                    int temp=ar[i];

                    ar[i]=ar[j];

                    ar[j]=temp;

                }

            }

        }

    }

    /*排序数组

     * 冒泡排序  外,长度-1,内,长度-i-1。

     * (最快排序“希尔排序”属于三层运算)

     */

    public static void bubbleSort(int []ar){

        

        for(int i=0;i<ar.length-1;i++){

            for(int j=0;j<ar.length-i-1;j++){

                if(ar[j]>ar[j+1]){//如果把>改为<,则返回来。

                    int temp=ar[j];

                    ar[j]=ar[j+1];

                    ar[j+1]=temp;

                }

            }

        }

    }

    /*倒序

     * 其实就是逆输出

     * 上面的SelectArray()函数中,可以把>改成小于实现倒序

     */

    public static void ShowD(int []ar){

        for(int i=ar.length-1;i>=0;i--){

            System.out.print(ar[i]+"\t");

        }

        System.out.println();

    }

    //最大值

    public static int Max(int []ar){

        int max=ar[0];

        for(int i=1;i<ar.length;i++)

        {

            if(ar[i]>max){

                max=ar[i];

            }

        }

        return max;

    }

    /*最小值

     * 最大值和最小值采用了2种不同的局部变量的定义,其中第一种定义第一个元素,

     * 第二种定义的是下标为0的元素。其实都一样,就是比较的时候稍微注意下。

   */

    public static int Min(int []ar){

        int min=0;

        for(int i=0;i<ar.length;i++)

        {

            if(ar[i]<ar[min]){

                min=i;

            }

        }

        return ar[min];

    }

    //求和

    public static int Sum(int []ar){

        int sum=0;

        for(int i=1;i<ar.length;i++)

        {

            sum+=ar[i];

        }

        return sum;

    }

    

    

    //

}

----------
android培训、 java培训
、期待与您交流!----------

黑马官网: http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: