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

  • 相关阅读:
    C# NameValueCollection
    visual studio使用技巧创建自己代码片段
    C#在DataTable中使用LINQ
    [转]C# 中的.pdb/ .vshost.exe/ .vshost.exe.manifest文件讨论
    C#自定义控件在添加引用后不显示在工具箱的解决方法
    Java 工程师
    redis-CRC16
    sql server-当天日期减去一天 应该如何写
    清除访问Windows共享时缓存的凭据
    cmd下查看当前登陆用户
  • 原文地址:https://www.cnblogs.com/NCL--/p/7208037.html
Copyright © 2011-2022 走看看