
面向对象程序设计基础(二)矩形
发布日期: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); }}
运行结果如下:
发表评论
最新留言
很好
[***.229.124.182]2025年04月01日 12时14分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
让你的代码更优秀的 14 条建议
2021-05-09
不需要爬虫也能轻松获取 unsplash 上的图片
2021-05-09
将博客搬至CSDN
2021-05-09
elementUi源码解析(1)--项目结构篇
2021-05-09
自动遍历测试之Monkey工具
2021-05-09
Nmap扫描工具介绍
2021-05-09
算法笔记:递归、动态规划
2021-05-09
Pytest插件开发
2021-05-09
常用Windows 快捷键
2021-05-09
linux命令-压缩与打包
2021-05-09
ORACLE 11g 生产中高水位线(HWM)处理
2021-05-09
centos 6.x 编译安装 pgsql 9.6
2021-05-09
weblogic 服务器部署SSL证书
2021-05-09
oracle 11g not in 与not exists 那个高效?
2021-05-09
Linux 安装Redis 5.0(以及参数调优)
2021-05-09