• 对象下—练习4


    Circle.java

    package com.atguigu.exer3;
    /*
     * 定义一个Circle类,声明radius属性,提供getter和setter方法
    
     */
    public class Circle {
    	
    	private Double radius;
    
    	public Double getRadius() {
    		return radius;
    	}
    
    	public void setRadius(Double radius) {
    		this.radius = radius;
    	}
    
    	public Circle() {
    		super();
    	}
    
    	public Circle(Double radius) {
    		super();
    		this.radius = radius;
    	}
    	
    	
    }
    
    

    CompareableCircle.java

    package com.atguigu.exer3;
    /*
     * 定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。
     * 在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。
    
     */
    public class ComparableCircle extends Circle implements CompareObject{
    	
    	public ComparableCircle(double radius) {
    		super(radius);
    	}
    	@Override
    	public int compareTo(Object o) {
    		if(this == o){
    			return 0;
    		}
    		if(o instanceof ComparableCircle){
    			ComparableCircle c = (ComparableCircle)o;
    			//错误的:
    //			return (int) (this.getRadius() - c.getRadius());
    			//正确的方式一:
    //			if(this.getRadius() > c.getRadius()){
    //				return 1;
    //			}else if(this.getRadius() < c.getRadius()){
    //				return -1;
    //			}else{
    //				return 0;
    //			}
    			//当属性radius声明为Double类型时,可以调用包装类的方法
    			//正确的方式二:
    			return this.getRadius().compareTo(c.getRadius());
    		}else{
    //			return 0;
    			throw new RuntimeException("传入的数据类型不匹配");
    		}
    		
    	}
    	
    }
    
    

    CompareableCircleTest.java

    package com.atguigu.exer3;
    
    public class ComparableCircleTest {
    	public static void main(String[] args) {
    		
    		
    		ComparableCircle c1 = new ComparableCircle(3.4);
    		ComparableCircle c2 = new ComparableCircle(3.6);
    		
    		int compareValue = c1.compareTo(c2);
    		if(compareValue > 0){
    			System.out.println("c1对象大");
    		}else if(compareValue < 0){
    			System.out.println("c2对象大");
    		}else{
    			System.out.println("c1与c2一样大");
    		}
    		
    		
    		int compareValue1 = c1.compareTo(new String("AA"));
    		System.out.println(compareValue1);
    	}
    }
    
    

    CompareObject.java

    package com.atguigu.exer3;
    /*
     * interface CompareObject{
    	public int compareTo(Object o);   
    	//若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
     }
    
     */
    public interface CompareObject {
    	//若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
    	public int compareTo(Object o); 
    }
    
    
  • 相关阅读:
    class11_创建新的输出字段P2
    class10_创建新的输出字段
    class09_高级过滤数据
    Markdown高级语法
    class08_过滤数据
    class07_查询数据
    class06_插入数据
    class05_操纵表
    class04_创建表02
    class03_Create a new table by SQL
  • 原文地址:https://www.cnblogs.com/fenxiangyuan/p/14397546.html
Copyright © 2020-2023  润新知