Provide Best Programming Tutorials

编程作业 – 对象和类

(矩形类Rectangle)

设计一个名为Rectangle 的类表示矩形。

这个类包括:

  • 两个名为width 和height 的double 型数据域,它们分别表示矩形的宽和高。width 和 height 的畎认值都为1。
  • 创建默认矩形的无参构造方法。
  • — 个创建width 和height 为指定值的矩形的构造方法。
  • 一个名为getArea() 的方法返回这个矩形的面积。

(股票类Stock)

设计一个名为Stock 的类。这个类包括:

  • — 个名为symbol 的字符串数据域表示股票代码。
  • 一个名为name 的字符串数据域表示股票名字。
  • — 个名为previousClosingPrice 的double 型数据域,它存储的是前一日的股票值0
  • — 个名为currentPrice 的double 型数据域,它存储的是当时的股票值。
  • 创建一支有特定代码和名字的股票的构造方法。
  • 一个名为getChangePercentO 的方法, 返回从previousClosingPrice 变化到currentPrice 的百分比。

画出该类的UML 图并实现这个类。编写一个测试程序,创建一个Stock 对象,它的股票代码是0RCL, 股票名字为Oracle Corporation, 前一日收盘价是34.5。设置新的当前值为34.35, 然后显示市值变化的百分比

(使用日期类Date)

编写程序创建一个Date 对象,设置它的流逝时间分别为10000、100000、1000000、10000000、100000000、1000000000、10000000000、100000000000, 然后使用toString()方法分别显示上述日期。

(使用随机类Random)

编写一个程序,创建种子是1000 的Random 朴象,然后使用nextlnt(100)方法显示0.到100 之间前50 个随机整数。

(使用公历类GregorianCalendar )

Java API 有一个在包java.util 中的类GregorianCalendar,可以使用它获得某个日期的年、月、日。它的无参构造方法构建一个当前日期的实例,

get(CregorianCalendar.YEAR)、get(GregorianCalendar.MONTH)和get(CregorianCalendar.DAY_0F_M0NTH)方法返回年、月和日。编写一个程序完成两个任务:

  • 显示当前的年、月和日
  • GregorianCalendar 类有方法setTimelnMillis(long), 可以用它来设置从1970 年1月1
  • 日算起的一个特定时间。将这个值设置为1234567898765L, 然后显示这个年、月和日。

(秒表)

设计一个名为Stopwatch 的类.该类包含:
• 具有访问器方法的私有数据域startTime 和endTime。
• 一个无参构造方法,使用当前时间来初始化startTime。
• 一个名为start()的方法,将startTime 重设为当前时间。
• 一个名为stop()的方法,将endTime 设置为当前时间。
• — 个名为getElapsedTimeO 的方法,以毫秒为单位返回秒表记录的流逝时间。
画出该类的UML图并实现这个类。编写一个测试程序. 用于测童使用选择排序对100000个数字进行排序的执行时间。

(账户类Account)

设计一个名为Account 的类,它包括:
• — 个名为id 的int 类型私有数据域(默认值为0)。
• — 个名为balance 的double 类型私有数据域(默认值为0)。
• — 个名为annuallnterestRate 的double 类型私有数据域存储当前利率(默认值为0)。假设所有的账户都有相同的利率。
• — 个名为dateCreated 的Date 类型的私有数据域,存储账户的开户日期。
• — 个用于创建默认账户的无参构造方法
• 一个用于创建带特定id 和初始余额的账户的构造方法。
• id、balance 和annuallnterstRate 的访问器和修改器。
• dateCreated 的访问器。
• 一个名为getMonthlyInterestRate()的方法,返回月利率。
• — 个名为withDraw 的方法,从账户提取特定数额。
• — 个名为deposit 的方法向账户存储特定数额。
画出该类的UML图并实现这个类。

提示:方法getMonthlylnterest() 用于返回月利息,而不是利率。月利息是balance * monthly- InterestRate。monthlylnterestRate是annualInterestRate/12。注意,annualInterestRate
是一个百分教,比如4.5%。你需要将其除以100。
编写一个测试程序,创建一个账户ID 为1122、余额为20 000 美元、年利率为4.5%的Account 对象。使用withdraw 方法取款2500 美元,使用deposit 方法存款3000 美元,然后打 印余额、月利息以及这个账户的开户日期

( 风扇类Fan)

设计一个名为Fan 的类来表示一个风扇。这个类包括:
• 三个名为SLOW、MEDIUM 和FAST 而值为1、2 和3 的常量,表示风扇的速度。
• — 个名为speed 的int 类型私有数据域,表示风扇的速度(畎认值为SLOW)。
• — 个名为on 的boolean 类型私有数据域.表示风扇是否打开(默认值为false〉。
• 一个名为radius 的double 类型私有数据域,表示风扇的半径(默认值为S )。
• 一个名为color 的string 类型数据域,表示风扇的颜色(默认值为blue)。
• 这四个数据域的访问器和修改器。
• 一个创建默认风扇的无参构造方法。
• 一个名为toStringO 的方法返回描述风扇的宇符串。如果风扇是打开的,那么该方法在一个
组合的宇符串中返回风扇的速度、顔色和半径。如果风扇没有打开,该方法就会返回一个由“ fan is off ” 和风扇颜色及半径组合成的字符串。
画出该类的UML 图并实现这个类。编写一个测试程序,创建两个Fan 对象。将第一个对象设置为最大速度、半径为10、颜色为yellow、状态为打开。将第二个对象设置为中等速度、半径为S 、颜色为blue、状态为关闭。通过调用它们的toString 方法显示这些对象。

(几何:正n 边形)


在一个正n边形中,所有边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。设计一个名为RegularPolygon的类,该类包括:
• 一个名为n的int 型私有数据域定义多边形的边数,狀认值为3。
• 一个名为side的double 型私有数据域存储边的长度,默认值为1。
• 一个名为x的double 型私有数据域定义多边形中点的x标,默认值为0。
• 一个名为y的double 型私有数据域定义多边形中点的y坐标,默认值为0。
• 一个创建带默认值的正多边形的无参构造方法。
• 一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。
• 一个能创建带指定边数和边长度、中心在(x,y) 的正多边形的构造方法。
• 所有数据域的访问器和修改器。
• — 个返回多边形周长的方法getPerimeter()。
• 一个返回多边形面积的方法getArea()。计算正多边形面积的公式是

画出该类的UML图并实现这个类。编写一个测试程序,分别使用无参构造方法、

RegularPolygon(6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon 对象。显示每个对象的周长和面积。

Leave a Reply

Close Menu