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

时间:2022-04-29 12:28:29
---------- 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