实验10.面向对象设计(一).docx_第1页
实验10.面向对象设计(一).docx_第2页
实验10.面向对象设计(一).docx_第3页
实验10.面向对象设计(一).docx_第4页
实验10.面向对象设计(一).docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

实验报告实验序号:10实验项目名称:面向对象设计(一)学号姓名专业、班实验地点指导教师实验时间一、实验目的l 掌握按钮组件的编程方法l 掌握类的设计、静态方法、静态变量的概念和使用方法二、实验条件l 硬件要求:CPU PII 以上,64M 内存,100M 硬盘空间。l 软件要求:Windows98/Me/XP/NT/2000,IE 5 以上。l 开发环境:JDK1.6.0_10, NotePad或者EditPlus。三、实验内容与步骤Adding Buttons to StyleOptions.java下面的文件,StyleOptions.java和StyleOptionsPanel.java分别来自于教材例子5.22和5.23,并作了轻微改动,该程序展示了复选框和ItermListeners的用法。本练习要求读者添加三个单选按钮,使用户能够选择三种字体大小。添加单选按钮的方法参考教材例子5.25。按照以下步骤执行:1. 声明small、medium和large三个JRadioButton类型的对象。2. 对三个对象进行实例化,其标签名称分别为“Small Font”,“Medium Font”和“Large Font”。将large字体实例化为true。将按钮背景颜色设置为青色(cyan)。3. 实例化一个button group对象,并将单选按钮添加进来。4. 为单选按钮添加监听器代码。fontSize变量的值:small为12号字体,medium为24号字体,large为36号字体。然后调用saying对象的setFont方法来设置字体。(注意:不要增加新的监听器,而是使用当前的ItemListener。)5. 在StyleOptionsPanel()中为每个按钮对象添加ItemListener对象,并将按钮装载到面板。6. 编译程序。注意字体的改变将使复选框和按钮重新排列。后面的章节将介绍更多相关知识。实验运行结果: StyleOptions代码:/*/ StyleOptions.java Author: Lewis/Loftus/ Demonstrates the use of check boxes./*import javax.swing.JFrame;public class StyleOptions /- / Creates and presents the program frame. /- public static void main(String args) JFrame frame = new JFrame (Style Options); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); StyleOptionsPanel panel = new StyleOptionsPanel(); frame.getContentPane().add (panel); frame.pack(); frame.setVisible(true); StyleOptionsPanel代码:/*/ StyleOptionsPanel.java Author: Lewis/Loftus/ Demonstrates the use of check boxes./*import javax.swing.*;import java.awt.*;import java.awt.event.*;public class StyleOptionsPanel extends JPanel private int fontSize = 36; private int style = Font.PLAIN; private JLabel saying; private JCheckBox bold, italic; private JRadioButton small,medium,large; /- / Sets up a panel with a label and some check boxes that / control the style of the labels font. /- public StyleOptionsPanel() small = new JRadioButton(Small Font); small.setBackground(Color.cyan); medium = new JRadioButton(Medium Font); medium.setBackground(Color.cyan); large = new JRadioButton(Large Font,true); large.setBackground(Color.cyan); ButtonGroup group = new ButtonGroup(); group.add(small); group.add(medium); group.add(large); saying = new JLabel (Say it with style!); saying.setFont (new Font (Helvetica, style, fontSize); bold = new JCheckBox (Bold); bold.setBackground (Color.cyan); italic = new JCheckBox (Italic); italic.setBackground (Color.cyan); StyleListener listener = new StyleListener(); bold.addItemListener (listener); italic.addItemListener (listener); small.addItemListener(listener); medium.addItemListener(listener); large.addItemListener(listener); add (saying); add (bold); add (italic); add (small); add (medium); add (large); setBackground (Color.cyan); setPreferredSize (new Dimension(300, 100); /*/ Represents the listener for both check boxes./* private class StyleListener implements ItemListener /- / Updates the style of the label font style. /- public void itemStateChanged (ItemEvent event) style = Font.PLAIN; if (bold.isSelected() style = Font.BOLD; if (italic.isSelected() style += Font.ITALIC; if (small.isSelected() fontSize=12; else if (medium.isSelected() fontSize=24; else if (large.isSelected() fontSize=36; saying.setFont (new Font (Helvetica, style, fontSize); Opening and Closing AccountsAccount.java是一个简单的银行账户类,提供了取款,存款,获取余额与账号等方法,并返回一个关于账户的字符串描述信息,修改该类,使其构造器创建一个随机账号。保存这个类到本地磁盘,并修改代码:1. 假设银行希望监控现有的账户的数量a) 声明一个私有静态整型变量numAccount用于保存该值(该变量自动被初始化为0)。b) 修改构造器代码,一旦创建一个银行账户,该变量就自增一次。c) 添加静态方法numAccounts,返回账户总数。由于该值为静态,它的信息与任何专门的账户都不相关。d) TestAccounts.java创建了一个预先定义数目的银行账号,使用numAccounts方法返回创建了的账号的数目。将其保存至本地磁盘,运行并查看结果。2. 添加一个方法void close()至Account类。该方法通过附加一个“CLOSED”至账户姓名的尾部来关闭一个账户,并将余额设置为0,保持账户号码不变,同时更新当前的账户数量。3. 添加一个静态方法Account consolidate(Account acct1, Account acct2)至Account类,该方法创建一个新的账户,该账户余额是acct1与acct2之和,然后关闭acct1和acct2,然后返回该账户。注意两个重要的规则:l 只有相同用户姓名的账户才能够被consolidated(两个账户的户主名称为同一人)。新的账户的户主名称保持不变,但是会被赋予一个新的账户号码。l 两个具有相同账户号码的账户不能够被consolidated。在创建一个新账户之前检查这些条件。如果不满足任何一个条件,就不要创建新账户,或者关闭旧账户,打印一条提示信息,并返回一个空值。4. 编写一个测试程序,提示用户输入3个名字,为每一个人创建一个账户,初始化余额为100元。打印三个账户,关闭第一个,然后consolidate第二个和第三个账户。再次打印信息,包括被consolidated的账户。实验运行结果:TestAccounts代码:*/ TestAccounts.java/ Use Account class to create and manage Sally and Joes/ bank accounts/ *import java.util.Scanner;public class TestAccountspublic static void main(String args) Scanner scan = new Scanner(System.in); System.out.println(please input a account:); Account acct1 = new Account(scan.nextDouble(),scan.next(),scan.nextLong(); System.out.println(please input another account:); Account acct2 = new Account(scan.nextDouble(),scan.next(),scan.nextLong(); System.out.println(please input another account:); Account acct3 = new Account(scan.nextDouble(),scan.next(),scan.nextLong(); System.out.println(); System.out.println(acct1.toString()+n); System.out.println(acct2.toString()+n); System.out.println(acct3.toString()+n); System.out.println(There are + Account.numAccounts() + accounts); acct1.Close(); System.out.println(); System.out.println(* New Account *); System.out.println(acct1.toString()+n); System.out.println(acct2.toString()+n); System.out.println(acct3.toString()+n); System.out.println(Now There are + Account.numAccounts() + accounts); Account acct4 = Account.consolidate(acct2,acct3); System.out.println(); System.out.println(acct4.toString(); System.out.println(There are + Account.numAccounts() + accounts); Account代码:/*/ Account.java/ A bank account class with methods to deposit to, withdraw from,/ change the name on, charge a fee to, and print a summary of the account./*public class Account private double balance; private String name; private long acctNum; static int numAccount=0; /-/Constructor - initializes balance, owner, and account number/- public Account(double initBal, String owner, long number) balance = initBal; name = owner; acctNum = number; numAccount+; public static int numAccounts() return numAccount; /-/ Checks to see if balance is sufficient for withdrawal./ If so, decrements balance by amount; if not, prints message./- public void withdraw(double amount) if (balance = amount) balance -= amount; else System.out.println(Insufficient funds); /-/ Adds deposit amount to balance./52 Chapter 4: Writing Classes/- public void deposit(double amount) balance += amount; /-/ Returns balance./- public double getBalance() return balance; /-/ Returns a string containing the name, account number, and balance./- public String toString() return(Name: + name + nBalance: + balance + nAc

温馨提示

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

评论

0/150

提交评论