




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山西大学计算机与信息技术学院实验报告姓 名 学 号专业班级软件工程一班课程名称 Java实验实验日期成 绩指导教师批改日期实验名称实验 4 面向对象基础一实验目的:(1)掌握类的定义、类的实例化方法;(2)掌握类中的静态变量和静态方法的使用;(3)掌握使用类的构造方法对对象的数据域进行初始化;(4)掌握getter和setter的使用;二实验内容(1)现在要求设计一个表示学生的类,里面有学生的姓名、学号、年龄,还要有三项成绩:计算机成绩、数学成绩、英语成绩,要求可以求总分、平均分、最高、最低分,并且可以输出一个学生的完整信息,请设计此类。提示:程序开发步骤根据需求定义出所要的类;根据题目中的要求规划出类的属性;所有的属性必须封装:private;所有的属性必须通过getter和setter访问;如果需要增加构造方法,为属性赋初值,适当采用构造方法重载;所有的信息不要类中直接输出,而是交给调用处输出,即在该类中尽量不出现System.out.println()语句。例如在调用类中输出如下结果:总分:267.70000000000005平均分:89.23333333333335最高分:91.4最低分:87.3学生信息:|-学号:100|-姓名:John|-年龄:20|-英语:89.0|-计算机:87.3|-数学:91.4程序代码:public class Student private String name;private int num;private int age;private double englishScore;private double computerScore;private double mathScore;public String getName() return name;public void setName(String name) = name;public int getNum() return num;public void setNum(int num) this.num = num;public int getAge() return age;public void setAge(int age) this.age = age;public double getEnglishScore() return englishScore;public void setEnglishScore(double englishScore) this.englishScore = englishScore;public double getComputerScore() return computerScore;public void setComputerScore(double computerScore) puterScore = computerScore;public double getMathScore() return mathScore;public void setMathScore(double mathScore) this.mathScore = mathScore;public Student() public Student(String name, int num, int age, double englishScore,double computerScore, double mathScore) = name;this.num = num;this.age = age;this.englishScore = englishScore;puterScore = computerScore;this.mathScore = mathScore;public double maxScore() double max, temp;temp = (englishScore = computerScore) ? englishScore : computerScore;max = (temp = mathScore) ? temp : mathScore;return max;public double minScore() double min, temp;temp = (englishScore = computerScore) ? englishScore : computerScore;min = (temp = mathScore) ? temp : mathScore;return min;public double sum() double sum = englishScore + computerScore + mathScore;return sum;public double average() double ave = (englishScore + computerScore + mathScore) / 3;return ave;/测试类public class TestStudent public static void main(String args) Student student = new Student(John, 100, 20, 89, 87.3, 91.4);System.out.println(学生信息:);printStudent(student);public static void printStudent(Student s) System.out.printf(|-姓名: + s.getName() + n|-学号: + s.getNum()+ n|-年龄: + s.getAge() + n|-英语: + s.getEnglishScore()+ n|-计算机: + s.getComputerScore() + n|-数学:+ s.getMathScore() + n最低分: + s.minScore() + n最高分:+ s.maxScore() + n总分 + s.sum() + n平均分: + s.average();运行结果贴图:(二)1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改程序功能:设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。程序源代码如下,补全横线上的程序代码。public class Car private String ownerName; / 车主姓名private float curSpeed; / 当前车速private float curDirInDegree; / 当前方向盘转向角度public Car(String ownerName) this.ownerName = ownerName;public Car(String ownerName, float speed, float dirInDegree) this.ownerName = ownerName;/ 调用上面那个构造函数为ownerName赋值this.curSpeed = speed;this.curDirInDegree = dirInDegree;public String getOwnerName() / 提供对车主姓名的访问return ownerName;public float getCurDirInDegree() / 提供对当前方向盘转向角度的访问return curDirInDegree;public float getCurSpeed() / 提供对当前车速的访问return curSpeed;public void changeSpeed(float curSpeed) / 提供改变当前的车速this.curSpeed = curSpeed;public void stop() / 提供停车curSpeed = 0;编写一个主方法,编译并测试源程序。2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)创建类Car的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。程序代码如下(需要添加代码,要求运行结果如下图所示。public class Car public static void main(String args) Car car = new Car(成龙, 200f, 25f);printCar(car);public static void printCar(Car c) System.out.println(车主信息:);System.out.println(车主姓名: + c.getOwnerName() + n当前车速:+ c.getCurSpeed() + n当前转向角度: + c.getCurDirInDegree();c.changeSpeed(80);System.out.println(在调用changespeed(80)后,车速变为: + c.getCurSpeed();c.stop();System.out.println(在调用stop()后,车速变为: + c.getCurSpeed();编译并运行,结果如图所示。车主姓名: 成龙当前车速: 200.0当前转向角度: 25.0在调用changeSpeed(80)后,车速变为: 80.0在调用stop()后, 车速变为: 0.0(三)(账户类Account)设计一个名为Account的类,它包括: 一个名为id的int类型私有账户数据域(默认值为0)。 一个名为balance的double类型私有账户数据域(默认值为0)。 一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0)。假设所有的账户都有相同的利率。 一个名为dateCreated的Date类型私有数据域存储账户的开户日期。 一个能创建默认账户的无参构造方法。 一个能创建带特定id和初始余额的账户的构造方法。 id、balance和annualInterestRate的访问器和修改器。 dateCreated的访问器。 一个名为getMonthlyInterestRate()的方法返回月利率。 一个名为withDraw的方法从账户提取特定数额。 一个名为deposit的方法向账户存储特定数额。实现这个类。编写一个测试程序,创建一个账户ID为1122、余额为20000美元、年利率为4.5%的Account对象。使用withdraw方法取款2500美元,使用deposit方法存款3000美元,然后打印余额、月利息以及这个账户的开户日期。程序代码:import java.util.*;public class Account private int id = 0;/ 一个名为id的int类型私有账户数据域(默认值为0)private double balance = 0;/ 一个名为balance的double类型私有账户数据域(默认值为0)private double annualInterestRate = 0;/ 一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0)。假设所有的账户都有相同的利率Date dateCreated = new Date();/ 一个名为dateCreated的Date类型私有数据域存储账户的开户日期public Account() ;/ 一个能创建默认账户的无参构造方法public Account(int newId, double newBalance) id = newId;balance = newBalance;/ 一个能创建带特定id和初始余额的账户的构造方法/ id、balance和annualInterestRate的访问器和修改器public int getId() return id;public void setId(int id) this.id = id;public double getBalance() return balance;public void setBalance(double balance) this.balance = balance;public double getAnnualInterestRate() return annualInterestRate;public void setAnnualInterestRate(double annualInterestRate) this.annualInterestRate = annualInterestRate;/ dateCreated的访问器public Date getDateCreated() return dateCreated;/ 一个名为getMonthlyInterestRate()的方法返回月利率public double getMonthlyInterestRate() return annualInterestRate;/ 一个名为withDraw的方法从账户提取特定数额public void withDraw(double withDraw) if (withDraw 0)System.out.println(Roots of ruadraticEquation:r1=+ quadraticEquation.getRoot1() + ,r2=+ quadraticEquation.getRoot2();else if (quadraticEquation.getDiscriminant() = 0)System.out.println(Roots of ruadraticEquation:r1=r2=+ quadraticEquation.getRoot1();elseSystem.out.println(The equation has no roots.);运行结果贴图:课后作业题P233 8.1 8.2 8.5 8.20 P238 8.58.1答:对象代表现实世界中可以明确标识的一个实体,对象的定义类是用一个通用类来定义同一类型的对象,它是一个模板,用来定义对象的数据域是什么以及方法是做什么的。关系:一个对象是类的一个实例,可以从一个类中创建多个实例。声明对象引用变量的方法:类名 对象引用变量;创建一个对象:对象引用变量名 = new 类名();在一条语句中完成对象的声明和创建:类名 对象引用变量 = new 类名();8.2答:构造方法是一种特殊类型的方法,调用它可以创建一个新对象,初始化对象的数据域(属性),而且它本身是可以完成任何动作的。构造方法具有和定义它的类完全相同的名字,它没有返回类型,它是在创建一个对象使用new操作符时调用的,对象创建后,构造方法就不能调用了。普通的对象方法,只能在对象创建后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老旧供水系统改进工程实施方案(范文)
- 老旧厂房改造loft项目规划设计方案(参考范文)
- 湖北xx农贸市场建设项目可行性研究报告
- 水利工程施工安全生产管理工作导则
- 心理安全小班课件下载
- 西湖大学《中学英语教材分析与教学设计》2023-2024学年第二学期期末试卷
- 湖北汽车工业学院科技学院《高性能计算导论》2023-2024学年第二学期期末试卷
- 益阳职业技术学院《羽毛球教学理论与实践》2023-2024学年第二学期期末试卷
- 淮北师范大学《公共建筑设计(Ⅱ)》2023-2024学年第二学期期末试卷
- 重庆医科大学《语文教学论》2023-2024学年第二学期期末试卷
- 仓库定置目视化管理
- 2025-2030中国数据中心(IDC)行业市场发展分析及发展趋势与投资前景研究报告
- 海鲜餐饮加盟合同协议
- 《如何打造高效微博运营策略》课件
- 变电站值班员-中级工考试模拟题及参考答案解析
- 2025年度农业保险合同
- 2025年特种设备安全管理人员(A证)考试试题(含答案)
- 污水处理厂突发环境事件应急预案(2022版)
- 2024年河北石家庄事业单位招聘考试真题答案解析
- 2025年中国邮政集团工作人员招聘考试笔试试题(含答案)
- 【语文】第23课《“蛟龙”探海》课件 2024-2025学年统编版语文七年级下册
评论
0/150
提交评论