实验报告 - 实验3 类与对象
更新时间:2023-09-29 04:40:01 阅读量: 综合文库 文档下载
- 实验报告格式推荐度:
- 相关推荐
实验报告_实验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类定义了几个方法?它们的访问权限怎样?
1
答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限
2.写出 Rectangle类的程序代码: class Rectangle { }
3.回答下列问题:
(1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?
private float width; private float length; public float getWidth( ) {return width;}
public float getLength( ) {return length;}
public float getPerimeter( ) {return 2*(width+length);} public float getArea( ) {return (width*length);} public void setWidth(float w) {width=w;}
public void setLength(float l) {length=l;}
//设置矩形长度
//设置矩形宽度
//获取矩形面积
//获取矩形周长
//获取矩形长度
//获取矩形宽度
答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。
2
(2)Circle类定义了几个构造方法(即构造器)?Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做?
答:Circle类定义了个构造方法;不存在,写入Circle(){};
(3)Circle Test类中创建了几个Circle对象?这些对象是如何创建的? 答:Circle Test类创建了两个Circle对象;Circle 对象名=new Circle()。
(4)Circle Test类中如何调用对象的方法? 答:Circle Test类调用对象方法: 对象名.方法
4.写出OverrideTest中所缺的三行代码:
public class OverrideTest { }
Box box1=new Box() Box box2=new Box(5.0); Box box3=new Box(10.1,20.2,30.3); }
//使用Box类的带一个参数的构造方法创建对象box2,参数值为5.0 ; System.out.println(box2);
; System.out.println(box3); public static void main(String[] args) {
//使用Box类的无参构造方法创建方法创建对象box1 ; System.out.println(box1);
//使用带Box类带三个参数的构造方法创建对象box3,其中三个参数长、宽、高分别为10.1、20.2、30.3
5.回答下列问题:
(1) this.length=length; 中的this代表什么? 答:this代表类;
3
(2) this(x, x, x); 中的this是什么含义?
6.(基础题)一维数组的使用:根据注释填充程序所缺代码,然后编译、运行该程序,并回答相关问题:
//一维数组:声明,创建,初始化,数组元素的引用及数组拷贝 组 间
for (int i=0; i // 输出week数组各元素的值 System.out.println(\+i+\+____week[i]_________); ______week=new string[7]__________________; // 为week数组分配存放7个字符串的空 ______String week[]__________; // 声明一个名为week的String类型的一维数 问题: (1)一维数组如何声明、创建?如果没有给数组元素赋值,则它们的取值如何? 答:a:数据类型[ ] 数组名=new 数据类型[数组的长度] ; b:数据类型 数组名[ ]=new 数据类型[数组的长度]; 如果没有给数组赋值,则系统会自动默认它为0。 (2)数组的静态初始化具有什么功能? 答:静态初始化:在定义数组的同时就为数组元素分配空间并赋值。 (3)要了解数组元素的个数,可用访问数组的什么属性得到? 答:数组都有一个属性length来指明它的长度,例如:a.length 指明数组a的长度(即元素个数)。 (4)怎样引用数组的元素?写出它的下标取值范围。 答:数组名[index] 其中:index为数组元素下标,可以是整型常量或整型表达式,如:a[0] , b[i] , c[5*i],利用循环语句可以批量设置或访问数组元素的值。 数组元素下标从0开始,最大下标为: 数组长度-1 4 7.(基础题)二维数组的使用:根据注释填充所缺代码,然后编译、运行该程序,并回答相关问题: //二维数组:声明,创建,动态初始化,数组元素的引用 // 声明一个名为myArray的数组,该数组有2行,每行列数不等,并为其分配内存空间 _______ int myArray[2][]__________________; myArray[0]=new int[5]; // 第二行有10个元素,并为其 // 第一行有5个元素,并为其分配内存空间 ______ myArray[1]=new int[10]__________________; for (int j=0; j 分配内存空间 // 用1-10之间的随机整数给第一行元素赋值 myArray[0][j]=_______ (int)(Math.random()*1+9)_______________; // 用100-200之间的随机整数给第二行 for (int j=0; j<______ myArray[1].length __________;j++) myArray[1][j]=(int)(Math.random()*100+100); for (int j=0; j 元素赋值 for (int i=0; i<_____ myArray[1].length ___________;i++){ // 输出myArray数组各元素的值 问题: (1)二维数组如何声明、创建?二维数组的列数是否一定要求相同? 答:数据类型 数组名[ ][ ] 或 数据类型[ ][ ] 数组名;不要求相同。 (2)二维数组如何动态初始化? 答:数据类型 数组名[ ][ ]=new 数据类型[第1维大小][第2维大小] (3)怎样理解“多维数组是数组的数组”?length作用于不同的数组:myArray.length,myArray[0].length,myArray[1].length,结果什么不同? (4)怎样引用数组的元素?它们下标取值范围怎样? 8.(提高题)分析、运行下列程序,回答下列问题: (1)实例变量和类变量的含义是什么?如何声明它们? 5 (2)实例方法和类方法的含义是什么?如何声明它们? (3)f()方法中可以访问什么类型的变量和方法? (4)g()方法中可以访问x变量吗?可以在其中调用f()方法吗? (5)在主类中,应如何调用实例方法和类方法? (6)运行程序时,出现如下错误: 无法从静态上下文中引用非静态 变量 mystring System.out.println(mystring); 请分别用“类变量、类方法”和“实例变量、实例方法”两种完全不同的方法进行修改,使其能正确运行。 9.(提高题)写出程序所缺代码,并回答相关问题 package lab3; //导入Student类 ; public class ObjectArrayExample { //声明一个长度为4的对象数组 Student1[] student = ; public ObjectArrayExample(){ } void printArrayElement(){ //初始化对象数组 int max=0,j=0; int[] sum=new int[4]; for(int i=0;i //使用循环语句来求每个学生三门课的总分,并赋给sum数组对应元素 sum[i]= ; } for(int i=0;i 6 } if(max max=sum[i]; j=i; //输出总分最高的学生的姓名、学号、语文成绩、英语成绩、英语成绩和总分 System.out.println(\总分最高的学生姓名:\+ +\学号:\+ +\语文成绩:\+ +\英语成绩:\+ +\数学成绩:\+ +\总分是:\+max); } } public static void main(String args[]){ } ObjectArrayExample objarr=new ObjectArrayExample(); objarr.printArrayElement(); 问题: (1)如何定义对象数组? (2)如何访问对象数组元素的成员变量? (3)包为lab3.arr.obj的类的保存路径是什么? 7
正在阅读:
实验报告 - 实验3 类与对象09-29
浙教版高中信息技术浙江高考复习资料算法和程序设计分析及试题附03-08
马哲课调查报告--大学生兼职02-26
描写人的外貌成语大全05-06
基于MOOC环境的大学英语翻译教学12-20
《统计学》习题答案(2) - 图文10-29
本溪市总体规划文本及说明书06-06
军事理论试题题库05-29
xx住宅小区一期工程监理细则06-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 对象
- 报告
- 2014 综合基础知识
- 极简主义色彩简析1 - 图文
- 道路交通事故特征分析与对策
- 旋转设备振动案例讲解
- 婚姻需要门当户对的一辩稿
- 2018届高三生物二轮专题复习题型增分练四、加试非选择题(32~33题)加试特训4现代生物科技专题B新人教版
- 我国应急管理体系的现状及其发展方向 行政学前沿与热点作业
- 富德生命人寿VIP专属电话服务团队成立 为VIP客户提供更高品质的服务体验
- 基于单片机的单词记忆测试器毕业设计 - 图文
- 六年级春学期奥数综合训练题(2)
- 小学六年级数学毕业质量检测试题
- 吉林省长春市2014—2015学年新高三起点调研考试数学(文)试题1
- 天津市2018年中考物理试卷及答案解析(Word版)
- 新人教版三年级下册数学口算专项练习(9套)
- 彝良县XXX采石厂开发方案(2015) - 图文
- 食品安全管理人员培训考试题及答案
- 2014会计继续教育多选题
- 超市打工的暑期社会实践报告
- 选煤厂绩效考核方案3.6
- excel在财务管理中的运用 教学大纲