当前位置 博文首页 > 美迪的麦柯的博客:Java创建Rec或者Circle,或者Triangle类,实现

    美迪的麦柯的博客:Java创建Rec或者Circle,或者Triangle类,实现

    作者:[db:作者] 时间:2021-08-06 19:00

    标题:Java创建Rec或者Circle,或者Triangle类,实现comparable接口,创建实例,通过sort方法比较几个实例的周长(或面积或长或宽),然后按顺序输出显示。

    测试代码:几个附函数或者类就直接写在一个主函数文件下了。
    没分成几个Java文件了。

    本例按创建的Circle类,实现comparable接口,创建四个实例,通过sort方法比较几个实例的面积,然后按顺序输出显示。(其他的稍微改一下类文件,增加或者减少方法。)

    package  server;//我使用的是server包,就不删了,忘了还要多个对象排序
    
    import java.util.Scanner;
    
    	public class Main
    	{
    		//主函数表示测试Test函数
    		public static void main(String[] args) 
    		{
    			Scanner input=new Scanner(System.in);
    			//分别按照提示语输入每个圆的半径
    			System.out.print("Enter the radius of Circle1: ");
    			
    				double radius1=input.nextDouble();
    				
    			System.out.print("Enter the radius of Circle2: ");
    			
    				double radius2=input.nextDouble();
    				
    			System.out.print("Enter the radius of Circle3: ");
    			
    				double radius3=input.nextDouble();
    				
    			System.out.print("Enter the radius of Circle4: ");
    			
    				double radius4=input.nextDouble();
    				//输出空格,方便看到圆半径的比较
                System.out.println();
    				//创建以输入圆为ComparableCircle类型的分别以radius为半径的Circle对象
    				ComparableCircle Circle1=new ComparableCircle(radius1);
    
    				ComparableCircle Circle2=new ComparableCircle(radius2);
    
    				ComparableCircle Circle3=new ComparableCircle(radius3);
    
    				ComparableCircle Circle4=new ComparableCircle(radius4);
    				
    				//创建以输入圆为ComparableCircle类型的分别从四个Circle对象比较
    				ComparableCircle Circle5 = (ComparableCircle)Max.max(Circle1, Circle2);
    
    				ComparableCircle Circle6 = (ComparableCircle)Max.max(Circle3, Circle4);
    
    				ComparableCircle Circle7 = (ComparableCircle)Max.max(Circle5, Circle6);
    				
    				//分别输出以输入圆半径的面积
    				System.out.println("The Circle1's Area is " + Circle1.getArea());
    
    				System.out.println("The Circle2's Area is " + Circle2.getArea());
    
    				System.out.println("The Circle3's Area is " + Circle3.getArea());
    
    				System.out.println("The Circle4's Area is " + Circle4.getArea());
    
    				System.out.println("The Max Circle's radius is " + Circle7.getRadius());
    
    				System.out.println();
    				//创建初始化数组
    				ComparableCircle[] circles= {
    
    						new ComparableCircle(radius1),
    
    						new ComparableCircle(radius2),
    
    						new ComparableCircle(radius3),
    
    						new ComparableCircle(radius4)
    
    				};
    				//对该数组进行排序
    				java.util.Arrays.sort(circles);
    					
    				for(Circle1 circle:circles) 
    				{
    
    					System.out.println(circle.getArea());
    
    				}
    
    		}
    
    	}
    
    	//创建的Circle1类
    
    	class Circle1
    
    	{
    
    		double radius;
    
    		Circle1()
    
    		{
    
    			radius=1;
    
    		}
    
    		Circle1(double newRadius)
    
    		{
    
    			this.radius=newRadius;
    
    		}
    
    		double getArea()
    
    		{
    
    			return radius*radius*Math.PI;
    
    		}
    
    		double getPerimeter() 
    
    		{
    
    			return 2*radius*Math.PI;
    
    		}
    
    		void setRadius(double newRadius) 
    
    		{
    
    			radius=newRadius;
    
    		}
    
    		public double getRadius() 
    
    		{
    
    			return radius;
    
    		}
    
    	}
    
    
    
    	class ComparableCircle extends Circle1 implements Comparable
    
    	{
    
    		public ComparableCircle(double radius)
    
    		{
    
    			super(radius);
    
    		}
    
    		
    
    		public int compareTo(Object  o)
    
    		{
    
    			if(getArea()>((Circle1) o).getArea())//运行时有点错误,按照提示确定的Object类为Circle1类
    
    			{
    
    				return 1;
    
    			}
    
    			else if(getArea()<((Circle1) o).getArea())
    
    			{
    
    				return -1;
    
    			}
    
    			else
    
    			{
    
    				return 0;
    
    			}
    
    			
    
    		}
    
    		
    
    		@Override
    
    		public String toString() 
    
    		{
    
    			return super.toString()+"Area: "+getArea();
    
    		}
    
    //@Override
    
    //public int compareTo(Object o) {
    
    	// TODO Auto-generated method stub
    
    	//return 0;
    
    }
    
    		
    
    
    
    	class Max
    	{
    		public static ComparableCircle max
    		
    		(ComparableCircle o1, ComparableCircle o2)
    		{
    
    			if (o1.compareTo(o2) > 0)
    
    				return o1;
    
    			else
    
    				return o2;
    
    		}
    
    	}
    
    	
    

    测试样例输出结果:

    比较了四个输入的Circle类型的circle对象,按照半径进行大小排序并输出,然后sort排序输出面积的正序排序结果。

    在这里插入图片描述

    END

    cs
    下一篇:没有了