面向对象编程练习

这篇博客介绍了面向对象编程的实践案例,从基础的Point类开始,逐步发展到Circle和Rectangle子类,涵盖了类的继承、构造方法、属性和方法的set/get、toString方法以及面积计算。接着,通过Shape抽象类和接口Shape展示了抽象方法的使用,以及子类如何重写这些方法。最后,通过Test类的测试示例演示了向上转型和多态的应用。
摘要由CSDN通过智能技术生成

1.包cs2017.vo中包含如下内容:

父类point:包括描述点坐标的私有成员x和y;对成员的set/get方法;构造方法(有参和无参两种);显示点位置(坐标)的toString方法。

Point类的子类Circle:包括描述半径的私有成员radius;对成员radius的set/get方法;构造方法(无参、1个参数、3个参数三种);方法getArea()获得面积,方法toString()输出位置和半径信息(调用父类toString)。

Point类的子类Rectangle:包括描述长和宽的私有成员l和w;对成员l和w的set/get方法;构造方法(无参、2个参数、4个参数四种);方法getArea()获得面积,方法toString()输出位置和长宽信息(调用父类toString)。

Point类:

package cs2017.vo;

public class Point {
	private double x;
	private double y;
	
	public void setX(double x) {
		this.x=x;
	}
	
	public double getX() {
		return x;
	}
	
	public void setY(double y) {
		this.y=y;
	}
	
	public double getY() {
		return y;
	}
	
	public Point() {
		
	}
	
	public Point(double x,double y) {
		this.x=x;
		this.y=y;
	}

	@Override
	public String toString() {
		return "坐标(" + x + ", " + y + ")";
	}

}

Circle类:

package cs2017.vo;

public class Circle extends Point{
	private double radius;
	
	public void setRadius(double radius) {
		this.radius=radius;
	}
	
	public double getRadius() { 
		return radius;
	}
	
	public Circle() {
		
	}
	
	public Circle(double radius) {
		this.radius=radius;
	}
	
	public Circle(double x,double y,double radius) {
		super(x, y);
		this.radius=radius;
	}
	
	public double getArea() {
		return getRadius()*getRadius()*Math.PI;
	}

	public String toString() {
		return super.toString()+ "半径为:"+radius+",面积为:"+getArea();
	}
}

Rectangle类:

package cs2017.vo;

public class Rectangle extends Point{
	private double l;
	private double w;
	
	public Rectangle() {
		
	}
	
	public Rectangle(double l,double w) {
		this.l=l;
		this.w=w;
	}
	
	public Rectangle(double x,double y,double l,double w) {
		super(x,y);
		this.l=l;
		this.w=w;
	}
	
	public void setL(double l) {
		this.l=l;
	}
	
	public double getL() {
		return l;
	}
	
	public void setW(double w) {
		this.w=w;
	}
	
	public double getW() {
		return w;
	}
	
	public double getArea() 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值