类的设计与封装一实验报告Word文档格式.docx
- 文档编号:17513803
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:12
- 大小:77.26KB
类的设计与封装一实验报告Word文档格式.docx
《类的设计与封装一实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《类的设计与封装一实验报告Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
}
Time(inth){hour=h;
Time(inth,intm){hour=h;
minute=m;
Time(inth,intm,ints){hour=h;
second=s;
Time(Timetime){
this.hour=time.getHour();
this.minute=time.getMinute();
this.second=time.getSecond();
publicintgetHour(){returnhour;
publicintgetMinute(){returnminute;
publicintgetSecond(){returnsecond;
publicStringtoUniversalString(){
DecimalFormattwoDigits=newDecimalFormat("
00"
);
returntwoDigits.format(getHour())+"
:
"
+
twoDigits.format(getMinute())+"
twoDigits.format(getSecond());
publicStringtoStandardString(){
return((getHour()==12||getHour()==0)?
12:
getHour()%12)+"
+、twoDigits.format(getMinute())+"
+twoDigits.format(getSecond())+(getHour()<
12?
AM"
PM"
(1)Time类共有几个构造器(即构造方法),作用有什么不同?
5种
无参数构造,初始化hour,minute,second;
定义参数h,将其赋值给hour;
定义参数h和m,将其赋值给hour,minute;
定义参数h,m和s,将其赋值给hour,minute,second;
(2)getTime(),getMinute(),getSecond()方法的作用是什么?
如果去掉这些方法,程序可以完成同样的功能吗?
如何修改?
以实例的方法,在Time(Timetime)为hour,minute,second赋值,
去掉后改为Time(Timetime){
this.hour=hour;
this.minute=minute;
this.second=second;
(3)如果以下代码段出现在Time类的测试程序的main方法中,输出结果是什么?
Timet1=newTime(5);
System.out.println("
Thetimeis"
+t1.toStandardString());
输出“The
time
is
4AM”
(4)如果以下代码段出现在Time类的测试程序的main方法中,输出结果是什么?
Timet2=newTime(13,59,60);
Thetimeis"
+t2.toStandardString());
1:
59:
60PM”
(5)如果以下代码段出现在Time类的测试程序的main方法中,输出结果是什么?
Timet3=newTime(13,30,0);
Timet4=newTime(t3);
+t4.toUniversalString());
“The
30:
00PM”
2.确定以下代码段中是否存在错误,如果有错误,指出是逻辑错误还是语法错误,请在程序中用“~~~~~”标出错误的地方,并在第个练习的空白处写下正确的代码。
如果代码中没有错误,则在答案中写上“没有错误”。
注意:
在每个程序段中可能包含多处错误。
(1)以下代码定义了Product类,它有一个不带参数的构造器,将产品的名称设置为一个空的String,将price设置为0.00;
该类还有一个toProductString方法,它返回一个包含产品的name和price的String
importjava.text.*;
publicclassProduct{
privateStringname;
privatedoubleprice;
privatestaticDecimalFormatmoney=newDecimalFormat("
$0.00"
publicProduct(){
name="
"
;
price=0.00;
publicStringtoProductString(){
returnname+"
costs"
+money.format(price);
}//endclassProduct
答案:
没有错误。
(2)如下代码定义了Product类的另一个构造器,它有2个参数,并将这些参数赋给相应的实例变量
publicProduct(Stringname,doubleprice){
name=name;
price=price;
this.name=name;
this.price=price;
(3)如下代码定义了两个set方法,用于设置Product类的name和price
publicsetName(){
this.name=name;
publicsetPrice(){
this.price=price;
publicStringsetName(){
returnname;
publicdoublesetPrice(){
returnprice;
(4)如下代码位于测试Product类的应用程序的main方法中,创建一个Product对象,并显示一个包含对象的实例变量值的String
Productp1=newProduct("
Milk"
5.5);
System.out.println(p1.name+"
+p1.price);
(5)如下代码位于测试Product类的应用程序的main方法中,创建一个Product对象,设置其实例变量的值,并显示一个包含实例变量值的String
Productp1=newProduct();
p1.setName();
p1.setPrice();
System.out.println(p1.toProductString("
Eggs"
3));
3.补充以下代码,完成对一个分数类Fraction的定义,并测试这个类
publicclassFraction{
privateintnume;
//分子
privateintdeno;
//分母
//无参构造器
publicFraction(){
this.nume=0;
this.deno=1;
//初始化实例变量
//有参构造器
publicFraction(intn,intd){
//化简分数方法
voidFracSimp()
{
//求分数的分子和分母的最大公约数
//化简分数
/*欧几里德算法定理:
gcd(a,b)=gcd(b,amodb),以下是c语言的代码,可以参考
voidswap(int&
a,int&
b)
{
intc=a;
a=b;
b=c;
}
intgcd(inta,intb)
{
if(0==a)
returnb;
if(0==b)
returna;
if(a>
swap(a,b);
intc;
for(c=a%b;
c>
0
c=a%b)
a=b;
}*/
//分数输出方法
voidFracOutput(){
publicstaticvoidmain(Stringargs[]){
4.构造一个Rectangle类(矩形类),它有两个浮点型属性length(长)和width(宽)。
该类具有两个构造函数(无参和有参),perimeter()和area()方法分别返回矩形的周长和面积,编写相应的main方法测试Rectangle类。
程序结构如下:
publicclassRectangel{
//实例变量的声明
//构造器的定义
//perimeter方法定义
//area方法定义
publicstaticvoidmain(String[]args){
//定义Rectangle类的对象引用r
//调用perimeter方法,并显示周长
//调用area方法,并显示面积
5.设计一个学生类Student,程序框架如下:
publicclassStudent{
//设计一个类变量(静态变量)记录学生人数
private
//设计基本属性有“学号”、“班号”、“姓名”、“性别”、“年龄”、“成绩”(用数组表示6门课的成绩)
//设计构造器,传递学生的个人信息
publicStudent(){
//设计方法“获得学号”、“获得班号”、“获得姓名”、“获得成绩”
//设计方法“修改年龄”、“修改班号”
//设计类方法“获得学生人数”
//设计一个类School,用于测试以上Student类
publicclassSchool{
publicstaticvoidmain(String[]args){
//创建新学生对象
//输出学生的基本信息
//测试类变量值的变化
classStudent{
//设计一个类变量(静态变量)记录学生人数
privatestaticintcount=0;
//设计基本属性有“学号”、“班号”、“姓名”、“性别”、“年龄”、“成绩”(用数组表示6门课的成绩)
privateintnum;
privateintclass_num;
privateStringname;
privateStringsex;
privateintage;
privateintscore[]=newint[6];
//设计构造器,传递学生的个人信息
publicStudent(){
}
publicStudent(intnum,intclass_num,Stringname,Stringsex,intage,int[]score){
this.num=num;
this.class_num=class_num;
this.name=name;
this.sex=sex;
this.age=age;
this.score=score;
//设计方法“获得学号”、“获得班号”、“获得姓名”、“获得成绩”
publicintnum(){
returnnum;
}
publicintgetClass_num(){
returnclass_num;
publicStringgetName(){
publicint[]getScore(){
returnscore;
//设计方法“修改年龄”、“修改班号”
publicvoidsetAge(intage){
publicvoidsetClass_num(intclass_num){
//设计类方法“获得学生人数”
inta[]={91,92,93,94,95,96};
//创建新学生对象
Students=newStudent(3,3,"
abc"
"
F"
2,a);
//输出学生的基本信息
intm[]=s.getScore();
System.out.println("
班级为:
+s.getClass_num()+"
\n姓名为:
+s.getName());
学生成绩为:
inti;
for(i=0;
i<
m.length;
i++){
System.out.println(m[i]);
}
//测试类变量值的变化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 封装 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)