面向对象程序设计期末考试模拟题.docx

上传人:b****6 文档编号:5086222 上传时间:2022-12-13 格式:DOCX 页数:12 大小:18.47KB
下载 相关 举报
面向对象程序设计期末考试模拟题.docx_第1页
第1页 / 共12页
面向对象程序设计期末考试模拟题.docx_第2页
第2页 / 共12页
面向对象程序设计期末考试模拟题.docx_第3页
第3页 / 共12页
面向对象程序设计期末考试模拟题.docx_第4页
第4页 / 共12页
面向对象程序设计期末考试模拟题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

面向对象程序设计期末考试模拟题.docx

《面向对象程序设计期末考试模拟题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末考试模拟题.docx(12页珍藏版)》请在冰豆网上搜索。

面向对象程序设计期末考试模拟题.docx

面向对象程序设计期末考试模拟题

面向对象程序设计期末考试模拟题

2007-11-2722:

09

说明:

期末考试重点考查对程序的理解能力和运用能力,期末考试的知识要点,题型,难度和题目示例如后面所示. 

考试的知识点几乎于本模拟题完全相同,但是题目实际的程序将进行各种变化. 

如果仅仅是记住答案而不能理解程序的执行过程,成绩很难得到30分以上. 

变化方式通常为:

更改名称,更改数值,更改语句顺序,知识点重新组合等几种方式.

/*要点:

*整数的计算和输出

*浮点数的计算和输出

*字符的输出

*字符串的连接和输出

*/

packageT01;

publicclassJavaTestDemo01{

   publicstaticvoidmain(String[]args){

       intnum=2+3;

       System.out.println(num);

       doublepai=3.14;

       System.out.println(pai);

       charaChar='A';

       System.out.println(aChar);

       System.out.println("Hello");

       StringaString="Hello,";

       aString+="World!

";

       System.out.println(aString);

   }

}

答案:

5

3.14

A

Hello

Hello,World!

/*要点:

*类的定义,类与对象之间的关系:

*     类是用来定义(创造)对象的.

*     通常,根据一个类可以创建任意多个对象,各个对象的具有相同类型的数据成员,

*     但是各个对象的数据成员之间是相互独立的.

*用new产生一个新的对象时会调用构造函数(与类名相同).

*构造函数应当对类的数据成员初始化(给一个初始值).

*函数的重载,多个函数的名字可以相同,但是参数个数和参数的类型不应当相同.

*     这个示例中,构造函数是重载的.根据new类名(参数)中的参数调用对应的构造函数.

*用类对应的变量是对象名字.这个名字可以用于代表一个这个类型的对象.

*用new类名(这里可能有参数)是创建一个对象.

*/

packageT02;

classAccount{

   privateintbalance;

   publicAccount(){

       balance=0;

   }

   publicAccount(intbalance){

       this.balance=balance;

   }

   publicintgetBalance(){

       returnbalance;

   }

   publicvoiddeposit(intmoney){

       balance+=money;

   }

   publicvoidwithdraw(intmoney){

       balance-=money;

   }

}

publicclassJavaTestDemo02{

   publicstaticvoidmain(String[]args){

       AccountaAcount=newAccount();//类名对象名=new类名()

       AccountbAcount=newAccount(800);

       System.out.println(aAcount.getBalance());

       System.out.println(bAcount.getBalance());

       aAcount.deposit(100);//deposit存款

       System.out.println(aAcount.getBalance());

       System.out.println(bAcount.getBalance());

       aAcount=newAccount();

       System.out.println(aAcount.getBalance());

   }

}

答案:

0

800

100

800

0

/*要点:

*继承.可以在一个类(父类)的基础上,通过定义新的数据成员/函数,扩充出一个新的类(子类)

*用子类创建一个对象的过程是首先创建出一个父类对象(没有名字),

*然后增加子类定义的新的数据成员/函数.

*因此,子类的构造函数中第一个语句是调用的父类的构造函数.

*用子类创建的对象是符合父类的定义的(只是增加了一些新的部分),

*因此,这个对象是父类的一种特殊情况.

*用子类创建的对象和用父类创建的对象在数据成员上是彼此独立的.

*/

packageT03;

classAccount{

   privateintbalance;

   publicAccount(){

       balance=0;

   }

   publicAccount(intbalance){

       this.balance=balance;

   }

   publicintgetBalance(){

       returnbalance;

   }

   publicvoiddeposit(intmoney){

       balance+=money;

   }

   publicvoidwithdraw(intmoney){

       balance-=money;

   }

}

classCCBAccountextendsAccount{

   privateStringaccountID;

   publicCCBAccount(){

       super(10);

       accountID="";

   }

   publicCCBAccount(StringID,intbalance){

       super(balance);

       this.accountID=ID;

   }

   publicStringgetAccountID(){

       returnaccountID;

   }

}

publicclassJavaTestDemo03{

   publicstaticvoidmain(String[]args){

       AccountaAccount=newAccount();

       CCBAccountbAccount=newCCBAccount();

       System.out.println(aAccount.getBalance());

       System.out.println(bAccount.getBalance());

       aAccount.deposit(100);//给account付100块钱

       System.out.println(aAccount.getBalance());

       System.out.println(bAccount.getBalance());

       aAccount=newCCBAccount("007",50);//是什么意思

       System.out.println(aAccount.getBalance());

   }

}

答案:

0

10

100

10

50

/*要点:

*对象之间有构成关系.一个对象是由其它几个对象组成的.

*类的数据成员可以是用其它类定义的.

*特别要注意,

*     在构造函数中应当为每个数据成员初始化(让对象名字的确代表一个对象),

*     如果一个名字不代表任何对象,那么它应当=null

*构造函数的调用顺序通常应当为

*     父类的构造函数

*     组成部分的构造函数

*本程序的其它要点与前面的程序相同,只是复杂一些

*/

packageT04;

classMoney{

   privateintamount;

   publicMoney(){

       amount=0;

       System.out.println("MoneyCreated");

   }

   publicMoney(intamount){

       this.amount=amount;

       System.out.println("Money:

"+this.amount);

   }

   publicintgetAmount(){

       returnamount;

   }

   publicvoidsetAmount(intamount){

       this.amount=amount;

   }

   publicvoidaddAmount(intamount){

       this.amount+=amount;

   }

   publicvoiddecAmount(intamount){

       this.amount-=amount;

   }

}

classAccount{

   privateStringID;

   privateMoneybalance;

   publicAccount(){

       ID="Anonymous";

       balance=newMoney(10);

   }

   publicAccount(StringID,intamount){

       this.ID=ID;

       balance=newMoney();

       balance.setAmount(amount);

       System.out.println("ID:

"+this.ID);

   }

   publicintgetBalance(){

       returnbalance.getAmount();

   }

   publicvoiddeposit(intamount){

       balance.addAmount(amount);

   }

   publicvoidwithdraw(intamount){

       balance.decAmount(amount);

   }

   publicStringgetAccountID(){

       returnID;

   }

}

publicclassJavaTestDemo04{

   publicstaticvoidmain(String[]args){

       Accounta=newAccount();

       Accountb=newAccount();

       System.out.println(a.getAccountID());

       System.out.println(b.getAccountID());

       a=newAccount("007",50);

       a.deposit(20);

       b.deposit(30);

       System.out.println(a.getAccountID());

       System.out.println(b.getAccountID());

       a.withdraw(15);

       System.out.println(a.getBalance());最后两句是什么意思

       System.out.println(b.getBalance());

   }

}

答案:

Money:

10

Money:

10

Anonymous

Anonymous

MoneyCreated

ID:

007

007

Anonymous

55

40

/*要点:

*多态性.继承不仅仅是扩充,还可以用新的函数替换掉父类的函数(名称,参数和返回值的类型都要相同).

*用父类创建的对象会调用父类自己的函数

*用子类创建的对象会调用自己定义的重新实现的函数

*用父类定义的对象名字代表一个用子类创建的对象是,仍然调用子类自己定义的重新实现的函数

*/

packageT05;

classAccount{

   privateintbalance;

   publicAccount(){

       balance=0;

   }

   publicAccount(intbalance){

       this.balance=balance;

   }

   publicintgetBalance(){

       returnbalance;

   }

   publicvoiddeposit(intmoney){

       balance+=money;

   }

   publicvoidwithdraw(intmoney){

       balance-=money;

   }

}

classCCBAccountextendsAccount{

   staticfinalintminBalance=10;

   privateStringaccountID;

   publicCCBAccount(){

       super(minBalance);

       accountID="";

   }

   publicCCBAccount(StringID,intbalance){

       super(balance);

       this.accountID=ID;

   }

   publicStringgetAccountID(){

       returnaccountID;

   }

   publicvoidwithdraw(intmoney){

       if(money<=this.getBalance()-minBalance)

           super.withdraw(money);//执行上面的

       else

           System.out.println("NotEnoughMoney");

   }

}

publicclassJavaTestDemo05{

   publicstaticvoidmain(String[]args){

       AccountaAccount=newAccount();

       CCBAccountbAccount=newCCBAccount();

       System.out.println(aAccount.getBalance());//0

       System.out.println(bAccount.getBalance());//10

       aAccount.deposit(100);

       bAccount.deposit(100);

       aAccount.withdraw(1000);

       bAccount.withdraw(1000);

       System.out.println(aAccount.getBalance());//-900

       System.out.println(bAccount.getBalance());//110

       aAccount=bAccount;

       aAccount.withdraw(1000);

       bAccount.withdraw(1000);

       System.out.println(aAccount.getBalance());//110

       System.out.println(bAccount.getBalance());//110

       aAccount=newCCBAccount();

       aAccount.deposit(1000);

       aAccount.withdraw(1000);

       System.out.println(aAccount.getBalance());//10

   }

}

答案:

0

10

NotEnoughMoney

-900

110

NotEnoughMoney

NotEnoughMoney

110

110

10

/*要点:

*静态成员.静态成员是属于类的,是用这个类定义出的所有的对象共享的.

*本程序用一个类的静态数据成员作为创建对象数量的计数器.

*本程序用一个类的静态常量数据成员作为各个对象都要使用的相同数据.

*本程序演示了创建对象的工厂模式(一种设计模式).

*把类的构造函数设置为private保证,在程序的其它位置不能够用new创建这个类型的对象.

*用一个静态函数applyCCBAccount创建该类型的对象,并进行计数.

*静态成员的访问方式,以下两种方式没有区别

*     静态成员可以通过类名.直接调用

*     静态成员可以通过该类型的对象名.调用

*注意:

静态成员不可使用本类内非静态成员(用new创建对象除外).

*/

packageT21;

classAccount{

   privateintbalance;

   publicAccount(){

       balance=0;

   }

   publicAccount(intbalance){

       this.balance=balance;

   }

   publicintgetBalance(){

       returnbalance;

   }

   publicvoiddeposit(intmoney){

       balance+=money;

   }

   publicvoidwithdraw(intmoney){

       balance-=money;

   }

}

classCCBAccountextendsAccount{

   staticfinalintminBalance=10;

   staticintcounter=0;

   privateStringaccountID;

   privateCCBAccount(){

       super(minBalance);

       accountID="";

   }

   privateCCBAccount(StringID,intbalance){

       super(balance);

       this.accountID=ID;

   }

   publicstaticCCBAccountapplyCCBAccount(){

       counter++;

       returnnewCCBAccount("CCB"+counter,minBalance);

   }

   publicstaticintgetAccountAmount(){

       returncounter;

   }

   publicStringgetAccountID(){

       returnaccountID;

   }

   publicvoidwithdraw(intmoney){

       if(money<=this.getBalance()-minBalance)

           super.withdraw(money);

       else

           System.out.println("NotEnoughMoney");

   }

}

publicclassJavaTestDemo11{

   publicstaticvoidmain(String[]args){

       CCBAccounta=CCBAccount.applyCCBAccount();

       System.out.println(a.getAccountAmount());

       CCBAccountb=CCBAccount.applyCCBAccount();

       System.out.println(a.getAccountID());

       System.out.println(a.getBalance());

       System.out.println(b.getAccountID());

       System.out.println(b.getBalance());

       a.deposit(100);

       a.withdraw(1000);

       System.out.println(a.getBalance());

       b.deposit(1000);

       b.withdraw(100);

       System.out.println(a.getBalance());

       System.out.println(b.get

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1