max=mathGrade;
returnmax;
}
doubleminGrade(){
doublemin;
min=englishGrade;
if(min>computerGrade)
min=computerGrade;
if(min>mathGrade)
min=mathGrade;
returnmin;
}
doublesumGrade(){
doublesum;
sum=englishGrade+computerGrade+mathGrade;
returnsum;
}
doubleavgGrade(){
doubleave;
ave=(sumGrade())/3;
returnave;
}
}
运行结果贴图:
(二)
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
程序功能:
设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
程序源代码如下,补全横线上的程序代码。
packaget4;
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;
}
}
主方法:
packaget4;
importjava.util.*;
publicclassLX4_2{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("请输入车主、车速和方向盘角度:
");
Carcar1=newCar(input.next(),input.nextFloat(),input.nextFloat());
//TODO自动生成的方法存根
System.out.println("车主:
"+car1.getOwnerName());
System.out.println("当前车速:
"+car1.getCurSpeed());
System.out.println("当前方向盘角度:
"+car1.getCurDirInDegree());
System.out.println("修改车速:
");
System.out.println("请输入新的车速:
");
car1.changeSpeed(input.nextFloat());
System.out.println("当前车速:
"+car1.getCurSpeed());
System.out.println("停车:
");
car1.stop();
System.out.println("当前车速:
"+car1.getCurSpeed());
}
}
编写一个主方法,编译并测试源程序。
2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)
创建类Car的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
程序代码如下(需要添加代码,要求运行结果如以下图所示。
packaget4;
publicclassLX4_3{
publicstaticvoidmain(String[]args){
Carcar=newCar("成龙",200f,25f);
System.out.println("车主:
"+car.getOwnerName());
System.out.println("当前车速:
"+car.getCurSpeed());
System.out.println("当前方向盘角度:
"+car.getCurDirInDegree());
System.out.printf("在调用changeSpeed(80)后,车速变为:
");
car.changeSpeed(80);
System.out.println(car.getCurSpeed());
System.out.printf("在调用stop()后,车速变为:
");
car.stop();
System.out.println(car.getCurSpeed());
}
}
编译并运行,结果如下图。
(三)(账户类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美元,然后打印余额、月利率以与这个账户的开户日期。
程序代码:
packaget4;
importjava.util.*;
publicclassLX4_4{
publicstaticvoidmain(String[]args){
Accountaccount=newAccount(1122,20000);
account.setAnnualInterestRate(4.5);
account.withDraw(2500);
account.desposit(3000);
print(account);
}
publicstaticvoidprint(Accountac1){
System.out.println("余额为:
"+ac1.getBalance());
System.out.println("月利率:
"+ac1.getAnnualInterestRate()/12*100
+"%");
System.out.println("开户日期:
"+ac1.getDateCreat());
}
}
packaget4;
importjava.util.*;
publicclassAccount{
privateintid;
privatedoublebalance;
privatestaticdoubleannualInterestRate;
privateDatedateCreated;
Account(){
id=id+1;
this.balance=0;
dateCreated=newDate();
}
Account(intid,doublebalance){
this.id=id;
this.balance=balance;
dateCreated=newDate();
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicdoublegetBalance(){
returnbalance;
}
publicvoidsetBalance(doublebalance){
this.balance=balance;
}
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;
this.setBalance(a);
}
}
运行结果贴图:
(三)(风扇类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方法显示这些对象。
程序代码:
packaget4;
publicclassLX4_5{
publicstaticvoidmain(String[]args){
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());
}
}
packaget4;
publicclassFan{
finalstaticintslow=1;
finalstaticintmedium=2;
finalstaticintfast=3;
privateintspeed=slow;
privatebooleanon=false;
privatedoubleradius=5;
privateStringcolor="blue";
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
return"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对象。
显示每个对象的周长和面积。
程序代码: