Chapter 3

Fundamental Data Types


Chapter Goals

Purse Class Interface

public class Purse
{
public void addNickels(int count) . . .
public void addDimes(int count) . . .
public void addQuarters(int count) . . .
public double getTotal(int count) . . .
. . .
}

Number types

Implementing the getTotal Method

public class Purse
{
public double getTotal()
{
return nickels * 0.05
+ dimes * 0.1 + quarters * 0.25;
}

private int nickels;
private int dimes;
private int quarters;
}
* = multiplication

Assignment operator

   public Purse()
   {
      nickels = 0;
      dimes = 0;
      quarters = 0;
   }
   public void addNickels(int count)
   {
      nickels = nickels + count;
   }

Assignment



 

Increment/Decrement

nickels++ is the same as nickels = nickels + 1
nickels--
decrements the contents of the variable.


Constants

   public double getTotal()
{
final double NICKEL_VALUE = 0.05;
final double DIME_VALUE = 0.1;
final double QUARTER_VALUE = 0.25;

return nickels * NICKEL_VALUE
+ dimes * DIME_VALUE + quarters * QUARTER_VALUE;
}

Class Constants

public class Purse
{
. . .
public double getTotal()
{
return nickels * NICKEL_VALUE
+ dimes * DIME_VALUE + quarters * QUARTER_VALUE;
}
private static final double NICKEL_VALUE = 0.05;
private static final double DIME_VALUE = 0.1;
private static final double QUARTER_VALUE = 0.25;
. . .
}

In methods of other classes, the constant is
Purse.DIME_VALUE

Syntax 3.1: Constant Definition

 Example:  Purpose:

   In a method:
final typeName variableName= expression ;
In a class:
accessSpecifier static final typeName variableName = expression;

Example:

  final double NICKEL_VALUE =0.05;
public static final double LITERS_PER_GALLON =3.785;

Purpose:

To define a constant of a particular type

File Purse.java

1/**
2   A purse computes the total value of a collection of coins.
3*/
4public class Purse
5{
6   /**
7      Constructs an empty purse.
8   */
9   public Purse()
10   {
11      nickels = 0;
12      dimes = 0;
13      quarters = 0;
14   }
15
16   /**
17      Add nickels to the purse.
18      @param count the number of nickels to add
19   */
20   public void addNickels(int count)
21   {
22      nickels = nickels + count;
23   }
24
25   /**
26      Add dimes to the purse.
27      @param count the number of dimes to add
28   */
29   public void addDimes(int count)
30   {
31      dimes = dimes + count;
32   }
33
34   /**
35      Add quarters to the purse.
36      @param count the number of quarters to add
37   */
38   public void addQuarters(int count)
39   {
40      quarters = quarters + count;
41   }
42
43   /**
44      Get the total value of the coins in the purse.
45      @return the sum of all coin values
46   */
47   public double getTotal()
48   {
49      return nickels * NICKEL_VALUE 
50         + dimes * DIME_VALUE + quarters * QUARTER_VALUE;
51   }
52
53   private static final double NICKEL_VALUE = 0.05;
54   private static final double DIME_VALUE = 0.1;
55   private static final double QUARTER_VALUE = 0.25;
56
57   private int nickels;
58   private int dimes;
59   private int quarters;
60}
61

File PurseTest.java

1/**
2   This program tests the Purse class.
3*/
4public class PurseTest
5{
6   public static void main(String[] args)
7   {
8      Purse myPurse = new Purse();
9
10      myPurse.addNickels(3);
11      myPurse.addDimes(1);
12      myPurse.addQuarters(2);
13
14      double totalValue = myPurse.getTotal();
15      System.out.print("The total is ");
16      System.out.println(totalValue);
17   }
18}

Division and Remainder

Mathematical Functions

Math.sqrt(x)
square root
Math.pow(x, y)
power xy
Math.exp(x)
ex
Math.log(x)
natural log
Math.sin(x), Math.cos(x), Math.tan(x)
sine, cosine, tangent (x in radian)
Math.round(x)
closest integer to x

Analyzing an Expression



Syntax 3.2: Static Method Call

  ClassName. methodName( Tparameters)

Example:

  Math.sqrt(4)

Purpose:

To invoke a static method (a method that doesn't operate on an object) and supply its parameters.


Type Conversion

Syntax 3.3 : Cast

  (typeName)expression

Example:

  (int)(x + 0.5)
(int)Math.round(100 * f)

Purpose:

To convert an expression to a different type

Strings

Concatenation

Converting between Strings and Numbers

Substrings

Reading Input

An Input Dialog

   

File InputTest.java

1import javax.swing.JOptionPane;
2
3/**
4   This program tests input from an input dialog.
5*/
6public class InputTest
7{
8   public static void main(String[] args)
9   {
10      Purse myPurse = new Purse();
11
12      String input = JOptionPane.showInputDialog("How many nickels do you have?");
13      int count = Integer.parseInt(input);
14      myPurse.addNickels(count);
15
16      input = JOptionPane.showInputDialog("How many dimes do you have?");
17      count = Integer.parseInt(input);
18      myPurse.addDimes(count);
19
20      input = JOptionPane.showInputDialog("How many quarters do you have?");
21      count = Integer.parseInt(input);
22      myPurse.addQuarters(count);
23
24      double totalValue = myPurse.getTotal();
25      System.out.println("The total is " + totalValue);
26
27      System.exit(0);
28   }
29}

Characters

Copying Numbers


Copying Object References

Copying Object References