zoukankan      html  css  js  c++  java
  • 重载,重写及数组练习

    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;
            
        }
        
        
        }

  • 相关阅读:
    Android 自定义View (二) 进阶
    设计模式 装饰者模式 带你重回传奇世界
    Android 自定义View (一)
    C++ 习题 输出日期时间--友元类
    设计模式 观察者模式 以微信公众服务为例
    Binomial Coeffcients 历届山东省省赛题
    做一只美腻的程序媛
    java编程中容易犯2的细节汇总
    Arrays.asList()
    SQL Server用表组织数据
  • 原文地址:https://www.cnblogs.com/NCL--/p/7208037.html
Copyright © 2011-2022 走看看