• No results found

Lab 5: Bank Account. Defining objects & classes

N/A
N/A
Protected

Academic year: 2021

Share "Lab 5: Bank Account. Defining objects & classes"

Copied!
15
0
0

Loading.... (view fulltext now)

Full text

(1)

Lab 5: Bank Account

Defining objects & classes

(2)

Review: Basic class structure

Three major components of a class:

– Fields – store data for the object to use

– Constructors – allow the object to be set up properly

when first created

– Methods – implement the behavior of the object

public class

ClassName

{

Fields

Constructors

Methods

(3)

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

Fields

• Fields store values

for an object.

• They are also known

as instance variables.

• Fields define the

state of an object.

public class Square

{

private int x;

private int y;

private int size;

private Color fillColor;

// Further details omitted.

}

private int size;

(4)

Constructors

• Constructors initialize an object.

• They have the same name as their class.

• They store initial values into the fields.

• They often receive external parameter values for this.

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

public Square()

{

x = 0;

y = 0;

size = 0;

color = Color.blue;

}

(5)

/**

* Gets the size of the square.

*/

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

Methods

public int getSize()

{

return size;

}

return type

method name

parameter list

(empty)

start and end of method body (block)

return statement

visibility modifier

(6)

Formatting Output

• The

NumberFormat

class allows you to format

values as currency or percentages

• The

DecimalFormat

class allows you to format

values based on any pattern

• Both are part of the

java.text

package

• The

NumberFormat

class has static methods that

return a formatter object

getCurrencyInstance()

getPercentInstance()

(7)

Copyright © 2012 Pearson Education, Inc.

//******************************************************************** // Purchase.java Author: Lewis/Loftus

//

// Demonstrates the use of the NumberFormat class to format output. //********************************************************************

import java.util.Scanner;

import java.text.NumberFormat;

public class Purchase {

//---// Calculates the final price of a purchased item using values

// entered by the user.

//---public static void main (String[] args) {

final double TAX_RATE = 0.06; // 6% sales tax

int quantity;

double subtotal, tax, totalCost, unitPrice; Scanner scan = new Scanner (System.in);

(8)

Copyright © 2012 Pearson Education, Inc.

continued

NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print ("Enter the quantity: ");

quantity = scan.nextInt();

System.out.print ("Enter the unit price: "); unitPrice = scan.nextDouble();

subtotal = quantity * unitPrice; tax = subtotal * TAX_RATE;

totalCost = subtotal + tax;

// Print output with appropriate formatting

System.out.println ("Subtotal: " + fmt1.format(subtotal)); System.out.println ("Tax: " + fmt1.format(tax) + " at "

+ fmt2.format(TAX_RATE));

System.out.println ("Total: " + fmt1.format(totalCost)); }

}

Sample Run

Enter the quantity:

5

Enter the unit price:

3.87

Subtotal: $19.35

Tax: $1.16 at 6%

Total: $20.51

(9)

Formatting Output

• The

DecimalFormat

class can be used to format

a floating point value in various ways

• For example, you can specify that the number

should be truncated to three decimal places

• The constructor of the

DecimalFormat

class

takes a string that represents a pattern for the

formatted number

• See

CircleStats.java

(10)

Copyright © 2012 Pearson Education, Inc.

//******************************************************************** // CircleStats.java Author: Lewis/Loftus

//

// Demonstrates the formatting of decimal values using the // DecimalFormat class.

//********************************************************************

import java.util.Scanner;

import java.text.DecimalFormat;

public class CircleStats {

//---// Calculates the area and circumference of a circle given its

// radius.

//---public static void main (String[] args) {

int radius;

double area, circumference;

Scanner scan = new Scanner (System.in);

(11)

Copyright © 2012 Pearson Education, Inc.

continued

System.out.print ("Enter the circle's radius: "); radius = scan.nextInt();

area = Math.PI * Math.pow(radius, 2); circumference = 2 * Math.PI * radius;

// Round the output to three decimal places

DecimalFormat fmt = new DecimalFormat ("0.###");

System.out.println ("The circle's area: " + fmt.format(area)); System.out.println ("The circle's circumference: "

+ fmt.format(circumference)); }

}

Sample Run

Enter the circle's radius:

5

The circle's area: 78.54

(12)

Create a new project!

• File > New > Java Project

– Give it a name (like BankAccount_netid)

• Right click on your new project & go to

New > Class

– Give it a name (BankAccount)

– Click the check box to create a main method

– Click finish

(13)

Create a BankAccount class with the following:

1. Fields to store:

Current balance

Account number

Customer name

Customer address

* Think about what types these should be. For example,

should the account number actually be stored as a number?

What about leading 0’s?

2. Write a constructor that takes the customer’s name,

address, and account number, and initializes the

balance to 0.

3. Write getter and setter methods for the name and

address fields.

4. Write a deposit and a debit method.The method

signatures are similar in that there is no return value

(14)

Testing your BankAccount with main

4. Write a print method that prints out the account information,

including the current balance. Make sure to use proper

formatting so both dollars and cents are displayed

correctly.

5. Write a main method that creates a new, empty

BankAccount stored in local variable myBankAccount.

Deposit $5.00 into your BankAccount & print the balance

Debit $1.50 into your BankAccount & print the balance

6. Before submitting make sure your BankAccount has the

following methods:

1 constructor only (not 2) that takes 3 parameters

getCustomerName, getCustomerAddress, getAccountNumber

setCustomerName, setCustomerAddress

deposit, debit, print, main

(15)

Homework

• Finish lab & submit

• Work on CodingBat

• Read Chapter 4

References

Related documents