CS110 Lecture 10 Thursday, February 26 2004 - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

CS110 Lecture 10 Thursday, February 26 2004

Description:

Based on course work so far (JOI Chapters 1,2,3) Given source code ... Collections. More programs manipulate data ... banker to create new accounts while the ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 22
Provided by: ethanb8
Learn more at: http://www.cs.umb.edu
Category:

less

Transcript and Presenter's Notes

Title: CS110 Lecture 10 Thursday, February 26 2004


1
CS110 Lecture 10Thursday, February 26 2004
  • Announcements
  • hw4 due tonight
  • Exam next Tuesday (sample posted)
  • Agenda
  • questions
  • whats on the exam?
  • collections (Chapter 4)
  • arrays
  • better Banks and BankAccounts

2
Exam preview
  • Based on course work so far
    (JOI Chapters 1,2,3)
  • Given source code Foo.java to read
  • what does java Foo do?
  • find tokens, keywords, identifiers, messages
  • comment on programming conventions
  • draw a box-and-arrow picture
  • Write simple code using if/else, while, for
  • Sample posted on course web page

3
Vocabulary
  • java, token, keyword, identifier, convention,
    API, message, method, int, double, boolean, if,
    else, while, for, declaration, delegation,
    variable, class, instance, field, source code,
    static, scope, client, comment, javadoc, compile,
    constructor, final, flow control, object, main,
    string, syntax, semantics, this, true, false,
    unit test, self documenting test, new, null,
    void, public, private, pseudocode,

4
Applications
  • Bank, BankAccount
  • LinearEquation, Temperatures, PhoneBill
  • IntArithmetic, DoubleArithmetic, Exponentiate
  • TextFile
  • HLine, Box, Screen, VLine, Frame,

5
hw4 - Exponentiate
  • needs just main
  • pseudocode
  • create a Terminal
  • get base and exponent from user
  • create any BigIntegers you need
  • send a message to do the computation
  • print the result

6
Collections
  • More programs manipulate data than do arithmetic
  • Library catalog manages a collection of books
  • Registrar maintains a database of student records
  • EStore has list of Items in Warehouse and in
    ShoppingCart
  • Bank deals with a list of BankAccounts
  • Screen manages a set of pixels
  • Windows folder holds files (and other folders)
  • list, set, database, group, collection,
    container ...

7
Collections
  • A Collection is an object that stores things
  • Collection API must provide ways to
  • make an empty container (constructor)
  • put things in put, insert, add, store, ...
  • know whats there
  • get, retrieve, find, lookup, ...
  • loop on contents
  • throw things out delete, remove, kill, ...
  • Java provides array, List, Map, Set

8
A better Bank (Version 4)...
  • Maintains a list of BankAccounts
  • Allows banker to create new accounts while the
    Bank is open
  • Keeps track of the total balance of all the
    accounts in it, and of the total number of
    transactions performed by its accounts

9
Array
  • Simplest Java object for managing a list
  • array syntax uses square brackets several ways
  • Bank.java (version 4) uses an array
  • Declare field accountList of type
    array of BankAccounts (line 32)
  • private BankAccount accountList
  • Create the array, ready to hold 3 Items (60)
  • accountList new BankAccountNUM_ACCOUNTS

10
An array for 3 BankAccounts
  • // fill array on lines 66-68
    accountList 0 new BA( 0, this) accountList
    1 new BA(100, this) accountList 2 new
    BA(200, this)
  • Improved BankAccount object has a field to hold a
    reference to the Bank it belongs to (more later)

11
boxes and arrows for arrays
Bank
aList BA declares array of BA (line 32)
accountList
BankAccount
null
aList new BA3 creates array object (60)
BankAccount
Bank
null
accountList
BankAccount
aList0 new BA() fills array
object (66-)
null
null
BankAccount
BankAccount
Bank
accountList
BankAccount
BankAccount
BankAccount
12
Seeing whats in an array
  • BA acct accountList1
  • atm.println(Account 1 balance
    acct.getBalance())
  • prints
  • Account 1 balance 100

13
looping over an array
  • // lines 211-214 in report method
  • for (int i 0 i lt NUM_ACCOUNTS i)
  • terminal.println( i \t accountListi.ge
    tBalance() )
  • accountListi is (a reference to) the Object at
    position i.
  • send a getBalance message to each account in the
    Bank in succession
  • prints 0 0 x
    1 100 x
    2 200 x

\t is tab
14
array summary
  • declare Type myArray // Type is class name,
    // or primitive
  • create myArray new Typesize // int size
  • put myArrayposition // int
    position
  • get Type x myArrayposition
    myArrayposition.message()
  • length myArray.length // final public
    field
  • range 0,1,, myArray.length-1
  • read short self documenting program Array.java

15
arrays are Objects
  • Created with new
  • Size is determined at creation time but not at
    declaration time
  • The square brackets provide the special syntax
    for sending an array a message
  • myArrayi refers to the value stored at index i
    (which must be an integer)
  • Stored values may be primitive (in the box) or a
    reference to an object (an arrow) but all values
    must have the same type

16
Improved BankAccount
  • Private fields (all have getter methods)
  • int balance
  • int transactionCount
  • Bank issuingBank
  • Constructor
  • public BankAccount(int initialBalance,
    Bank issuingBank)
  • this.issuingBank issuingBank
  • this.deposit(initialBalance)

17
Command line arguments in Java
  • public static void main(String args)
  • args is a parameter for the main method
  • The declaration says its an array of String
    objects
  • Its contents are the words on the command line
    after java ClassName
  • Argument array can have any name you wish
  • args is conventional
  • old C programmers may call it argv

18
Command line arguments in Java
  • class CommandLineArgsDemo
  • public static void main( String args )
  • for (int i 0 i lt args.length i)
    System.out.println(''argsi'')
  • gt java CLID message is hello, world
  • message
  • is
  • hello, world
  • Experiment with gt java Bank -e

19
Improved Bank
  • banker commands
  • create new account
  • report on totals
  • deal with a customer
  • deposit
  • withdraw
  • get balance
  • transfer

20
Bank and BankAccount cooperate
  • public int deposit(int amount)
  • this.incrementBalance( amount)
  • this.countTransaction()
  • return amount
  • public void incrementBalance(int amount)
  • balance amount
  • this.getIssuingBank().
    incrementBalance( amount )

this BankAccount asks the Bank it is in to update
its own balance field
21
A Bank object and its fields
Bank
bankName
River Bank
atm
balance
600
transactionCount
9
accountList
BankAccount
Write a Comment
User Comments (0)
About PowerShow.com