定义一个Person类,包含姓名(name)、身高(height)、体重(weight),以及speak()方法

【问题描述】

定义一个Person类,包含姓名(name)、身高(height)、体重(weight),以及speak()方法,该方法的功能是,输出自己的身高和体重信息。
Person类实现Comparable接口,实现比较两个Person对象的大小,比较规则是:身高和体重各占50%权重,以综合计算身高和体重之后的值作为判断对象大小的依据。
最后,定义一个测试类,生成一个数组,该数组有6个元素,每个元素类型是Person,调用Arrays.sort方法对该数组排序。
按照以上描述,以及输出样例的结果,完成程序代码的填写。

package hello;

import  java.util.Arrays;

public class  Person  implements Comparable<Person>  { 
        private  String  name;
        private  float  height,  weight;

        public  Person(String  name,  float  height,  float  weight)  { 
        
        	 this.name=name;
             this.height=height;
             this.weight=weight;
        }

        public  String  getName()  { 
                return  name;
        }

        public  void  setName(String  name)  { 
                this.name  =  name;
        }

        public  float  getHeight()  { 
                return  height;
        }

        public  void  setHeight(float  height)  { 
                this.height  =  height;
        }

        public  float  getWeight()  { 
                return  weight;
        }

        public  void  setWeight(float  weight)  { 
                this.weight  =  weight;
        }

        public  void  speak()  { 
        System.out.println("I am "+name+",my height "+height+",my weight "+weight);
        }

        public  int  compareTo(Person  o)  { 
                float s1=this.height+this.weight;
                float s2=o.height+o.weight;
                if(s1>s2) { 
                	return 1;
                }
                if(s1<s2) { 
                	return -1;
                }
                return 0;
        }

        public  String  toString()  { 
        return "Person [name="+name+",height="+height+",weight="+weight+"]";
        }
}

测试代码:

package hello;

import java.util.Arrays;

public class  TestCompare  { 
    public  static  void  main(String[]  args)  { 
            int  i;
            Person  ps[]  =  new  Person[6];
            ps[0]  =  new  Person("zhangsan",  170,  110);
            ps[1]  =  new  Person("lisi",  168,  120);
            ps[2]  =  new  Person("wangwu",  165,  115);
            ps[3]  =  new  Person("zhaoliu",  172,  121);
            ps[4]  =  new  Person("zhouqi",  160,  100);
            ps[5]  =  new  Person("zhengba",  166,  119);
            System.out.println("array sort before:");
            for  (i  =  0;  i  <  ps.length;  i++)  { 
                    ps[i].speak();
            }
             Arrays.sort(ps);   // call sort method
            System.out.println("\narray sort after:");
            for  (i  =  0;  i  <  ps.length;  i++)  { 
                    System.out.println(ps[i]);
            }
    }
} 


知识扩充:
接口comparable是java自带的接口,里面只有一个方法compareTo();
实现接口时需要实现接口中的方法compareTo()
例如此题:

  public  int  compareTo(Person  o)  { 
                float s1=this.height+this.weight;
                float s2=o.height+o.weight;
                if(s1>s2) { 
                	return 1;
                }
                if(s1<s2) { 
                	return -1;
                }
                return 0;
        }
如果返回值等于零:s1=s2
返回值大于零则s1>s2
返回值小于于零则s1<s2
    原文作者:奋斗吧_打工人
    原文地址: https://blog.csdn.net/m0_51780736/article/details/117335293
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞