zoukankan      html  css  js  c++  java
  • 对象下—练习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); 
    }
    
    
  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/fenxiangyuan/p/14397546.html
Copyright © 2011-2022 走看看