Java第六周实验报告

实验目的:

封装Trangle, Ladder, Circle类,完成相应的功能

 

实验代码:

package com.DiLiuZhou;

public class Trangle {
	private double sideA, sideB, sideC, area, length;
	private boolean boo; //用于判断能否构成三角形

	public Trangle(double a, double b, double c) {
		sideA = a;
		sideB = b;
		sideC = c;
		if ((a + b > c || a + c > b || b + c > a)
				&& (a - b < c || a - c < b || b - c < a)) // a,b,c构成三角形的条件表达式
		{
			boo = true;
		} else {
			boo = false;
		}
	}  //构造函数

	public double getSideA() {
		return sideA;
	}
    public void setSideA(double sideA) {
		this.sideA = sideA;
	}
    public double getSideB() {
		return sideB;
	}
    public void setSideB(double sideB) {
		this.sideB = sideB;
	}
    public double getSideC() {
		return sideC;
	}
    public void setSideC(double sideC) {
		this.sideC = sideC;
	}
    public boolean isBoo() {
		return boo;
	}
    public void setBoo(boolean boo) {
		this.boo = boo;
	}  //getter setter函数

    public double getLength() {
		if (boo) {
			return sideA + sideB + sideC; //如果能构成三角形
		} else {
			System.out.println("不是一个三角形,不能计算周长");
			return 0;
		} // 方法体,要求计算出length的值并返回
	}

	public double getArea() {
		if (boo) {
			double p = (sideA + sideB + sideC) / 2.0;
			area = Math.sqrt(p * (p - sideA) * (p - sideB) * (p - sideC));
			return area;
		} else {
			System.out.println("不是一个三角形,不能计算面积");
			return 0;
		}
	}

	public void setABC(double a, double b, double c) {
		sideA = a;
		sideB = b;
		sideC = c;
		if ((a + b > c && a + c > b && b + c > a)
				&& (a - b < c && a - c < b && b - c < a)) // a,b,c构成三角形的条件表达式
		{
			boo = true; // 给boo赋值。
		} else {
			boo = false; // 给boo赋值。
		}
	}
}


 

package com.DiLiuZhou;

public class Lader {
	private double above, bottom, height, area;

	Lader(double a, double b, double h) {
		above = a; // 方法体,将参数a,b,c分别赋值给above,bottom,height
		bottom = b;
		height = h;
	}  //构造函数

	
	public double getAbove() {
		return above;
	}
    public void setAbove(double above) {
		this.above = above;
	}
    
    public double getBottom() {
		return bottom;
	}
    public void setBottom(double bottom) {
		this.bottom = bottom;
	}

    public double getHeight() {
		return height;
	}
    public void setHeight(double height) {
		this.height = height;
	} //getter setter函数


	public double getArea() {
		return (above + bottom) * height / 2;// 方法体,,要求计算出area返回
	}
}


 

package com.DiLiuZhou;

public class Circle {
	private double radius, area;

	public Circle(double r) {
		radius = r; // 方法体
	}

	public double getArea() {
		return 3.14 * radius * radius; // 方法体,要求计算出area返回
	}

	public double getLength() {
		return 2 * 3.14 * radius; // getArea方法体的代码,要求计算出length返回
	}

	public void setRadius(double newRadius) {
		radius = newRadius;
	}
    public double getRadius() {
		return radius;
	}  //getter setter函数
}


 

package com.DiLiuZhou;

public class Test {
	public static void main(String args[]) {
		double length, area;
		Circle circle = null;
		Trangle trangle;
		Lader lader;

		circle = new Circle(1); // 创建对象circle
		trangle = new Trangle(12, 13, 14); // 创建对象trangle。
		lader = new Lader(12, 13, 14); // 创建对象lader

		System.out.println("圆的半径为:"+circle.getRadius());
		length = circle.getLength(); // circle调用方法返回周长并赋值给length
		System.out.println("圆的周长:" + length);

		area = circle.getArea(); // circle调用方法返回面积并赋值给area
		System.out.println("圆的面积:" + area);
		System.out.println();

		System.out.println("三角形的三边为:"+trangle.getSideA()+", "+trangle.getSideB()+", "+trangle.getSideC());
		length = trangle.getLength(); // trangle调用方法返回周长并赋值给length
		System.out.println("三角形的周长:" + length);

		area = trangle.getArea(); // trangle调用方法返回面积并赋值给area
		System.out.println("三角形的面积:" + area);
		System.out.println();

		System.out.println("梯形的上底,下底,高为:"+lader.getAbove()+", "+lader.getBottom()+", "+lader.getHeight());
		area = lader.getArea(); // lader调用方法返回面积并赋值给area
		System.out.println("梯形的面积:" + area);
		System.out.println();

		trangle.setABC(12, 34, 1); // trangle调用方法设置三个边,要求将三个边修改为12,34,1。
		System.out.println("重置后的三角形三边为:"+trangle.getSideA()+", "+trangle.getSideB()+", "+trangle.getSideC());
		area = trangle.getArea(); // trangle调用方法返回面积并赋值给area
		System.out.println("三角形的面积:" + area);
		length = trangle.getLength(); // trangle调用方法返回周长并赋值给length
		System.out.println("三角形的周长:" + length);
	}
}


 

实验结果:

圆的半径为:1.0
圆的周长:6.28
圆的面积:3.14

三角形的三边为:12.0, 13.0, 14.0
三角形的周长:39.0
三角形的面积:72.30793524918272

梯形的上底,下底,高为:12.0, 13.0, 14.0
梯形的面积:175.0

重置后的三角形三边为:12.0, 34.0, 1.0
不是一个三角形,不能计算面积
三角形的面积:0.0
不是一个三角形,不能计算周长
三角形的周长:0.0



 

实验心得:

用包将不同的类分别封装在不同的class中,最后在Test类中对功能进行测试,类似于C++中的工程,各个部分完成各自的任务,各个类封装各自的属性和方法,使各部分的代码既不会很长,也不会太混乱,使得代码既条理清晰又增加了可读性,虽然在以前的代码中由于功能的类相对比较少,包的特性没有很好的表现出来,但从这个工程中就能有比较好的体现了,相信以后会让我们见识到它更大的益处的,以后我会将包的写法进行到底的。

代码方面就是以前一些小类的集结,没什么太多好讲的啦~~~~~~~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值