修改11—1的程序编程instanceof

本文展示了一个简单的Java程序,该程序定义了几何对象类(包括圆形和矩形),并演示了如何实例化这些对象及调用其方法来显示属性。通过继承自通用几何对象基类,圆形和矩形类实现了特定形状的面积、周长等计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class TestCircleRectangle {
	public static void main(String[] args)
	{
	
		GeometricObject1 circle=new Circle4();
		GeometricObject1 rectangle=new Rectangle1(2,4);
		displayGemotricObject1(circle);//使用静态的方法
		displayGemotricObject1(rectangle);
		
	}
	public static void displayGemotricObject1(GeometricObject1 a)
	{
		if(a instanceof Circle4)
		{
			System.out.println("A circle "+((Circle4)a).toString());//注意((Circle4)a).toString()的格式
			System.out.println("The radius is "+((Circle4)a).getRadius());
			System.out.println("The area is "+((Circle4)a).getArea());
			System.out.println("The diameter is "+((Circle4)a).getDiameter());
		}else if(a instanceof Rectangle1)
		{
			System.out.println("\nA rectangle "+((Rectangle1)a).toString());
			System.out.println("The area is "+((Rectangle1)a).getArea());
			System.out.println("The perimeter is "+((Rectangle1)a).getPerimeter());
		}
	}
}


public class Rectangle1 extends GeometricObject1{
	private double width;
	private double height;
	public Rectangle1()
	{
		
	}
	public Rectangle1(double width,double height)
	{
		this.width=width;
		this.height=height;
	}
	public Rectangle1(double width,double height,String color,boolean filled)
	{
		this.width=width;
		this.height=height;
		setColor(color);
		setFilled(filled);
	}
	public double getWidth()
	{
		return width;
	}
	public void setWidth(double width)
	{
		this.width=width;
	}
	public double getHeight()
	{
		return height;
	}
	public void setHeight(double height)
	{
		this.height=height;
	}
	public double getArea()
	{
		return width*height;
	}
	public double getPerimeter()
	{
		return 2*(width+height);
	}
}

public class GeometricObject1 {
	private String color="white";
	private boolean filled;
	private java.util.Date dateCreated;
	public GeometricObject1()
	{
		dateCreated=new java.util.Date();
	}
	public GeometricObject1(String color,boolean filled)
	{
		dateCreated=new java.util.Date();
		this.color=color;
		this.filled=filled;
	}
	public String getColor()
	{
		return color;
	}
	public void setColor(String color)
	{
		this.color=color;
	}
	public boolean isFilled()
	{
		return filled;
	}
	public void setFilled(boolean filled)
	{
		this.filled=filled;
	}
	public java.util.Date getDateCreated()
	{
		return dateCreated;
	}
	public String toString()
	{
		return "created on "+dateCreated+"\ncolor: "+color+" and filled: "+filled;
	}
}

public class Circle4 extends GeometricObject1 {
	private double radius;
	public Circle4()
	{
		
	}
	public Circle4(double radius)
	{
		this.radius=radius;
	}
	public Circle4(double radius,String color,boolean filled)
	{
		this.radius=radius;
		setColor(color);
		setFilled(filled);
	}
	public double getRadius()
	{
		return radius;
	}
	public void setRadius(double radius)
	{
		this.radius=radius;
	}
	public double getDiameter()
	{
		return 2*radius;
	}
	public double getArea()
	{
		return radius*radius*Math.PI;
	}
	public double getPerimeter()
	{
		return 2*radius*Math.PI;
	}
	public void printCircle()
	{
		System.out.println("The circle is created "+getDateCreated()+" and the radius is "+radius);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值