重载,重写及数组练习

package shipin;

public class TextArray {
    public static void main(String[] args) {
        int arr[]=new int[]{12,4,76,8,0,-46,92,-56,100};
        
        Array a=new Array();
        
        int max=a.getMax(arr); 
        System.out.println("数组最大值是:"+max);
        
        int min=a.getMin(arr); 
        System.out.println("数组最小值是:"+min);
        
        int sum=a.getSum(arr); 
        System.out.println("数组总和是:"+sum);
        
        int avg=a.avg(arr); 
        System.out.println("数组平均数是:"+avg);
        
        a.printArray(arr);
        
        System.out.println("排序数组:");
        a.paiXu(arr,"desc");
        a.printArray(arr);
        
        System.out.println("反转数组:");
        a.fanzhuan(arr);
        a.printArray(arr);
        
        System.out.println("复制数组:");
        a.copy(arr);
        a.printArray(arr);
    }

}
package shipin;

public class Array {
    //数组的最大值
    public int getMax(int arr[]){
        int max=arr[0];
        for(int i=1;i<arr.length;i++){
            if(max<arr[i]){
                max=arr[i];
            }
        }
        return max;
    }
    
    //数组的最小值
    public int getMin(int arr[]){
        int min=arr[0];
        for(int i=1;i<arr.length;i++){
            if(min>arr[i]){
                min=arr[i];
            }
        }
        return min;
    }
    
    //数组的总和
    public int getSum(int arr[]){
        int sum=0;
        for(int i=0;i<arr.length;i++){
            sum+=arr[i];
        }
        return sum;
    }
    
    //数组的平均值
    public int avg(int arr[]){
        int sum=getSum(arr);//在方法中调用方法
        return sum/arr.length;
    }
    //数组的遍历
    public void printArray(int arr[]){
        System.out.println("[");
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]+"/t");
        }
        System.out.println("]");
    }
    
    //数组的排序
    public void paiXu(int arr[],String desc){
        if(desc=="asc"){
        for(int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    
                    }
                }
            }
        }else if(desc=="desc"){
            for(int i=0;i<arr.length-1;i++){
                for(int j=0;j<arr.length-i-1;j++){
                    if(arr[j]<arr[j+1]){
                        int temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                        
                        }
                    }
                }
        }else{
            System.out.println("您输入的有误");
        }
    }
    
    //数组的反转
    public int[] fanzhuan(int arr[]){
        for(int x=0,y=arr.length-1;x<y;x++,y--){
            int temp=arr[x];
            arr[x]=arr[y];
            arr[y]=temp;
        }
        return arr;
    }
    
    //数组的复制
    public int[] copy(int arr[]){
        int arr1[]=new int[arr.length];
        for(int i=0;i<arr.length;i++){
            arr1[i]=arr[i];
        }
        return arr1;
    }
    


}

分析:问题:等号两边的顺序不能改变

比如

 arr1[i]=arr[i];都不能顺序互换

方法的重载:overload
要求:1、同一个类中
2、方法名必须相同
3、方法的参数列表不同:参数的个数不同,参数的类型不同(参数名不同也不能构成重载)
补充:方法的重载和方法的返回值没有联系

eg:public int Sum(int a,double b){
return Sum;
}
public int Sum(int s,doubled){//不能构成重载 ,方法名相同,参数列表相同
return Sum;
}
public int Sum(double s,int d){//可以构成重载,参数列表不同
return Sum;
}

重写:在继承关系中
instanceof判断前面这个是不是后面那个的子类或者是不是一个类型

package shipin;


public class TextCirle {
    public static void main(String[] args) {
        Circle c1=new Circle();
        c1.radius=2.3;
        double area= c1.fingArea() ;
        c1.setRadius(4.5);
        System.out.println(c1.fingArea());
    }
}
    class Circle{
    public double radius=1.0;
    
    public double fingArea(){
        return radius*3.14*radius;
    }
    public void setRadius(double r){
         radius=r;
    }
    public double getRadius(){
        return radius;
        
    }
    
    
    }

原文地址:https://www.cnblogs.com/NCL--/p/7208037.html