Java类继承(extends)题目练习,求周长,求面积

Java 类的继承,形状类,矩形,圆形正方形

ps:利用接口和多态的实现方法–点击跳转

联系题目:

概述:

  • 设计一个形状类Shape,
    • 方法:
      • 求周长
      • 求面积
  • 形状类的子类:
    • Rect(矩形)
    • Circle(圆形)
  • Rect类的子类:
    • Square(正方形)
  • 子类必须重写父类的求周长和求面积的方法,不同的子类会有不同的计算周长和面积的方法

分析:

各类之间的关系:
  • 形状类:
    • public class Shape
  • 圆形类-继承于-形状类:
    • public class Cirale extends Shape
  • 矩形类-继承于-形状类:
    • public class Rect extends Shape
  • 正方形类-继承于-矩形类:
    • public class Square extends Rect

类的详细设计:

共有以下及各类:

  1. 形状类
  2. 圆形类
  3. 矩形类
  4. 正方形类
  5. Demo
  6. 运行结果

1.形状类

package com.newedu.javabase.allday.classhomework;

public class Shape {
	//成员变量
	private double perimeter; //周长
	private double acreage;	//面积
	public  String shapeName;
	//构造方法
	public Shape() {
		
	}
	public Shape(double perimeter, double acreage) {
		super();
		this.perimeter = perimeter;
		this.acreage = acreage;
	}
	//成员方法
	public double getPerimeter() {
		return perimeter;
	}
	
	public void setPerimeter(double perimeter) {
		this.perimeter = perimeter;
	}
	public double getAcreage() {
		return acreage;
	}
	public void setAcreage(double acreage) {
		this.acreage = acreage;
	}
	public String getShapeName() {
		return shapeName;
	}
	public void setShapeName(String shapeName) {
		this.shapeName = shapeName;
	}
	/**
	 * 计算Shap周长
	 */
	public void computePerimeter() {
	}
	/**
	 * 计算Shap面积
	 */
	public void computeAcreage() {
	}
}

2.圆形类

package com.newedu.javabase.allday.classhomework;
/**
 * Circle--圆形类-继承于-Shape
 * @author 
 *  
 */
public class Cirale extends Shape {
	//成员变量
	private double radius;	//半径
	private static final double pi = Math.PI;	//π值
	public  String shapeName = "圆形";
	//构造方法
	public Cirale(){
	}
	public Cirale(double radius) {
		this.radius = radius;
		computePerimeter();
		computeAcreage();
	}
	//成员方法
	public double getRadius() {
		return radius;
	}
	public void setRadius(double radius) {
		this.radius = radius;
	}
	/**
	 * 计算圆形周长
	 * C=2πr
	 */
	public void computePerimeter() {
		super.setPerimeter(Math.round(2*pi*this.radius));
	}
	/**
	 * 	计算圆形面积
	 *  S=πr*r
	 */
	public void computeAcreage() {
		super.setAcreage(Math.round(pi*Math.pow(radius, 2)));
	}
}

3.矩形类

package com.newedu.javabase.allday.classhomework;
/**
 * Rect--矩形类
 * @author 
 *
 */
public class Rect extends Shape {
	//成员变量
	private double width;	//宽度
	private double height;	//高度
	public  String shapeName = "矩形";
	//构造方法
	public Rect() {
	}
	public Rect(double width,double height) {
		this.width = width;
		this.height = height;
		computePerimeter();
		computeAcreage();
	}
	//成员方法
	public void setWidth(double width) {
		this.width = width;
	}
	public double getWidth() {
		return width;
	}
	public void setHeight(double height) {
		this.height = height;
	}
	public double getHeight() {
		return height;
	}
	/**
	 * 计算矩形周长
	 */
	public void computePerimeter() {
		super.setPerimeter(2*(this.height+this.width));
	}
	/**
	 * 计算矩形面积
	 */
	public void computeAcreage() {
		super.setAcreage(this.height*this.width);
	}
}

4.正方形类

package com.newedu.javabase.allday.classhomework;
/**
 * Square--正方形类--继承于Rect
 * @author 
 */
public class Square extends Rect {
	public  String shapeName = "正方形";
	//构造方法
	public  Square() {
	}
	public  Square(double width) {
		super(width,width);
		computePerimeter();
		computeAcreage();
	}
	/**
	 * 计算正方形周长
	 */
	public void computePerimeter() {
		super.setPerimeter(4*super.getWidth());
	}
	/**
	 * 计算正方形面积
	 */
	public void computeAcreage() {
		super.setAcreage(Math.pow(super.getWidth(), 2));
	}
}

5.Demo

package com.newedu.javabase.allday.classhomework;

public class Demo01 {
	public static void main(String[] args) {
		//定义一个长方形对象  宽度:7,高度:4
		Rect rect1 = new Rect(7,4);
		//定义一个圆形对象	半径:6
		Cirale  cirale1 = new Cirale(6);
		//定义一个正方形对象	 宽度:5
		Square square1 = new Square(5);
		System.out.println("形状\t周长\t面积");
		System.out.println(rect1.shapeName+"\t"+rect1.getPerimeter()+"\t"+rect1.getAcreage());
		System.out.println(cirale1.shapeName+"\t"+cirale1.getPerimeter()+"\t"+cirale1.getAcreage());
		System.out.println(square1.shapeName+"\t"+square1.getPerimeter()+"\t"+square1.getAcreage());
	}

}

6.运行结果

/*
形状	周长	面积
矩形	22.0	28.0
圆形	38.0	113.0
正方形	20.0	25.0

*/

ps:利用接口和多态的实现方法–点击跳转

ヾ(◍°∇°◍)ノ゙ 加油

  • 16
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
可以使用继承来计算图形的面积周长,具体的实现方式如下: 1. 创建一个形状(Shape)作为父,包含计算面积周长方法。 ```java public abstract class Shape { public abstract double getArea(); public abstract double getPerimeter(); } ``` 2. 创建各种图形的子,如圆形Circle)、矩形Rectangle)等,继承形状,并实现父中的抽象方法。 ```java public class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } @Override public double getPerimeter() { return 2 * Math.PI * radius; } } ``` ```java public class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } @Override public double getPerimeter() { return 2 * (width + height); } } ``` 3. 在主函数中创建图形对象,并调用相应的方法计算面积周长。 ```java public static void main(String[] args) { Shape circle = new Circle(5); System.out.println("圆形面积为:" + circle.getArea()); System.out.println("圆形周长为:" + circle.getPerimeter()); Shape rectangle = new Rectangle(4, 6); System.out.println("矩形面积为:" + rectangle.getArea()); System.out.println("矩形周长为:" + rectangle.getPerimeter()); } ``` 输出结果: ``` 圆形面积为:78.53981633974483 圆形周长为:31.41592653589793 矩形面积为:24.0 矩形周长为:20.0 ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值