实验报告_实验3 类与对象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告_实验3类与对象(学生学号_姓名) 一、实验目的

1.熟悉类的组成,掌握类的声明方法;

2.理解构造方法的作用,并掌握构造方法的定义;

3.熟练使用访问器和设置器实现信息隐藏和封装;

4.熟悉一般方法、构造方法的重载;

5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式;

7.掌握this关键字的使用以及对象数组的创建和访问;

8.掌握Java包的创建、包成员的各种访问方式;

9.掌握一维数组:声明,创建,初始化,数组元素的访问;

10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。

二、实验内容与步骤

1.请回答下列问题:

(1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么?

答:两个PI,floatl类型,静态私有权限

Radius,float;类型,私有权限

(2)类中的“PI”的值可以在程序的方法中更改吗?

答:不可以,因为PI为静态变量

(3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(floatradius),getPerimeter(),getArea()都是公有权限

2.写出Rectangle类的程序代码:

classRectangle

{

privatefloatwidth;

privatefloatlength;

publicfloatgetWidth() //获取矩形宽度

{returnwidth;}

publicfloatgetLength() //获取矩形长度

{returnlength;}

publicfloatgetPerimeter() //获取矩形周长

{return2*(width+length);}

publicfloatgetArea() //获取矩形面积

{return(width*length);}

publicvoidsetWidth(floatw) //设置矩形宽度

{width=w;}

publicvoidsetLength(floatl) //设置矩形长度

{length=l;}

}

3.回答下列问题:

(1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?

答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

(2)Circle类定义了几个构造方法(即构造器)?Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做?

答:Circle类定义了个构造方法;不存在,写入Circle(){};

(3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的?

答:CircleTest类创建了两个Circle对象;Circle对象名=newCircle()。

(4)CircleTest类中如何调用对象的方法?

答:CircleTest类调用对象方法:对象名.方法

4.写出OverrideTest中所缺的三行代码:

publicclass OverrideTest{

publicstaticvoid main(String[]args){

//使用Box类的无参构造方法创建方法创建对象box1

;

System.out.println(box1);

//使用Box类的带一个参数的构造方法创建对象box2,参数值为5.0

;

System.out.println(box2);

//使用带Box类带三个参数的构造方法创建对象box3,其中三个参数长、宽、高分别为10.1、20.2、30.3

;

System.out.println(box3);

}

}

Boxbox1=new Box()Boxbox2=new Box(5.0);Boxbox3=new Box(10.1,20.2,30.3);

5.回答下列问题:

(1)this.length=length;中的this代表什么?

答:this代表类;

(2)this(x,x,x);中的this是什么含义?

6.(基础题)一维数组的使用:根据注释填充程序所缺代码,然后编译、运行该程序,并回答相关问题:

//一维数组:声明,创建,初始化,数组元素的引用及数组拷贝

______Stringweek[]__________; //声明一个名为week的String类型的一维数组______week=newstring[7]__________________; //为week数组分配存放7个字符串的空间for(int i=0;i

"week["+i+"]="+____week[i]_________);

问题:

(1)一维数组如何声明、创建?如果没有给数组元素赋值,则它们的取值如何?

答:a:数据类型[]数组名=new数据类型[数组的长度];

b:数据类型数组名[]=new数据类型[数组的长度];

如果没有给数组赋值,则系统会自动默认它为0。

(2)数组的静态初始化具有什么功能?

答:静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

(3)要了解数组元素的个数,可用访问数组的什么属性得到?

答:数组都有一个属性length来指明它的长度,例如:a.length指明数组a的长度(即元素个数)。

(4)怎样引用数组的元素?写出它的下标取值范围。

答:数组名[index]

其中:index为数组元素下标,可以是整型常量或整型表达式,如:a[0],b[i],c[5*i],利用循环语句可以批量设置或访问数组元素的值。

数组元素下标从0开始,最大下标为:数组长度-1

7.(基础题)二维数组的使用:根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题://二维数组:声明,创建,动态初始化,数组元素的引用

//声明一个名为myArray的数组,该数组有2行,每行列数不等,并为其分配内存空间

_______intmyArray[2][]__________________;

myArray[0]=newint[5]; //第一行有5个元素,并为其分配内存空间

______myArray[1]=newint[10]__________________; //第二行有10个元素,并为其分配内存空间

相关文档
最新文档