©2000, john wiley & sons, inc. horstmann/java essentials, 2/e chapter 2: fundamental data types...

30
©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

Upload: george-jacobs

Post on 04-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types1

Chapter 2

Fundamental Data Types

Page 2: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types2Program Coins1.java

public class Coins1{ public static void main(String[] args) { int pennies = 8; // the purse contains 8 pennies, int dimes = 4; // four dimes, int quarters = 3; // and three quarters

// compute total value of the coins

double total = pennies * 0.01 + dimes * 0.10 + quarters * 0.25;

// print result

System.out.print("Total value = "); System.out.println(total); }}

Page 3: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types3

Number types

• int : integer• double : double-precision floating-point

numbers• Variable declaration:int n;double total = 0.5;

• Quality tip: Use descriptive variable namesint nickels;

Page 4: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types4Program Coins2.java

public class Coins2{ public static void main(String[] args) { int pennies = 8; // eight pennies in the purse double total = pennies * 0.01;

int dimes = 4; // four dimes in the purse

// add value of dimes

total = total + dimes * 0.10;

int quarters = 3; // three quarters in the purse

// add value of quarters

total = total + quarters * 0.25;

System.out.print("Total value = "); System.out.println(total); }}

Page 5: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types5

Assignment

• Assign a new value to a variable• variableName = expression; • total = total + dimes * 0.1;

Page 6: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types6

Figure 1Assignment

Page 7: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types7

Increment and decrement

• month++;month--;

• Shortcuts formonth = month + 1;month = month - 1;

Page 8: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types8

Figure 2Incrementing aVariable

Page 9: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types9

Type conversion

• In assignment, types must match.double total = "a lot"; // no

• Use “cast” (int)to convert floating-point values to integer values:int pennies = (int)(total * 100);

• Use Math.round for rounding:int dollar = (int)Math.round(total);

Page 10: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types10

Static method calls

• ClassName.MethodName( parameters )• Invoke a method that doesn't operate on an

object• Example: Math.round(3.14)

Page 11: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types11

Program Volume.java

public class Volume{ public static void main(String[] args) { final double BOTTLE_VOLUME = 2.0; final double CAN_VOLUME = 0.355;

Page 12: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types12

Constants

• final TypeName VariableName = Expression;• Defines a constant and assign its value• Example: final double CAN_VOLUME = 0.355;

• Useful constants: Math.PI, Math.E • Quality tip: No magic numbers

Page 13: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types13

int bottles = 4; // we have four bottles int cans = 10; // and ten cans

// compute total volume

double total = bottles * BOTTLE_VOLUME + cans * CAN_VOLUME;

// print result

System.out.print("The total volume is "); System.out.print(total); System.out.println(” liters"); }}

Page 14: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types14Program Coins3.java

public class Coins3{ public static void main(String[] args) { final int PENNY_VALUE = 1; final int NICKEL_VALUE = 5; final int DIME_VALUE = 10; final int QUARTER_VALUE = 25; final int DOLLAR_VALUE = 100;

int pennies = 8; // the purse contains 8 pennies, int nickels = 0; // no nickels, int dimes = 4; // four dimes, int quarters = 3; // and three quarters

// compute total value in pennies

int total = pennies * PENNY_VALUE + nickels * NICKEL_VALUE + dimes * DIME_VALUE + quarters * QUARTER_VALUE;

Page 15: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types15

// use integer division to convert to dollars, cents

int dollar = total / DOLLAR_VALUE; int cents = total % DOLLAR_VALUE; System.out.print("Total value = "); System.out.print(dollar); System.out.print(” dollars and "); System.out.print(cents); System.out.println(" cents"); }}

Page 16: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types16

Figure 3Analyzing an Expression

Page 17: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types17

Arithmetic

• Operators+ - * /

• Integer division9 / 4 is 2 and not 2.25!9 % 4 is 1

• Common functionsMath.pow(x,y) Math.sqrt(x)

Page 18: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types18

Figure 4On-Line Help

Page 19: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types19

Program MakePassword.java

public class MakePassword{ public static void main(String[] args) { String firstName = "Harold"; String middleName = "Joseph"; String lastName = "Hacker";

// extract initials

String initials = firstName.substring(0, 1) + middleName.substring(0, 1) + lastName.substring(0, 1);

// append age

int age = 19; // the age of the user String password = initials.toLowerCase() + age;

System.out.println("Your password is ” + password); }}

Page 20: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types20

Strings

• String constants: "Carl"• String variables: String name = "Carl";

• String length:int n = name.length();

Page 21: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types21

Substrings

• String greeting = "Clown";String sub = greeting.substring(1, 4);

• Supply start and “past the end” position• First position is at 0

• 0C1l2o3w4n

• substring length = “past the end” - start

Page 22: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types22

Concatenation

• String fname = "Harry";String lname = "Hacker";String name = fname + lname;

• name is "HarryHacker" • If one operand of + is a string, the other is

converted to a string:String a = "Agent";String name = a + 7;

• name is "Agent7"

Page 23: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types23

Converting between strings and numbers

• Convert to number:int n = Integer.parseInt(str);double x = Double.parseDouble(x);

• Convert to string:String str = "" + n;str = Integer.toString(n);

Page 24: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types24

Formatting numbers

• NumberFormat formatter = NumberFormat.getNumberInstance();

• formatter.setMaximumFractionDigits(2);formatter.setMinimumFractionDigits(2);

• formatter.format(tax);• prints 0.30

Page 25: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types25

Program Coins4.javaimport java.text.NumberFormat;

public class Coins4{ public static void main(String[] args) { final double PENNY_VALUE = 0.01; final double NICKEL_VALUE = 0.05; final double DIME_VALUE = 0.1; final double QUARTER_VALUE = 0.25;

ConsoleReader console = new ConsoleReader(System.in);

System.out.println("How many pennies do you have?"); int pennies = console.readInt();

System.out.println("How many nickels do you have?"); int nickels = console.readInt();

System.out.println("How many dimes do you have?"); int dimes = console.readInt();

System.out.println("How many quarters do you have?"); int quarters = console.readInt();

Page 26: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types26

double total = pennies * PENNY_VALUE + nickels * NICKEL_VALUE + dimes * DIME_VALUE + quarters * QUARTER_VALUE; // total value of the coins

NumberFormat formatter = NumberFormat.getCurrencyInstance();

System.out.println("Total value = " + formatter.format(total)); }}

Page 27: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types27

Reading input

• ConsoleReader console = new ConsoleReader(System.in);

• int pennies = console.readInt(); • Also readDouble , readLine• Not a standard Java class. Include ConsoleReader.java in same directory, or paste into source file

Page 28: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types28

Program Coins5.java

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;

public class Coins5{ public static void main(String[] args) { try { final double PENNY_VALUE = 0.01; final double NICKEL_VALUE = 0.05; final double DIME_VALUE = 0.1; final double QUARTER_VALUE = 0.25;

InputStreamReader reader = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(reader);

Page 29: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types29

System.out.println("How many pennies do you have?"); String input = console.readLine(); int pennies = Integer.parseInt(input);

System.out.println("How many nickels do you have?"); input = console.readLine(); int nickels = Integer.parseInt(input);

System.out.println("How many dimes do you have?"); input = console.readLine(); int dimes = Integer.parseInt(input);

System.out.println("How many quarters do you have?"); input = console.readLine(); int quarters = Integer.parseInt(input);

Page 30: ©2000, John Wiley & Sons, Inc. Horstmann/Java Essentials, 2/e Chapter 2: Fundamental Data Types 1 Chapter 2 Fundamental Data Types

©2000, John Wiley & Sons, Inc.Horstmann/Java Essentials, 2/e

Chapter 2: Fundamental Data Types30

double total = pennies * PENNY_VALUE + nickels * NICKEL_VALUE + dimes * DIME_VALUE + quarters * QUARTER_VALUE; // total value of the coins System.out.println("Total value = ” + total); } catch(IOException e) { System.out.println(e); System.exit(1); } } }