-cfyjbjonn 2020-05-25 01:40 采纳率: 57.1%
浏览 113
已采纳

一道java的简单接口问题,在线等,急,谢谢谢谢

图片说明

package q;
import  java.util.Arrays;

class  Person implements Comparable<Person>  {
        private static String getHeight;
        private static  String  name;
        private  float  height;
        private static float weight;

        public  Person(String  name,  float  height,  float  weight)  {
        name = this.name;
        height = this.height;
        weight = this.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)  {
            int m = (int) (o.getWeight()*0.5+o.getHeight()*0.5);
            return m;
        }

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


        }



}

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


程序输出结果是这样,请问怎么改呢,谢谢
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-25 09:21
    关注
    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]);
            }
        }
    }
    
    class Person implements Comparable<Person> {
        private String name;
        private float height;
        private float 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);
    
        }
    
        @Override
        public int compareTo(Person o) {
            int m = (int) (this.getWeight() * 0.5 + this.getHeight() * 0.5)
                    - (int) (o.getWeight() * 0.5 + o.getHeight() * 0.5);
            return m;
        }
    
        @Override
        public String toString() {
            return "Person [name=" + name + ",height=" + height + ",weight=" + weight + "]";
    
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序