实验报告实验类与对象_第1页
实验报告实验类与对象_第2页
实验报告实验类与对象_第3页
实验报告实验类与对象_第4页
实验报告实验类与对象_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告 _实验 3 类与对象 (学生学号 _姓名 )一、实验目的1熟悉类的组成,掌握类的声明方法;2理解构造方法的作用,并掌握构造方法的定义;3熟练使用访问器和设置器实现信息隐藏和封装;4熟悉一般方法、构造方法的重载;5能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6掌握对象的创建、引用和使用及向方法传递参数的方式;7掌握 this关键字的使用以及对象数组的创建和访问;8掌握 Java 包的创建、包成员的各种访问方式;9掌握一维数组:声明,创建,初始化,数组元素的访问;10 掌握多维数组的概念:二维数组的声明,初始化,元素的访问。二、实验内容与步骤

2、1请回答下列问题:( 1) Cirecle类定义了几个属性?它们的类型、访问权限各为什么?答:两个PI , floatl类型,静态私有权限Radius , float ;类型,私有权限( 2)类中的 “PI ”的值可以在程序的方法中更改吗?答:不可以,因为PI 为静态变量( 3) Cirecle类定义了几个方法?它们的访问权限怎样?答 :四个, getRadius(), setRadius(floatradius), getPerimeter(), getArea()都是公有权限2写出 Rectangle类的程序代码:classRectangleprivatefloatwidth;privat

3、efloatlength;publicfloatgetWidth()/获取矩形宽度returnwidth;publicfloatgetLength()/获取矩形长度returnlength;publicfloatgetPerimeter()/获取矩形周长return2*(width+length);publicfloatgetArea()/获取矩形面积return(width*length);publicvoidsetWidth(floatw)/设置矩形宽度width=w;publicvoidsetLength(floatl)/设置矩形长度length=l;3回答下列问题:(1) 该程序中有几

4、个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle 、CircleTest;主类是CircleTest;源程序文件名是CircleTest。(2)Circle类定义了几个构造方法(即构造器 )? Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做?答: Circle 类定义了个构造方法;不存在,写入Circle () ;(3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的?答: CircleTest类创建了两个Circle 对象; Circle 对象名 =newCircle()。(4)CircleTest类

5、中如何调用对象的方法?答: CircleTest类调用对象方法:对象名. 方法4写出 OverrideTest中所缺的三行代码:publicclassOverrideTestpublicstaticvoidmain(Stringargs)/使用 Box 类的无参构造方法创建方法创建对象;System. out .println(box1);box1/使用 Box 类的带一个参数的构造方法创建对象box2,参数值为5.0;/ 使用带 Box 类带三个参数的构造方法创建对象box3 ,其中三个参数长、宽、高分别为10.1 、20.2 、30.3;System. out .println(box3)

6、;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 (基础题)一维数组的使用:根据注释填充程序所缺代码,然后编译、运行该程序,并回答相关问题:/一维数组:声明,创建,初始化,数组元素的引用及数组拷贝week_ _Stringweek _;_ _week=newstring7_;for (int i=0;iweek.length;i+)/输

7、出 week 数组各元素的值+i+ = +_ _weeki_ _);/ 声明一个名为 week 的 String/ 为week 数组分配存放类型的一维数组7个字符串的空间问题:(1) 一维数组如何声明、创建?如果没有给数组元素赋值,则它们的取值如何?答: a:数据类型 数组名 =new 数据类型 数组的长度 ;b:数据类型数组名=new 数据类型 数组的长度 ;如果没有给数组赋值,则系统会自动默认它为0。(2) 数组的静态初始化具有什么功能?答:静态初始化:在定义数组的同时就为数组元素分配空间并赋值。(3) 要了解数组元素的个数,可用访问数组的什么属性得到?答:数组都有一个属性length 来

8、指明它的长度,例如:a.length 指明数组a 的长度 (即元素个数 )。(4) 怎样引用数组的元素?写出它的下标取值范围。答:数组名 index其中: index 为数组元素下标,可以是整型常量或整型表达式,如:以批量设置或访问数组元素的值。数组元素下标从0 开始,最大下标为:数组长度-1a0,bi,c5*i,利用循环语句可7 (基础题 )二维数组的使用:根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题:/二维数组:声明,创建,动态初始化,数组元素的引用/声明一个名为myArray的数组 ,该数组有2 行,每行列数不等,并为其分配内存空间_ intmyArray2_;myArra

9、y0=newint 5;/ 第一行有5 个元素 , 并为其分配内存空间_ myArray1= newint 10 _;/第二行有10 个元素 ,并为其分配内存空间for (int j=0;jmyArray0.length;j+)/用 1-10 之间的随机整数给第一行元素赋值myArray0j=_(int )(Math.random()*1+9)_;for (int j=0;j_ myArray1.length_;j+)/ 用 100-200 之间的随机整数给第二行元素赋值myArray1j=(int )(Math.random()*100+100);for (int i=0;i_myArray

10、1.length_;i+)/ 输出 myArray数组各元素的值for ( int j=0;jmyArrayi.length;j+)问题:(1) 二维数组如何声明、创建?二维数组的列数是否一定要求相同?答:数据类型数组名 或数据类型 数组名;不要求相同。(2) 二维数组如何动态初始化?答:数据类型数组名=new数据类型第1维大小 第2 维大小(3)怎样理解“多维数组是数组的数组”?length作用于不同的数组:myArray.length,myArray0.length, myArray1.length,结果什么不同?(4) 怎样引用数组的元素?它们下标取值范围怎样?8 (提高题 )分析、运行

11、下列程序,回答下列问题:(1)实例变量和类变量的含义是什么?如何声明它们?(2)实例方法和类方法的含义是什么?如何声明它们?(3)f() 方法中可以访问什么类型的变量和方法?(4)g() 方法中可以访问x 变量吗?可以在其中调用f() 方法吗?(5)在主类中,应如何调用实例方法和类方法?(6)运行程序时,出现如下错误:无法从静态上下文中引用非静态变量mystring请分别用 “类变量、类方法”和“实例变量、实例方法”两种完全不同的方法进行修改,使其能正确运行。9 (提高题 )写出程序所缺代码,并回答相关问题package lab3;/导入 Student 类;publicclassObject

12、ArrayExample/声明一个长度为4的对象数组Student1student=;public ObjectArrayExample()/初始化对象数组void printArrayElement()int max=0,j=0;int sum= newint 4;for (int i=0;i student.length ;i+)/使用循环语句来求每个学生三门课的总分,并赋给sum 数组对应元素sumi=;for (int i=0;isum.length ;i+)if(maxsumi)max=sumi;j=i;/输出总分最高的学生的姓名、学号、语文成绩、英语成绩、英语成绩和总分 System. out .println( 总分最高的学生姓名 : + , 学号 : +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论