面向对象程序设计基础(二)矩形
发布日期:2021-05-08 16:11:55 浏览次数:24 分类:原创文章

本文共 3139 字,大约阅读时间需要 10 分钟。

命名App1.java
要求:
(1)按照题目所给变量名称、类型和方法名称进行编程,禁止修改;
(2)本题中所有内容写在源文件App1.java中。
(3)编程环境可选,Eclipse和JDK均可。
1、编写一个矩形类Rectangle,包含:
成员变量:
两个属性:矩形的宽width;矩形的高length。
两个构造器方法:
(1)一个带有两个参数的构造器方法,用于将width和length属性初化;
(2)一个不带参数的构造器,调用构造方法(1)将矩形初始化为宽和高都为10。
普通方法:
(1)设置getter和setter方法用于获取和设置类中length和width变量的值, set方法应该验证length和width都是大于0.0小于20.0的浮点数, 构造方法(一)调用setWidth()和setLength();
(2)求矩形面积的方法area()任何矩形的面积是它的长度乘以它的宽度
(3)求矩形周长的方法perimeter() 矩形的周长是(宽+高)x2
(4)包含一个判断矩形是否为正方形的谓词方法isSquare()
(5)void compare(Rectangle),用于比较两个对象是否相等。

2、通过main方法测试
(1)创建两个Rectangle对象rect1和rect2判断这两个对象是否相等。
rect1的 length和width 都为10。
Rect2的 length等于5和width 等于10。
(2)分别调用area()和perimeter ()输出两个对象。
(3)调用 isSquare()方法该方法检查那个矩形是否为方形
代码:

package 大二;/** * @author Hasee * */class Rectangle{   	private double width;	private double length;//	构造方法一	public Rectangle(double width, double length) {   		this.width = width;		this.length = length;	}//	构造方法二	public Rectangle() {   		this(10,10);	}	//普通方法	//1.1宽	public double  getWidth() {   		return width;	}	public void setWidth(int width) {   		if (width>=20.0||width<=0.0) {   			throw new IllegalArgumentException("width的值应该大于0.0小于20.0");		}		this.width = width;	}	//1.2长	public double  getLength() {   		return length;	}	public void setLength(int length) {   		if (length>20.0||length<0.0) {   			throw new IllegalArgumentException("length的值应该大于0.0小于20.0");		}		this.length = length;	}	//2.矩形的面积	public double area() {   		return width*length;	}	//3.矩形的周长	public double perimeter() {   		return 2*(width+length);	}	//4.判断矩形是否为正方形	public void isSquare() {   		if (this.length==this.width)System.out.println("是正方形");		else System.out.println("不是正方形");	}		//5.比较两个对象是否相等	public void campare(Rectangle rect) {   		if (this.width==rect.width&&this.length==rect.length)System.out.println("两个对象相等");			else System.out.println("两个对象不相等");	}	/*	//重写哈希地址	@Override	public int hashCode() {		final int prime = 31;		int result = 1;		long temp;		temp = Double.doubleToLongBits(length);		result = prime * result + (int) (temp ^ (temp >>> 32));		temp = Double.doubleToLongBits(width);		result = prime * result + (int) (temp ^ (temp >>> 32));		return result;	}	//重写对象地址,使其相等	@Override	public boolean equals(Object obj) {		if (this == obj)			return true;		if (obj == null)			return false;		if (getClass() != obj.getClass())			return false;		Rectangle other = (Rectangle) obj;		if (Double.doubleToLongBits(length) != Double.doubleToLongBits(other.length))			return false;		if (Double.doubleToLongBits(width) != Double.doubleToLongBits(other.width))			return false;		return true;	}	*/	//将地址转化成字符串	@Override	public String toString() {   		return "App2 [getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString()				+ "]";	}}public class App1 {   	public static void main(String[] args) {   		Rectangle rect1 = new Rectangle(10,10);		Rectangle rect2 = new Rectangle(10,5);		System.out.print("rect1的面积为:"+rect1.area()+"   ,周长为:"+rect1.perimeter()+"   rect1");		rect1.isSquare();		System.out.print("rect2的面积为:"+rect2.area()+"     ,周长为:"+rect2.perimeter()+"   rect2");		rect2.isSquare();		rect1.campare(rect2);	}}

运行结果如下:
在这里插入图片描述

上一篇:Java学习
下一篇:面向对象程序设计基础(一)学生信息管理

发表评论

最新留言

很好
[***.229.124.182]2025年04月01日 12时14分47秒