max=englishGrade;
returnmax;
}
publicdoublegetMin(){
doublemin=computerGrade;
if(min>mathGrade)
min=mathGrade;
elseif(min>englishGrade)
min=englishGrade;
returnmin;
}
publicStringtoString(){
return"总分:
"+getSum()+"\n"+
"平均分:
"+getAvg()+"\n"+
"最高分:
"+getMax()+"\n"+
"最低分:
"+getMin()+"\n"+
"学生信息:
"+"\n"+
"|-学号:
"+getId()+"\n"+
"|-姓名:
"+getName()+"\n"+
"|-年龄:
"+getAge()+"\n"+
"|-英语:
"+getEnglish()+"\n"+
"|-计算机:
"+getComputer()+"\n"+
"|-数学:
"+getEnglish()+"\n";
}
}
运行结果贴图:
(二)
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
程序功能:
设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
程序源代码如下,补全横线上的程序代码。
importjava.util.*;
publicclasstestcar{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannerinput=newScanner(System.in);
System.out.println("EnterownerNamecurSpeedcurDirInDegree:
");
Carcar=newCar(input.next(),input.nextFloat(),input.nextFloat());
System.out.println("ownerName:
"+car.getOwnerName());
System.out.println("curSpeed:
"+car.getCurSpeed());
System.out.println("curDirInDegree:
"+car.getCurDirInDegree());
System.out.println("Enternewspeed:
");
car.changeSpeed(input.nextFloat());
System.out.println("newcurSpeed:
"+car.getCurSpeed());
System.out.println("carisstopping:
");
car.stop();
System.out.println("stopcurSpeed:
"+car.getCurSpeed());
}
}
classCar{
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;
}
}
执行结果:
编写一个主方法,编译并测试源程序。
2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)
创建类Car的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
程序代码如下(需要添加代码,要求运行结果如下图所示。
publicclassCar{
publicstaticvoidmain(String[]args){
EXP3_1car=newCar("成龙",200f,25f);
//在下面填写代码
}
}
编译并运行,结果如图所示。
(三)(账户类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.text.SimpleDateFormat;
importjava.util.Date;
publicclasstestAccount{
publicstaticvoidmain(String[]args){
Accountaccount=newAccount(1122,20000);
System.out.println("id:
"+account.getid());
System.out.println("balance:
"+account.getbalance());
account.setannualInterestRate(0.045);
System.out.println("annulIntereatRate:
"+account.getannualInterestRate()*100+"%");
System.out.println();
System.out.println("调用withDraw()函数"+account.withDraw(2500));
System.out.println("调用withDraw()函数"+account.deposit(3000));
longcurrentTime=System.currentTimeMillis();
//当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
SimpleDateFormatformatter=newSimpleDateFormat("yyyy年-MM月dd日-HH时mm分ss秒");
Datedate=newDate(currentTime);
System.out.println("开户日期"+formatter.format(date));
}
}
classAccount{
privateintid=0;//账户
privatedoublebalance;//余额
privatedoubleannualInterestRate;//当前利率,假设所有的账户都有相同的利率
privateDatedateCreated;//开户日期
publicAccount(){
id=id+1;
}//默认账户的无参构造方法
publicAccount(intid,doublebalance){
this.id=id;
this.balance=balance;
}//一个能创建带特定id和初始余额的账户的构造方法。
//id、balance和annualInterestRate的修改器
publicvoidsetid(intid){
this.id=id;
}
publicvoidsetbalance(doublebalance){
this.balance=balance;
}
publicvoidsetannualInterestRate(doubleannualInterestRate){
this.annualInterestRate=annualInterestRate;
}
//id、balance和annualInterestRate的访问器
publicintgetid(){
returnid;
}
publicdoublegetbalance(){
returnbalance;
}
publicdoublegetannualInterestRate(){
returnannualInterestRate;
}
publicDategetdateCreated(){
returndateCreated;
}//dateCreated的访问器。
publicdoublegetMonthlyInterestRate(doubleMonthlyInterestRate){
returnMonthlyInterestRate;
}//返回月利率。
publicdoublewithDraw(doublebalance){
returnbalance;
}//从账户提取特定数额。
publicdoubledeposit(doublebalance){
returnbalance;
}//向账户存储特定数额。
}
运行结果贴图:
(三)(风扇类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方法显示这些对象。
程序代码:
packageunit4;
/*实现这个类。
编写一个测试程序,创建两个fan对象。
将第一个对象设置为最大速度、半径为10、颜色为yellow、状态为打开。
将第二个对象设置为中等速度、半径为5、颜色为blue、状态为关闭。
通过调用它们的toString方法显示这些对象。
*/
publicclasstestFan{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Fanfan1=newFan();
fan1.setSpeed(fan1.FAST);
fan1.setOn(true);
fan1.setRadius(10);
fan1.color="yellow";
fan1.toString();
System.out.println(fan1.toString());
Fanfan2=newFan();
fan1.setSpeed(fan2.MEDIUM);
fan1.setOn(false);
fan1.setRadius(5);
//fan2.color="blue";
System.out.println(fan2.toString());
}
}
classFan{//风扇
finalintSLOW=1;
finalintMEDIUM=2;
finalintFAST=3;//常量表示风扇的速度
privateintspeed=SLOW;//风扇的速度(默认值为SLOW)
privatebooleanon;//默认值为false,风扇是否打开
privatedoubleradius=5;//风扇的半径
Stringcolor="blue";//风扇的颜色(默认值为blue)
publicFan(){}
publicFan(intspeed,booleanon,doubleradius,Stringcolor){
this.speed=speed;
this.on=on;
this.radius=radius;
this.color=color;
}
//修改器
publicvoidsetSpeed(intspeed){
this.speed=speed;
}
publicvoidsetOn(booleanon){
this.on=on;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
//访问器
publicintgetSpeed(){
returnspeed;
}
publicbooleangetOn(){
returnon;
}
publicdoublegetRadius(){
returnradius;
}
publicStringtoString(){
if(on==true)
return"speedis"+getSpeed()+".Coloris"+color+
".Radiusis"+getRadius();
else
return"Fanisoff."+"Coloris"+color+
".Radiusis"+getRadius();
}/*一个名为toString()的方法返回描述风扇的字符串。
如果风扇是打开的,那么该方法在一个组合的字符串中返回风扇的速度、颜色和半径。
如果风扇没有打开,该方法就返回一个由“fanisoff”和风扇颜色及半径组合成的字符串。
*/
}
运行结果贴图:
(四)(几何方面:
正n边形)在一个正n边形中,所有边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。
设计一个名为RegularPolygon的类,该类包括:
●一个名为n的int型私有数据域定义多边形的边数,默认值为3。
●一个名为side的double型私有数据域存储边的长度,默认值为1。
●一个名为x的double型私有数据域,它定义多边