美文网首页Java那些事儿
接口的应用_实现排序

接口的应用_实现排序

作者: 文艺小年青 | 来源:发表于2017-09-06 16:53 被阅读0次
    • 第一步: 我们定义一个接口sort
    public interface Sort {
        //规则
        public int sort(Object obj,Object obj1);
    }
    
    • 接口可以帮助我们给用户设定一个标准,提示他必须实现的代码;
    • 第二步: 我们创建一个Test类,来实现排序;
    class Test {
        //接收用户的实现接口的类(其中定义好排序规则) 
        public Sort s;
        //这个构造方法是限定用户必须输入带有参数的初始化方法 
        public Test(Sort s) {
            this.s = s;
        }
        //然后进行排序,参数是一个数组对象,
        public Object[] paixu(Object[] obj) {
            //下边是冒泡排序
            for (int i = 0; i < obj.length - 1; i++) {
                for (int j = 0; j < obj.length - i - 1; j++) {
                    //判断大小(因为我们在交换位置的时候不知道是通过比较什么来进行判断,,)
                    //所以我们需要调用实现接口的类中的接口的sort方法,得到一个结果.,是int类型的;  然后通过这个结果来比较
                    int result = s.sort(obj[j],obj[j+1]);
                    if (result > 0) {
                        //交换值
                        Object temp = obj[j];
                        obj[j] = obj[j+1];
                        obj[j+1] = temp;
                    }
                }
            }
            return obj;
        }
    }
    
    • 第三步: 创建一个猫类, 对它进行排序
    class Cat {
        int age;
        int score;
        //在数组中按照字符串的形式打印,
        @Override
        public String toString() {
            return "年龄=" + this.age + "分数=" + this.score;
        }
    }
    
    • 第四步: 需要写一个实现接口的类
    //Sort接口的实现类
    class Com implements Sort {
        //接口中必须实现的方法;
        @Override
        public int sort(Object obj, Object obj1) {
            //将obj对象强转成Cat对象
            Cat cat = (Cat)obj;
            Cat cat2 = (Cat)obj1;
            //通过比较cat的分数进行排序
            if (cat.score > cat2.score) {
                return 1;
            }
            return -1;
        }
        
    }
    
    • 第五步: 最后在main方法中实现
    public static void main(String[] args) {
            //首先我们需要创建4个Cat对象;
            Cat cat1 = new Cat();
            cat1.age = 12;
            cat1.score = 13;
            
            Cat cat2 = new Cat();
            cat2.age = 13;
            cat2.score = 20;
            
            Cat cat3 = new Cat();
            cat3.age = 10;
            cat3.score = 14;
            
            Cat cat4 = new Cat();
            cat4.age = 15;
            cat4.score = 23;
            
            //创建一个数组,, 将Cat对象装进数组中;
            Cat[] arr = {cat1,cat2,cat3,cat4};
            //初始化实现接口的类的对象
            Com com = new Com();
            //将con对象传给Test类
            Test test = new Test(com);
            //调用Test类的排序方法.得到排序后的新的数组.
            Object[] newArr = test.paixu(arr);
            //输出这个数组
            System.out.println(Arrays.toString(newArr));
            
        }
    

    相关文章

      网友评论

        本文标题:接口的应用_实现排序

        本文链接:https://www.haomeiwen.com/subject/vplvjxtx.html