Top Banner
Copyright © 2014 by John Wiley & Sons. All rights reserved. 1 Introduction
71

Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Dec 13, 2015

Download

Documents

Abel Jordan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 1

Introduction

Page 2: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 2

What is java? Developed by Sun Microsystems General-purpose and Object-oriented language Widespread acceptance

Page 3: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 3

Java Features Simple

• no pointers• automatic garbage collection• rich pre-defined class library

Object oriented• all functions are associated with objects• potentially better code organization and reuse

Platform independent• Same application runs on all platforms• Java bytecode can run on any JVM, on any platform

• …including mobile phones and other hand-held devices

Page 4: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 4

Java Virtual Machine (JVM)

Steps:1. Write all source code is in plain text files ending with

the .java extension. 2. Compile those source files into .class files by

the javac compiler. • A .class file contains bytecodes — the machine language of

the Java Virtual Machine(Java VM).

3. Run the bytecode/.class file using JVM

Page 5: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 5

Java Virtual Machine (JVM) Because the Java VM is available on many

different operating systems, the same .class files are capable of running on any platform.

Page 6: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 6

Java Versions

Page 7: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 7

Writing first application You need:

• The Java SE Development Kit 7 (JDK 7)

• A text editor:

• Simple text editors: – Notepad, Notepad++ , …..

• Integrated Development Environment (IDE):– Eclipse, Netbeans, DrJava , …..

Page 8: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 8

QUESTION

What is the difference between JDK and JRE?• Java Download page has both!

• http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html

ANSWER:• You need to answer the question: Do you want to run Java

programs or do you want to develop Java programs?• JRE:

• If you want to run Java programs, but not develop them, download the JRE.

• JDK:• If you want to develop Java applications, download the Java

Development Kit, or JDK.• The JDK includes the JRE, so you do not have to download both

separately. 

Page 9: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 9

Installing Java JDK

On Windows:• http://docs.oracle.com/javase/7/docs/webnotes/install/windo

ws/jdk-installation-windows.html On Linux:

• http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

On Mac OS X:• http://docs.oracle.com/javase/7/docs/webnotes/install/mac/

mac-jdk.html

Page 10: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 10

Your first Program: HelloPrinter.java

Choice 1: Using simple text editor• STEP1: Write and save your program in text editor as

HelloPrinter.java

• STEP2: Compile the source file into a .class file

• STEP3: Run the program

Page 11: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 11

Programming Question

In your home directory create a folder cs160. Inside it create a folder ch01.

Write HelloPrinter program using gedit editor Save program in cs160/ch01 as HelloPrinter.java Open a terminal and navigate (cd) to cs160/ch01 Compile program (if no errors, verify .class file is generated) Run program

Page 12: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 12

Your first Program: HelloPrinter.java

Choice 2: Using IDE1. Start the Java development environment (We use

DrJava).2. Write a simple program.3. Run the program.4. Organize your work.

Page 13: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 13

Becoming Familiar with Your Programming Environment

1. Write and save program (File->save)

2. Compile3. Run

Page 14: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 14

Comments Java supports three types of comments:

1. single-line comment:

2. multiline comment

3. document comment

Page 15: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 15

Identifiers

Names chosen by the programmer

E.g. variable names, method names, class names etc.

Identifiers are subject to the following rules:• Identifiers may contain letters (both uppercase and

lowercase), digits, and underscores (_).• Identifiers begin with a letter or underscore.• There’s no limit on the length of an identifier.• Lowercase letters are not equivalent to uppercase letters. (A

language in which the case of letters matters is said to be case-sensitive.)

• Cannot be reserved words (keywords)

Page 16: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 16

Reserved Words

Here is a list of keywords in the Java programming language. You cannot use any of the following as identifiers in your programs. 

Page 17: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 17

Multiword Identifiers

When an identifier consists of multiple words, it’s important to mark the boundaries between words.

One way to break up long identifiers is to use underscores between words:

last_index_of

Another technique is to capitalize the first letter of each word after the first:

lastIndexOf

This technique is the one commonly used in Java.

Page 18: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 18

Java Conventions A rule that we agree to follow, even though it’s not required

by the language

1. Begin a class name with an uppercase letter:

Student

EmployeeString

2. Names of variables and methods, never start with an uppercase letter.

age variable nameprint() method name

3. Identifier names follow camel casing (For subsequent words in name, first word capitalizd)

totalSalary variable name

getName() method nameSalariedEmployee class name

Page 19: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 19

Variables

Stores values/state

Must be declared before they can be used • static typing

Page 20: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 20

Primitive Data Types

Java supports eight basic data types known as primitive types.

integer

floating point

Page 21: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 21

Declaring Variables

Syntax: <variable type> <variable name> ;

Example:int i; // Declares i to be an int

variable

Several variables can be declared at a time:int i, j, k;

It’s often better to declare variables individually.

Page 22: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 2222

Initializing Variables

Assign a value to the variable for the first time.

us =, the assignment operator:i = 0;byte z = 22;double h = 3.1l3;char x = ‘x’;

Variables always need to be initialized before the first time their value is used.

You can initialize variables at the time of declaration too:boolean found=true, contains;int a, b=20, c;

Page 23: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 23

Changing the Value of a Variable

The assignment operator can be used both to initialize a variable and to change the value of the variable later in the program:

i = 1; // Value of i is now 1…i = 2; // Value of i is now 2

Page 24: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 24

Literals A token that represents a particular number or

other value.

Examples of int literals:0 437 30343

Examples of double literals:37.0 37. 3.7e1 3.7e+1 .37e2 370e-1

The only boolean literals are true and false.

char literals are enclosed within single quotes:'a' 'z' 'A' 'Z' '0' '9' '%' '.' ' '

Page 25: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 25

Page 26: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 26

Constants: final

Represents values that do not change.

Use keyword final when declaring a variable as a constant

Convention: • use all-uppercase names for constants• Words separated by underscore(“_”)

final double PENNY_VALUE = 0.01;final double NICKEL_VALUE = 0.05;

Page 27: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 27

Class Declaration

Classes:• are the fundamental building blocks of Java programs:• The name of the public class MUST match the name of the file

containing the class: • Class HelloPrinter must be contained in a file named

HelloPrinter.java

1 public class HelloPrinter 2 { 3 public static void main(String[] args) 4 { 5 // Display a greeting in the console window 6 7 System.out.println("Hello, World!"); 8 } 9 }

Class declaration

Class body

Page 28: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 28

Methods

Each class contains declarations of methods.

Each method contains a sequence of instructions describing how to carry out a particular task.

A method is called by specifying the method and its arguments.

Every Java application contains a class with a main method • When the application starts, the instructions in the main

method are executed

Page 29: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 29

1 public class HelloPrinter 2 { 3 public static void main(String[] args) 4 { 5 // Display a greeting in the console window 6 7 System.out.println("Hello, World!"); 8 } 9 }

Method declaration

Method body

Page 30: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 30

Statements

The body of the main method contains statements.

Every statement ends with a semicolon (“;”)

Our method has a single statement:System.out.println("Hello, World!");

It prints a line of text:Hello, World!

Page 31: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 31

1 public class HelloPrinter 2 { 3 public static void main(String[] args) 4 { 5 // Display a greeting in the console window 6 7 System.out.println("Hello, World!"); 8 } 9 }

Statement 1

Page 32: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 32

Print statement System.out.print

• Prints in the same line System.out.println

• Prints in a new line• System.out.println();//Prints in an empty line

Printing Multiple Items• The + operator can be used to combine multiple items into a

single string for printing purposes:

int I = 10;

System.out.println(“The value of i is: " + i);

• At least one of the two operands for the + operator must be a string.

Page 33: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 33

Syntax 1.1 Java Program

Page 34: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 34

Indentation

Programmers use indentation to indicate nesting.

An increase in the amount of indentation indicates an additional level of nesting.

The HelloPrinter program consists of a statement nested inside a method nested inside a class:

public class HelloPrinter{ public static void main(String[] args) { // Display a greeting in the console window System.out.println("Hello, World!"); }}

Page 35: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 35

public class HelloPrinter{

public static void main(String[] args) {

// Display a greeting in the console window System.out.println("Hello, World!"); }}

Brace Placement

Brace placement is another important issue.

Option1:• Put each left curly brace at the end of a line.

• The matching right curly brace is lined up with the first character on that line:

Page 36: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 36

Brace Placement

Option2:• Some programmers prefer to put left curly braces on

separate lines:

• This makes it easier to verify that left and right braces match up properly. However, program files become longer because of the additional lines.

public class HelloPrinter{ public static void main(String[] args)

{

// Display a greeting in the console window System.out.println("Hello, World!"); }}

Page 37: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 37

Programming Question

Write a tester class IdentifierDemo that does the following: • Create seven variables, one for each of the primitive

number types in Java• Initialize each variable with any appropriate value. • Print out the name of each variable and its value. • Modify the value of each variable with an assignment

statement • Print out the names of the variables and their new values.• Next, create a double constants pi with value

3.141592653589793.• Print the name of the constant and its value.

What happens if you try to a assign a value to a constant?

Page 38: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 38

Answerpublic class IdentifierDemo{ public static void main(String[] args) { boolean bln = true; // booleans can only be 'true' or 'false' byte b = 20; short s = 500; char c = '%'; // must use single quotes to denote characters int i = 1000000; // decimal notation float f = 1.5f; // trailing 'f' distinguishes from double long l = 2000000L; // trailing 'L' distinguishes from int System.out.println("bln="+bln); System.out.println("b="+b); System.out.println("c="+c); System.out.println("i="+i); System.out.println("f="+f); System.out.println("bln="+bln); System.out.println("l="+l);

bln = false; // booleans can only be 'true' or 'false' b = 70; s = 800; c = 't'; // must use single quotes to denote characters i = 23; // decimal notation f = 3.0f; // trailing 'f' distinguishes from double l = 5600000L; // trailing 'L' distinguishes from int System.out.println(); System.out.println("bln="+bln); System.out.println("b="+b); System.out.println("c="+c); System.out.println("i="+i); System.out.println("f="+f); System.out.println("bln="+bln); System.out.println("l="+l); final double pi = 3.141592653589793; // doubles are higher precision

System.out.println("pi="+pi); }}

IdentifierDemo.java

Page 39: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 39

Java Language Basics: Operators

Java provides a rich set of operators to manipulate variables.• Arithmetic Operators• Relational Operators• Bitwise Operators• Logical Operators• Assignment Operators• Misc Operators

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

Page 40: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 40

Java Language Basics: Operators

Arithmetic Operators:

• Assume variables A=10 , B=20

Page 41: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 41

QUESTION

What is the output of following java expressions?

1) 1 / 22) 5 / 33) 6.1 + 24) 7 % 35) 1.0/0.06) -1.0/0.07) 0.0/0.0

Page 42: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 42

Answer

Page 43: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 43

Operator Precedence

What’s the value of 6 + 2 * 3?• (6 + 2) * 3, which yields 24?• 6 + (2 * 3), which yields 12?

Operator precedence resolves issues such as this.

Page 44: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 44

Page 45: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 45

*, /, and % take precedence over + and -.

Examples:5 + 2 / 2 5 + (2 / 2) 68 * 3 - 5 (8 * 3) - 5 196 - 1 * 7 6 - (1 * 7) –19 / 4 + 6 (9 / 4) + 6 86 + 2 % 3 6 + (2 % 3) 8

Page 46: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 46

Associativity

Precedence rules are of no help when it comes to determining the value of 1 - 2 - 3.

Associatively rules come into play when precedence rules alone aren’t enough.

The binary +, -, *, /, and % operators are all left associative:2 + 3 - 4 (2 + 3) - 4 12 * 3 / 4 (2 * 3) / 4 1

Page 47: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 47

Parentheses in Expressions

Parentheses can be used to override normal precedence and associativity rules.

Parentheses in the expression (6 + 2) * 3 force the addition to occur before the multiplication.

Page 48: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 48

Question

What is the default parenthesis used in java for following expression:

2+3*4+1+4/2

Page 49: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 49

Answer

(((2+(3*4))+1)+(4/2))

Page 50: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 50

Compound Assignment Operators

The compound assignment operators make it easier to modify the value of a variable.

A partial list of compound assignment operators:+= Combines addition and assignment-= Combines subtraction and assignment*= Combines multiplication and assignment/= Combines division and assignment%= Combines remainder and assignment

Page 51: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 51

Compound Assignment Operators

Examples:i += 2; // Same as i = i + 2;i -= 2; // Same as i = i - 2;i *= 2; // Same as i = i * 2;i /= 2; // Same as i = i / 2;i %= 2; // Same as i = i % 2;

Page 52: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 52

Programming Question

Write a tester class FtoC that convert a Fahrenheit temperature to Celsius.

• In the main method declare two variables fahrenheit and celsius.

• Initialize fahrenheit to 98.6.

• Calculate value of celcius using following equation:

• Expected output:

Page 53: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 53

Answer

// Converts a Fahrenheit temperature to Celsius

public class FtoC { public static void main(String[] args) { double fahrenheit = 98.6; double celsius = (fahrenheit - 32.0) * (5.0 / 9.0); System.out.println("Celsius equivalent: “ + celsius);

}}

FtoC.java

Page 54: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 54

Programming Question

Note that the ratio 5.0/9.0 and value 32.0 is a constant in FtoC program. Modify your program so that you define a constant DEGREE_RATIO (5.0/9.0) and FREEZING_POINT(32.0) and adjust your equation accordingly.

Page 55: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 55

Answer// Converts a Fahrenheit temperature to Celsius

public class FtoC { public static void main(String[] args) { final double FREEZING_POINT = 32.0; final double DEGREE_RATIO = 5.0 / 9.0; double fahrenheit = 98.6; double celsius = (fahrenheit - FREEZING_POINT) * DEGREE_RATIO; System.out.println("Celsius equivalent: “+celsius);

}}

FtoC.java

Page 56: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 56

Converting Floating-Point Numbers to Integers - Cast

The compiler disallows the assignment of a double to an int because it is potentially dangerous

This is an error:double balance = total + tax;int dollars = balance; // Error: Cannot assign double to int

Use the cast operator (int) to convert a floating-point value to an integer.

double balance = total + tax;int dollars = (int) balance;

Cast discards fractional part

Page 57: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 57

Syntax 4.2 Cast

Page 58: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 58

Packages Java classes are grouped into packages.

• java.net package classes for networking• java.io package input/output functions• javax.swing package graphical user interface development

• Refere javadoc API

To use a class in a package, you must import the package• E.g. to use Rectangle class in java.awt package:

import java.awt.Rectangle;

Put the line at the top of your program.

You DON’T need to import classes in the java.lang package such as String and System.

Page 59: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 59

Syntax 2.4 Importing a Class from a Package

Page 60: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 60

Read user input

Use a class called Scanner to read keyboard input.

To use the Scanner class, import it by placing the following at the top of your program file (before class definition):

import java.util.Scanner

Page 61: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 61

2. Obtain a Scanner object:Scanner in = new Scanner(System.in);

3. Prompt user a message asking to input data: System.out.println(“Enter the Fahrenheit temperature : ”);

By default, a scanner uses white space to separate tokens.White space characters include blanks, tabs, and line terminators.

2. Read the user input:• Read int: use nextInt() method• Read double: nextDouble() method

• Read string: next() method

Refer Scanner page in Oracle JavaAPI

Page 62: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 62

nextInt() example:

System.out.print("Please enter the number of bottles: ");int bottles = in.nextInt();

• When the nextInt method is called,

• The program waits until the user types a number and presses the Enter key;

• After the user supplies the input, the number is placed into the bottles variable;

• The program continues.

Page 63: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 63

To read different and multiple inputs from user, creating one scanner object is enough.

Page 64: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 64

Complete Exampleimport java.util.Scanner;

public class ScannerTester{ public static void main(String args[]) { //create scanner object Scanner in = new Scanner(System.in);

//read values System.out.println("Enter name,age and isMarried seperated by whitespaces:"); String name = in.next(); int age = in.nextInt(); boolean isMarried = in.nextBoolean();

//print values System.out.println("Name:"+name+"\nage:"+age+"\nisMarried:"+isMarried);

//close scanner in.close(); }}

Page 65: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 65

output

Page 66: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 66

Programming Question

Write a tester class ScannerDemo.java that accepts two numbers from user and prints the sum.

Sample output:

Page 67: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 67

Answerimport java.util.Scanner;

public class ScannerDemo{ public static void main(String args[]) { Scanner in = new Scanner(System.in); System.out.print("Enter number 1: "); int n1 = in.nextInt(); System.out.print("Enter number 2: "); int n2 = in.nextInt(); int total = n1 + n2; System.out.println(n1+ " + "+n2+ " = "+total);

in.close(); }}

ScannerDemo.java

Page 68: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 68

Formatted Output Use the printf method to specify how values should be formatted.

Suppose you have a variable price with value 1.215962441314554

If you use

System.out.println(price)

Will print :1.215962441314554

If you want a formatted output(e.g. only 2 decimal points displayed):

System.out.printf("%.2f", price);

Will print:1.22

Page 69: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 69

Formatted Output You can also specify a field width:

System.out.printf("%10.2f", price);

This prints 10 characters, six spaces followed by the four characters 1.22

This commandSystem.out.printf("Price per liter:%10.2f",

price);

PrintsPrice per liter: 1.22

Page 70: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 70

Formatted Output

Page 71: Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Introduction.

Copyright © 2014 by John Wiley & Sons. All rights reserved. 71

Formatted Output You can print multiple values with a single call to the printf method.

ExampleSystem.out.printf("Quantity: %d Total: %10.2f",quantity, total);

Output explained: