面向对象程序设计期末考试模拟题.doc_第1页
面向对象程序设计期末考试模拟题.doc_第2页
面向对象程序设计期末考试模拟题.doc_第3页
面向对象程序设计期末考试模拟题.doc_第4页
面向对象程序设计期末考试模拟题.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计期末考试模拟题2007-11-27 22:09说明: 期末考试重点考查对程序的理解能力和运用能力,期末考试的知识要点,题型,难度和题目示例如后面所示.考试的知识点几乎于本模拟题完全相同,但是题目实际的程序将进行各种变化.如果仅仅是记住答案而不能理解程序的执行过程,成绩很难得到30分以上.变化方式通常为:更改名称,更改数值,更改语句顺序,知识点重新组合等几种方式./*要点:* 整数的计算和输出* 浮点数的计算和输出* 字符的输出* 字符串的连接和输出*/package T01;public class JavaTestDemo01 public static void main(String args) int num = 2+3; System.out.println(num); double pai = 3.14; System.out.println(pai); char aChar = A; System.out.println(aChar); System.out.println(Hello); String aString = Hello,; aString += World!; System.out.println(aString); 答案:53.14AHelloHello,World!/*要点:* 类的定义,类与对象之间的关系:* 类是用来定义(创造)对象的.* 通常,根据一个类可以创建任意多个对象,各个对象的具有相同类型的数据成员,* 但是各个对象的数据成员之间是相互独立的.* 用new产生一个新的对象时会调用构造函数(与类名相同).* 构造函数应当对类的数据成员初始化(给一个初始值).* 函数的重载,多个函数的名字可以相同,但是参数个数和参数的类型不应当相同.* 这个示例中,构造函数是重载的.根据new 类名(参数)中的参数调用对应的构造函数.* 用类对应的变量是对象名字.这个名字可以用于代表一个这个类型的对象.* 用new 类名(这里可能有参数)是创建一个对象.*/package T02;class Account private int balance; public Account() balance = 0; public Account(int balance) this.balance = balance; public int getBalance() return balance; public void deposit(int money) balance += money; public void withdraw(int money) balance -= money; public class JavaTestDemo02 public static void main(String args) Account aAcount = new Account();/类名 对象名=new 类名() Account bAcount = new Account(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 = new Account(); System.out.println(aAcount.getBalance(); 答案:08001008000/*要点:* 继承.可以在一个类(父类)的基础上,通过定义新的数据成员/函数,扩充出一个新的类(子类)* 用子类创建一个对象的过程是首先创建出一个父类对象(没有名字),* 然后增加子类定义的新的数据成员/函数.* 因此,子类的构造函数中第一个语句是调用的父类的构造函数.* 用子类创建的对象是符合父类的定义的(只是增加了一些新的部分),* 因此,这个对象是父类的一种特殊情况.* 用子类创建的对象和用父类创建的对象在数据成员上是彼此独立的.*/package T03;class Account private int balance; public Account() balance = 0; public Account(int balance) this.balance = balance; public int getBalance() return balance; public void deposit(int money) balance += money; public void withdraw(int money) balance -= money; class CCBAccount extends Account private String accountID; public CCBAccount() super(10); accountID = ; public CCBAccount(String ID, int balance) super(balance); this.accountID = ID; public String getAccountID() return accountID; public class JavaTestDemo03 public static void main(String args) Account aAccount = new Account(); CCBAccount bAccount = new CCBAccount(); 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 = new CCBAccount(007,50);/是什么意思 System.out.println(aAccount.getBalance(); 答案:0101001050/*要点:* 对象之间有构成关系.一个对象是由其它几个对象组成的.* 类的数据成员可以是用其它类定义的.* 特别要注意,* 在构造函数中应当为每个数据成员初始化(让对象名字的确代表一个对象),* 如果一个名字不代表任何对象,那么它应当=null* 构造函数的调用顺序通常应当为* 父类的构造函数* 组成部分的构造函数*本程序的其它要点与前面的程序相同,只是复杂一些*/package T04;class Money private int amount; public Money() amount = 0; System.out.println(Money Created); public Money(int amount) this.amount = amount; System.out.println(Money: + this.amount); public int getAmount() return amount; public void setAmount(int amount) this.amount = amount; public void addAmount(int amount) this.amount += amount; public void decAmount(int amount) this.amount -= amount; class Account private String ID; private Money balance; public Account() ID = Anonymous; balance = new Money(10); public Account(String ID, int amount) this.ID = ID; balance = new Money(); balance.setAmount(amount); System.out.println(ID: + this.ID); public int getBalance() return balance.getAmount(); public void deposit(int amount) balance.addAmount(amount); public void withdraw(int amount) balance.decAmount(amount); public String getAccountID() return ID; public class JavaTestDemo04 public static void main(String args) Account a = new Account(); Account b = new Account(); System.out.println(a.getAccountID(); System.out.println(b.getAccountID(); a = new Account(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:10Money:10AnonymousAnonymousMoney CreatedID:007007Anonymous5540/*要点:* 多态性.继承不仅仅是扩充,还可以用新的函数替换掉父类的函数(名称,参数和返回值的类型都要相同).* 用父类创建的对象会调用父类自己的函数* 用子类创建的对象会调用自己定义的重新实现的函数* 用父类定义的对象名字代表一个用子类创建的对象是,仍然调用子类自己定义的重新实现的函数*/package T05;class Account private int balance; public Account() balance = 0; public Account(int balance) this.balance = balance; public int getBalance() return balance; public void deposit(int money) balance += money; public void withdraw(int money) balance -= money; class CCBAccount extends Account static final int minBalance = 10; private String accountID; public CCBAccount() super(minBalance); accountID = ; public CCBAccount(String ID, int balance) super(balance); this.accountID = ID; public String getAccountID() return accountID; public void withdraw(int money) if(money=this.getBalance()-minBalance) super.withdraw(money);/执行上面的 else System.out.println(Not Enough Money); public class JavaTestDemo05 public static void main(String args) Account aAccount = new Account(); CCBAccount bAccount = new CCBAccount(); 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 = new CCBAccount(); aAccount.deposit(1000); aAccount.withdraw(1000); System.out.println(aAccount.getBalance();/10 答案:010Not Enough Money-900110Not Enough MoneyNot Enough Money11011010/*要点:* 静态成员.静态成员是属于类的,是用这个类定义出的所有的对象共享的.* 本程序用一个类的静态数据成员作为创建对象数量的计数器.* 本程序用一个类的静态常量数据成员作为各个对象都要使用的相同数据.* 本程序演示了创建对象的工厂模式(一种设计模式).* 把类的构造函数设置为private保证,在程序的其它位置不能够用new创建这个类型的对象.* 用一个静态函数applyCCBAccount创建该类型的对象,并进行计数.* 静态成员的访问方式,以下两种方式没有区别* 静态成员可以通过类名.直接调用* 静态成员可以通过该类型的对象名.调用* 注意:静态成员不可使用本类内非静态成员(用new创建对象除外).*/package T21;class Account private int balance; public Account() balance = 0; public Account(int balance) this.balance = balance; public int getBalance() return balance; public void deposit(int money) balance += money; public void withdraw(int money) balance -= money; class CCBAccount extends Account static final int minBalance = 10; static int counter = 0; private String accountID; private CCBAccount() super(minBalance); accountID = ; private CCBAccount(String ID, int balance) super(balance); this.accountID = ID; public static CCBAccount applyCCBAccount() counter+; return new CCBAccount(CCB+counter, minBalance); public static int getAccountAmount() return counter; public String getAccountID() return accountID; public void withdraw(int money) if(money=this.getBalance()-minBalance) super.withdraw(money); else System.out.println(Not Enough Money); public class JavaTestDemo11 public static void main(String args) CCBAccount a = CCBAccount.applyCCBAccount(); System.out.println(a.getAccountAmount(); CCBAccount b = 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.getAccountAmount(); System.out.println(CCBAccount.getAccountAmount(); 答案:1CCB110CCB210Not Enough Money11011022/*要点:* 异常处理* 定义异常类,从Exception继承* 产生异常 throw new 异常类名();打断程序的执行* try语句块检测异常* catch(异常类型 参数)在这里处理异常* 当try语句块对应多个catch语句块时,根据异常的类型,* 依此查找到第一个符合类型的catch块,执行该catch块中的语句* 无论是否发生异常都执行finally块中的语句* 执行完异常处理后,程序执行catch和finally块后面的语句.*/package T22;import java.io.FileNotFoundException;class NotEnoughMoneyException extends Exception public void printStackTrace() System.out.println(NotEnoughMoney!); class Account private int balance; static final int minBalance = 10; public Account() balance = 0; public Account(int balance) this.balance = balance; public int getBalance() return balance; public void deposit(int money) balance += money; public void withdraw(int money) throws NotEnoughMoneyException, FileNotFoundException if(money=this.getBalance()-minBalance) balance -= money; else throw new NotEnoughMoneyException(); public class JavaTestDemo22 public JavaTestDemo22() Account a = new Account(); Account b = new Account(); try System.out.println(a.getBalance(); System.out.println(b.getBalance(); a.deposit(30); System.out.println(a.getBalance(); b.deposit(20); System.out.println(b.getBalance(); a.withdraw(25); System.out.println(a.getBalance(); b.withdraw(25); System.out.println(b.getBalance(); catch(FileNotFoundException ex) ex.printStackTrace(); System.out.println(Is This Possible?); catch (NotEnoughMoneyException ex) ex.printStackTrace(); System.out.println(a.getBalance(); System.out.println(b.getBalance(); catch(Exception ex) ex.printStackTrace(); System.out.println(Is There Any Exception Not Catched?);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论