您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 实验报告-实验3-类与对象
1实验报告_实验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类定义了几个方法?它们的访问权限怎样?2答:四个,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。3(2)Circle类定义了几个构造方法(即构造器)?Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做?答:Circle类定义了个构造方法;不存在,写入Circle(){};(3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的?答:CircleTest类创建了两个Circle对象;Circle对象名=newCircle()。(4)CircleTest类中如何调用对象的方法?答:CircleTest类调用对象方法:对象名.方法4.写出OverrideTest中所缺的三行代码:publicclassOverrideTest{publicstaticvoidmain(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=newBox()Boxbox2=newBox(5.0);Boxbox3=newBox(10.1,20.2,30.3);5.回答下列问题:(1)this.length=length;中的this代表什么?答:this代表类;4(2)this(x,x,x);中的this是什么含义?6.(基础题)一维数组的使用:根据注释填充程序所缺代码,然后编译、运行该程序,并回答相关问题://一维数组:声明,创建,初始化,数组元素的引用及数组拷贝______Stringweek[]__________;//声明一个名为week的String类型的一维数组______week=newstring[7]__________________;//为week数组分配存放7个字符串的空间for(inti=0;iweek.length;i++)//输出week数组各元素的值System.out.println(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开始,最大下标为:数组长度-157.(基础题)二维数组的使用:根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题://二维数组:声明,创建,动态初始化,数组元素的引用//声明一个名为myArray的数组,该数组有2行,每行列数不等,并为其分配内存空间_______intmyArray[2][]__________________;myArray[0]=newint[5];//第一行有5个元素,并为其分配内存空间______myArray[1]=newint[10]__________________;//第二行有10个元素,并为其分配内存空间for(intj=0;jmyArray[0].length;j++)//用1-10之间的随机整数给第一行元素赋值myArray[0][j]=_______(int)(Math.random()*1+9)_______________;for(intj=0;j______myArray[1].length__________;j++)//用100-200之间的随机整数给第二行元素赋值myArray[1][j]=(int)(Math.random()*100+100);for(inti=0;i_____myArray[1].length___________;i++){//输出myArray数组各元素的值for(intj=0;jmyArray[i].length;j++){问题:(1)二维数组如何声明、创建?二维数组的列数是否一定要求相同?答:数据类型数组名[][]或数据类型[][]数组名;不要求相同。(2)二维数组如何动态初始化?答:数据类型数组名[][]=new数据类型[第1维大小][第2维大小](3)怎样理解“多维数组是数组的数组”?length作用于不同的数组:myArray.length,myArray[0].length,myArray[1].length,结果什么不同?(4)怎样引用数组的元素?它们下标取值范围怎样?8.(提高题)分析、运行下列程序,回答下列问题:(1)实例变量和类变量的含义是什么?如何声明它们?6(2)实例方法和类方法的含义是什么?如何声明它们?(3)f()方法中可以访问什么类型的变量和方法?(4)g()方法中可以访问x变量吗?可以在其中调用f()方法吗?(5)在主类中,应如何调用实例方法和类方法?(6)运行程序时,出现如下错误:无法从静态上下文中引用非静态变量mystringSystem.out.println(mystring);请分别用“类变量、类方法”和“实例变量、实例方法”两种完全不同的方法进行修改,使其能正确运行。9.(提高题)写出程序所缺代码,并回答相关问题packagelab3;//导入Student类;publicclassObjectArrayExample{//声明一个长度为4的对象数组Student1[]student=;publicObjectArrayExample(){//初始化对象数组}voidprintArrayElement(){intmax=0,j=0;int[]sum=newint[4];for(inti=0;istudent.length;i++){//使用循环语句来求每个学生三门课的总分,并赋给sum数组对应元素sum[i]=;}for(inti=0;isum.length;i++){7if(maxsum[i]){max=sum[i];j=i;}}//输出总分最高的学生的姓名、学号、语文成绩、英语成绩、英语成绩和总分System.out.println(总分最高的学生姓名:++,学号:++,语文成绩:++,英语成绩:++,数学成绩:++,总分是:+max);}publicstaticvoidmain(Stringargs[]){ObjectArrayExampleobjarr=newObjectArrayExample();objarr.printArrayElement();}}问题:(1)如何定义对象数组?(2)如何访问对象数组元素的成员变量?(3)包为lab3.arr.obj的类的保存路径是什么?
本文标题:实验报告-实验3-类与对象
链接地址:https://www.777doc.com/doc-4588902 .html