实验4面向对象基础Word文件下载.docx
- 文档编号:21403201
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:22
- 大小:41.13KB
实验4面向对象基础Word文件下载.docx
《实验4面向对象基础Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验4面向对象基础Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
91.4
最低分:
87.3
学生信息:
|-学号:
100
|-:
John
|-年龄:
20
|-英语:
89.0
|-计算机:
|-数学:
程序代码:
packaget4;
importjava.util.*;
importorg.omg.CORBA.portable.ValueOutputStream;
publicclassLX4_1{
publicstaticvoidmain(String[]args){
Studentstudent1=newStudent();
Scannerinput=newScanner(System.in);
System.out.println("
请输入学生:
"
);
student1.setName(input.next());
请输入学号:
student1.setStudentNumber(input.nextInt());
请输入年龄:
student1.setAge(input.nextInt());
请输入英语成绩:
student1.setEnglishGrade(input.nextDouble());
请输入电脑成绩:
student1.setComputerGrade(input.nextDouble());
请输入数学成绩:
student1.setMathGrade(input.nextDouble());
printInformations(student1);
}
publicstaticvoidprintInformations(Students1){
System.out.printf("
%3.2f\n"
Double.parseDouble(String.valueOf(s1.sumGrade())));
%3.2f\n"
Double.parseDouble(String.valueOf(s1.avgGrade())));
+Double.parseDouble(String.valueOf(s1.maxGrade())));
+Double.parseDouble(String.valueOf(s1.minGrade())));
学生信息:
学号:
+s1.getStudentNumber());
+s1.getName());
年龄"
+s1.getAge());
英语成绩:
+s1.getEnglishGrade());
电脑成绩:
+s1.getComputerGrade());
数学成绩:
+s1.getMathGrade());
}
classStudent{
privateintstudentNumber;
privateStringname;
privateintage;
privatedoubleenglishGrade;
privatedoublecomputerGrade;
privatedoublemathGrade;
voidsetStudentNumber(intnumber){
studentNumber=number;
intgetStudentNumber(){
returnstudentNumber;
voidsetName(Stringnm){
name=nm;
StringgetName(){
returnname;
voidsetAge(intage1){
age=age1;
intgetAge(){
returnage;
voidsetEnglishGrade(doublegrade){
englishGrade=grade;
doublegetEnglishGrade(){
returnenglishGrade;
voidsetComputerGrade(doublegrade){
computerGrade=grade;
doublegetComputerGrade(){
returncomputerGrade;
voidsetMathGrade(doublegrade){
mathGrade=grade;
doublegetMathGrade(){
returnmathGrade;
doublemaxGrade(){
doublemax;
max=englishGrade;
if(max<
computerGrade)
max=computerGrade;
mathGrade)
max=mathGrade;
returnmax;
doubleminGrade(){
doublemin;
min=englishGrade;
if(min>
min=computerGrade;
min=mathGrade;
returnmin;
doublesumGrade(){
doublesum;
sum=englishGrade+computerGrade+mathGrade;
returnsum;
doubleavgGrade(){
doubleave;
ave=(sumGrade())/3;
returnave;
运行结果贴图:
(二)
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
程序功能:
设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
程序源代码如下,补全横线上的程序代码。
publicclassCar{
privateStringownerName;
//车主
privatefloatcurSpeed;
//当前车速
privatefloatcurDirInDegree;
//当前方向盘转向角度
publicCar(StringownerName){
this.ownerName=ownerName;
publicCar(StringownerName,floatspeed,floatdirInDegree){
this(ownerName);
//调用上面那个构造函数为ownerName赋值
curSpeed=speed;
curDirInDegree=dirInDegree;
publicStringgetOwnerName(){//提供对车主的访问
returnownerName;
publicfloatgetCurDirInDegree(){//提供对当前方向盘转向角度的访问
returncurDirInDegree;
publicfloatgetCurSpeed(){//提供对当前车速的访问
returncurSpeed;
publicvoidchangeSpeed(floatcurSpeed){//提供改变当前的车速
this.curSpeed=curSpeed;
publicvoidstop(){//提供停车
curSpeed=0;
主方法:
publicclassLX4_2{
请输入车主、车速和方向盘角度:
Carcar1=newCar(input.next(),input.nextFloat(),input.nextFloat());
//TODO自动生成的方法存根
System.out.println("
车主:
+car1.getOwnerName());
当前车速:
+car1.getCurSpeed());
当前方向盘角度:
+car1.getCurDirInDegree());
修改车速:
请输入新的车速:
car1.changeSpeed(input.nextFloat());
停车:
car1.stop();
}
编写一个主方法,编译并测试源程序。
2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)
创建类Car的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
程序代码如下(需要添加代码,要求运行结果如以下图所示。
publicclassLX4_3{
Carcar=newCar("
成龙"
200f,25f);
+car.getOwnerName());
+car.getCurSpeed());
+car.getCurDirInDegree());
在调用changeSpeed(80)后,车速变为:
car.changeSpeed(80);
System.out.println(car.getCurSpeed());
在调用stop()后,车速变为:
"
car.stop();
编译并运行,结果如下图。
(三)(账户类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美元,然后打印余额、月利率以与这个账户的开户日期。
importjava.util.*;
publicclassLX4_4{
Accountaccount=newAccount(1122,20000);
account.setAnnualInterestRate(4.5);
account.withDraw(2500);
account.desposit(3000);
print(account);
publicstaticvoidprint(Accountac1){
余额为:
+ac1.getBalance());
月利率:
+ac1.getAnnualInterestRate()/12*100
+"
%"
开户日期:
+ac1.getDateCreat());
publicclassAccount{
privateintid;
privatedoublebalance;
privatestaticdoubleannualInterestRate;
privateDatedateCreated;
Account(){
id=id+1;
this.balance=0;
dateCreated=newDate();
Account(intid,doublebalance){
this.id=id;
this.balance=balance;
publicintgetId(){
returnid;
publicvoidsetId(intid){
publicdoublegetBalance(){
returnbalance;
publicvoidsetBalance(doublebalance){
publicdoublegetAnnualInterestRate(){
returnannualInterestRate;
publicvoidsetAnnualInterestRate(doublean){
annualInterestRate=an/100;
publicDategetDateCreat(){
returndateCreated;
publicdoublegetMonthlyInterestRate(){
returnannualInterestRate/12;
publicvoidwithDraw(doubledraw){
doublea=this.getBalance()-draw;
this.setBalance(a);
publicvoiddesposit(doubledep){
doublea=this.getBalance()+dep;
(三)(风扇类Fan)设计一个名为Fan的类来表示一个风扇。
这个类包括:
●三个名为SLOW、MEDIUM、FAST而值是1、2和3的常量表示风扇的速度。
●一个名为speed的int类型私有数据域表示风扇的速度(默认值为SLOW)。
●一个名为on的boolean类型的私有数据域表示风扇是否打开(默认值为false)。
●一个名为radius的double类型的私有数据域表示风扇的半径(默认值为5)。
●一个名为color的String类型的数据域表示风扇的颜色(默认值为blue)。
●这四个数据域的访问器和修改器。
●一个创建默认风扇的无参构造方法。
●一个名为toString()的方法返回描述风扇的字符串。
如果风扇是打开的,那么该方法在一个组合的字符串中返回风扇的速度、颜色和半径。
如果风扇没有打开,该方法就返回一个由“fanisoff”和风扇颜色与半径组合成的字符串。
实现这个类。
编写一个测试程序,创建两个fan对象。
将第一个对象设置为最大速度、半径为10、颜色为yellow、状态为打开。
将第二个对象设置为中等速度、半径为5、颜色为blue、状态为关闭。
通过调用它们的toString方法显示这些对象。
publicclassLX4_5{
Fanfan1=newFan();
fan1.setSpeed(3);
fan1.setRadius(10);
fan1.setColor("
yellow"
fan1.setOn(true);
Fanfan2=newFan();
fan2.setSpeed
(2);
fan2.setRadius(5);
fan2.setColor("
blue"
fan2.setOn(false);
System.out.println(fan1.toString());
System.out.println(fan2.toString());
publicclassFan{
finalstaticintslow=1;
finalstaticintmedium=2;
finalstaticintfast=3;
privateintspeed=slow;
privatebooleanon=false;
privatedoubleradius=5;
privateStringcolor="
;
publicintgetSpeed(){
returnspeed;
publicvoidsetSpeed(intsp){
speed=sp;
publicbooleangetOn(){
returnon;
publicvoidsetOn(booleanon1){
on=on1;
publicdoublegetRadius(){
returnradius;
publicvoidsetRadius(doubler){
radius=r;
publicStringgetColor(){
returncolor;
publicvoidsetColor(Stringa){
color=a;
Fan(){
publicStringtoString(){
if(this.getOn()==true){
return"
风扇转速:
+this.getSpeed()+"
风扇颜色:
+this.getColor()
+"
半径:
+this.getRadius();
}else
fanisoff"
+"
+this.getColor()+"
+this.getRadius();
(四)(几何方面:
正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。
设计一个名为RegularPolygon的类,该类包括:
●一个名为n的int型私有数据域定义多边形的边数,默认值为3。
●一个名为side的double型私有数据域存储边的长度,默认值为1。
●一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值为0。
●一个名为y的double型私有数据域,它定义多边形中点的y坐标,默认值为0。
●一个创建带默认值的正多边形的无参构造方法。
●一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。
●一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。
●所有数据域的访问器和修改器。
●一个返回多边形周长的方法getPerimeter()。
●一个返回多边形面积的方法getArea()。
计算正多边形面积的公式是:
面积=
编写一个测试程序,分别使用无参构造方法、RegularPolygon(6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象。
显示每个对象的周长和面积。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 面向 对象 基础