第四章面向对象编程基础.docx
《第四章面向对象编程基础.docx》由会员分享,可在线阅读,更多相关《第四章面向对象编程基础.docx(14页珍藏版)》请在冰豆网上搜索。
第四章面向对象编程基础
第四章:
面向对象编程基础
EX1:
(题库第四章ex4)难度等级:
A
输出成员变量的值.
publicclassStudent//Student是类名
{
intsNumber;//学号
StringsName;//姓名
StringsClass;//班号
publicstaticvoidmain(Stringargs[])
{
Studentx=newStudent();//访问成员变量
System.out.println(x.sName);//输出姓名。
System.out.println(x.sNumber);//输出学号。
}
}
EX2:
(JAVA2简明教程P114)难度等级:
A
类的属性、方法的调用。
importjava.awt.Graphics;
//定义一个Desk类
classDesk
{publicStringColor;
publicintLength;
publicintWidth;
publicintHeight;
//计算桌子体积的方法
intVolume()
{
returnLength*Width*Height;
}
//显示桌子信息的方法
voidDeskMessage(Graphicsg,intx,inty)
{g.drawString("桌子的颜色:
"+Color,x,y);
g.drawString("桌子的长度:
"+Length,x,y+10);
g.drawString("桌子的宽度:
"+Width,x,y+20);
g.drawString("桌子的高度:
"+Height,x,y+30);
}
}
//该类声明一个Desk对象
publicclassDeskClassextendsjava.applet.Applet
{
publicvoidpaint(Graphicsg)
{
DeskMyDesk=newDesk();//定义一个MyDesk对象。
intMyDeskVolume,Volume;
//给MyDesk的实例变量赋值
MyDesk.Color="Red";//给对象的属性赋值。
MyDesk.Length=23;//长。
MyDesk.Width=34;//宽。
MyDesk.Height=25;//高。
//计算桌子的体积
MyDeskVolume=MyDesk.Volume();//调用Volume()方法。
Volume=MyDesk.Length*MyDesk.Width*MyDesk.Height;
g.drawString("体积是:
"+MyDeskVolume,20,20);
g.drawString("体积是:
"+Volume,20,40);
MyDesk.DeskMessage(g,160,20);
}
}
EX3:
(JAVA实验指导P261)//难度等级:
A
定义一个类MyClass,包含一个属性Data和方法getData,setData。
ClassMyclass
{
publicintdata;
intgetData(intdata)//方法getData(),返回的data值。
{
returndata;
}
voidsetData(inti)//方法setData,设置data的值。
{
data=i;
}
}
publicclassMyclass1
{
publicstaticvoidmain(Stringargs[])
{
Myclassmyclass=newMyclass();
myclass.setData(5);
intj=myclass.getData();
System.out.println(j);
}
}
EX4:
(JAVA实验指导P835.18)难度等级:
C
编写一个类实现复数的加、减、乘运算。
classComplexNumber
{
publicdoublem_dRealPart;
publicdoublem_dImaginPart;
publicdoublei,r;
ComplexNumber(doubler,doublei)//构造函数,使形参r,i传给
{m_dRealPart,m_dImaginPart。
m_dRealPart=r;
m_dImaginPart=i;
}
ComplexNumber()//构造函数,无形参。
{
}
doublegetRealPart()
{
returnm_dRealPart;
}
doublegetImaginPart()
{
returnm_dImaginPart;
}
voidsetRealPart(doubled)
{
m_dRealPart=d;
}
voidsetImaginPart(doubled)
{
m_dImaginPart=d;
}
voidcomplexAdd(ComplexNumberc)//使本对象与参数c进行和运算。
{
r=this.getRealPart()+c.getRealPart();//实部
i=this.getImaginPart()+c.getImaginPart();//虚部
System.out.println("complexaddis:
"+r+"+"+i+"i");
}
voidcomplexMinus(ComplexNumberc)//使本对象与参数c进行差运算。
{
r=this.getRealPart()-c.getRealPart();//实部
i=this.getImaginPart()-c.getImaginPart();//虚部
System.out.println("complexminusis:
"+r+"+"+i+"i");
}
voidcomplexMultic(ComplexNumberc)
{
r=this.getRealPart()*c.getRealPart()-(c.getRealPart()*this.getImaginPart());
i=this.getRealPart()*c.getImaginPart()+this.getImaginPart()*c.getRealPart();
System.out.println("complexmulticis:
"+r+"+"+i+"i");
}
}
publicclassMyComplex
{
publicstaticvoidmain(Stringargs[])
{
ComplexNumbercomplexnumber1=newComplexNumber(2,3.5);
ComplexNumbercomplexnumber2=newComplexNumber();
complexnumber2.setRealPart(5.0);
complexnumber2.setImaginPart(-1.2);
plexAdd(complexnumber2);
plexMinus(complexnumber2);
plexMultic(complexnumber2);
}
}
EX5:
(JAVA实验指导P845.23)难度等级:
D
编写一个类实现银行帐户的概念。
包括的属性有:
帐号、储户姓名、地址、存款余额,包括的方法有:
存款、取款、查询、计算利息、累加利息等。
importjava.io.*;
publicclassSimpleAccount
{
publicstaticvoidmain(Stringargs[])
{
doubleinit_value=10;//开户金额
doublesave_value=100;//存款金额
doubleget_value=50;//取款金额
doubleinterest_rate=0.03;//存储利率
BankAccountbaMyAccount=newBankAccount("Sue",init_value);
baMyAcccount.saveMoney(save_value);//存钱
BankAccount.setInteresRate(interest_rate);//设置利率
System.out.println(baMyAccount.AccountMeg());//输出储户信息、利率
for(inti=1;i<=10;i++)//计算十年后的金额
{
baMyAccount.accumuInterest(365);
}
System.out.println("\nBalanceafter10years:
\t"+baMyAccount.getBalance());
BankAccount.setInteresRate(interast_rate-0.011);//修改当前利率
baMyAccount.getMoney(get_value);//取钱
System.out.println(baMyAccount.AccountMeg());//显示当前储户信息
}
}
classBankAccount//银行储户类
{
staticfinaldoublem_dLOWESTBALANCE=10.0;//最低开户金额
staticdoublem_dInterestRate;//年利率
Stringm_sName;//姓名
privatedoublem_dBalance;//储户金额
publicBankAccount(Stringname,doubleinitBalance)//构造函数
{
if(initBalanceSystem.exit(0);//不能开户则退出
m_dBalance=initBalance;
m_sName=newString(name);
}
staticbooleansetInterestRate(doubleNewRate)//设置公共储蓄利率
{
if(NewRate>0)
{
m_dInterestRate=NewRate;//传递参数
returntrue;//设置成功//返回状态
}
else
returnfalse;//设置失败//返回状态
}
doublegetBalance()//获取储户金额
{
returnm_dBalance;//返回金额
}
finaldoublegetInterestRate()//获取当前存储利率
{
returnm_dInterestRate;//返回利率
}
StringAccountMeg()//获取当前储户信息
{
Strings;
s="AccountName:
\t\t"+m_sName+"\nAccountAmount:
\t"+Double.toString(m_dBalance)+
"\nCurrentInterestRate:
\t"+Double.toString(BankAccount.getInterestRate());
returns;//返回储户的信息
}
voidsaveMoney(doublesaveamount)//存款操作
{
if(saveamount>0)
{
m_dBalance+=saveamount;//存款
}
booleangetMoney(doublegetamount)//取款操作
{
if(m_dBalance>=m_dLOWESTBALANCE)//帐户存在的条件
{
m_dBalance-=getamount;
returntrue;//取款成功
}
else
returnfalse;//取款失败
}
doublecalculateInterest(intDays)//按年利率计算给定的天数的利息数
{
return(m_dBalance*m_dInterestRate*Days/365);
}
voidaccumuInterest(intDays)//计算利息后将利息累加到帐户金额中
{
m_dBalance+=calculateInterest(Days);//金额累加
}
}
EX6:
(JAVA实验指导P855.26)难度等级:
D
编写一个类实现校园201电话卡的概念。
包括帐号、密码、剩余金额、三个属性和若干方法。
帐号顺序生成不可改,密码初值由构造函数指定,对象创建后可以修改,但要输入原有的密码,用户可以查询剩余金额,可以打电话(假设每次扣除5角)。
classTelCard
{
staticdoublemny;//金额
staticintID;//卡号
staticintpsw;//密码
TelCard(inti,intp,doublem)//构造函数
{
ID=i;
psw=p;
mny=m;
}
voidsetPassWord(inti,intp,intrp)//修改密码
{
if((psw==p)&&(ID==i))//能修改的条件
{
psw=rp;
System.out.println("Nowpasswordis:
"+psw);
}
else
System.out.println("Resetpasswordfalse!
");
}
publicdoublecall(intt)//剩余金额
{
mny-=t*0.5;
returnmny;
}
StringCardMeg()//显示电话卡的信息
{
Stringstr;
str="\nCardID:
"+ID+"\nPassWord:
"+psw+"\nRemainMoney:
"+mny;
returnstr;
}
}
publicclassMyCard
{
publicstaticvoidmain(Stringargs[])
{
intcardID=7692;//卡号
intpassword=123456,rpassword=654321;//原先密码与修改密码
doubleMoney=100.0,remainMoney;//卡值与剩余值
inttimes=15;//通话次数
TelCardcard=newTelCard(cardID,password,Money);
System.out.println("Thiscardmessage:
"+card.CardMeg());
remainMoney=card.call(times);//剩余金额
card.setPassWord(cardID,password,rpassword);//修改密码
System.out.println("RemainMoney:
"+remainMoney);
}
}
EX7:
(java2简明教程)难度等级:
B
importjava.awt.Graphics;
classDesk2
{
privateStringColor;
privateintLength;
privateintWidth;
privateintHeight;
Desk2()//构造函数
{
Color="";
Length=0;
Width=0;
Height=0;
}
Desk2(StringC,intL,intW,intH)//构造函数
{
Color=C;
Length=L;
Width=W;
Height=H;
}
Desk2(intL,intW,intH)//构造函数
{
Color="Red";
Length=L;
Width=W;
Height=H;
}
StringgetColor(){returnColor;}
intgetLength(){returnLength;}
intgetWidth(){returnWidth;}
intgetHeight(){returnHeight;}
voidsetColor(StringC){Color=C;}
voidsetDimension(intL,intW,intH)
{
Length=L;
Width=W;
Height=H;
}
//计算桌子的体积
intVolume()
{
returnLength*Width*Height;
}
voidDeskMessage(Graphicsg,intx,inty)
{
g.drawString("桌子的颜色:
"+Color,x,y);//调用各个属性
g.drawString("桌子的长度:
"+Length,x,y+15);
g.drawString("桌子的宽度:
"+Width,x,y+30);
g.drawString("桌子的高度:
"+Height,x,y+45);
}
}
//该类声明了一个Desk2对象
publicclassDeskClass2extendsjava.applet.Applet
{
publicvoidpaint(Graphicsg)
{
Desk2MyDesk=newDesk2("Red",23,34,25);
intvol;
vol=MyDesk.getLength()*MyDesk.getWidth()*MyDesk.getHeight();
g.drawString("体积是:
"+MyDesk.Volume(),25,20);//调用函数求体积
g.drawString("体积是:
"+vol,25,40);
MyDesk.DeskMessage(g,160,20);
MyDesk.setColor("Yellow");//设置颜色为黄色
MyDesk.setDimension(10,11,12);
g.drawString("体积是:
"+MyDesk.Volume(),25,100);
MyDesk.DeskMessage(g,160,100);
Desk2Desk=newDesk2();
Desk.DeskMessage(g,300,20);
}
}
EX8:
(java实验指导P845.19)难度等级:
B
编写一个Applet实现一个圆。
Point类的对象,有两个属性x,y,代表横纵坐标。
importjava.awt.*;
classMyCircle
{
publicPointm_pCenter;//圆心的坐标
publicdoublem_dRadius;//圆的半径
MyCircle(Pointp,doubler)//构造函数
{
m_pCenter=p;
m_dRadius=r;
}
PointgetCenter()
{
returnm_pCenter;
}
doublegetRadius()
{
returnm_dRadius;
}
doublecalculatePerimeter(doubler)//计算周长。
{
return2*r*Math.PI;
}
doublecalculateArea(doubler)//计算面积。
{
returnMath.PI*r*r;
}
}
publicclassCircleDemo
{
publicstaticvoidmain(Stringargs[])
{
doublerad=30.0,perimeter,area;
Pointpoint=newPoint(100,100);
MyCirclecircle=newMyCircle(point,rad);
perimeter=circle.calculatePerimeter(rad);
area=circle.calculateArea(rad);
System.out.println("Thiscircleperimeter:
"+perimeter+"\narea:
"+area);
}
}