Sie sind auf Seite 1von 102

PHN 1:

NGN NG JAVA
BI 1: LM QUEN VI NGN NG JAVA

Java History
James Gosling and Sun Microsystems
Oak
Java, May 20, 1995, Sun World
HotJava
The first Java-enabled Web browser
JDK Evolutions
J2SE, J2ME, and J2EE

2 15/09/2014
JDK Editions
Java Standard Edition (J2SE)
J2SE can be used to develop client-side standalone applications
or applets.
Java Enterprise Edition (J2EE)
J2EE can be used to develop server-side applications such as
Java servlets and Java ServerPages.
Java Micro Edition (J2ME).
J2ME can be used to develop applications for mobile devices
such as cell phones.


3 15/09/2014
Java IDE Tools
Text Pad
Net Bean
EClipse
4 15/09/2014
5
Your first Java program!
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}

What does this code output (print to the user) when you
run (execute) it?
6
Compiling a program
Before you run a program, you must compile it.
compiler: Translates a computer program
written in one language (i.e., Java) to another
language (i.e., byte code)

Compile (javac) Execute (java)
output source code
(Hello.java)
byte code
(Hello.class)
The Java Virtual Machine
(JVM, or VM)
The Java Virtual Machine executes byte code
Use the java command to execute it
It only understands byte code (.class files)

The VM makes Java a bit different from older
programming languages (C, C++)
Its an extra step; compilers for other languages
directly produce machine code
Its slower
But it allows the same byte code to run on any
machine with a VM
8
Program execution
The output is printed to the console.
Some editors pop up the console as another window.
9
Another Java program
public class Hello2 {
public static void main(String[] args) {
System.out.println("Hello, world!");
System.out.println();
System.out.println("This program produces");
System.out.println("four lines of output");
}
}
10
Syntax
syntax: The set of legal structures and commands that
can be used.

Examples:
Every basic statement ends with a semi-colon.
The contents of a class occur between curly braces.
11
Syntax Errors
syntax error: A problem in the structure of a program.

1 public class Hello {
2 pooblic static void main(String[] args) {
3 System.owt.println("Hello, world!")
4 }
5 }
2 errors found:
File: Hello.java [line: 2]
Error: Hello.java:2: <identifier> expected
File: Hello.java [line: 3]
Error: Hello.java:3: ';' expected
compiler output:
12
More on syntax errors
Java is case-sensitive
Hello and hello are not the same

1 Public class Hello {
2 public static void main(String[] args) {
3 System.out.println("Hello, world!");
4 }
5 }
1 error found:
File: Hello.java [line: 1]
Error: Hello.java:1: class, interface, or enum
expected
compiler output:
13
System.out.println
System.out.println: A statement to print a line
of output to the console.
pronounced print-linn

Two ways to use System.out.println:
System.out.println("<message>");
Prints the given message as a line of text to the console.

System.out.println();
Prints a blank line to the console.

14
Strings
string: A sequence of text characters.
Start and end with quotation mark characters

Examples:

"hello"
"This is a string"
"This, too, is a string. It can be very long!"
15
Details about strings
A string may not span across multiple lines.
"This is not
a legal string."

A string may not contain a character.
The character is okay.
"This is not a "legal" string either."
"This is 'okay' though."

This begs the question
16
Escape sequences
A string can represent certain special characters by preceding them
with a backslash \ (this is called an escape sequence).
\t tab character
\n newline character
\" quotation mark character

Example:
System.out.println("Hello!\nHow are \"you\"?");

Output:
Hello!
How are "you"?

This begs another question
17
Comments
comment: A note written in the source code to make the code easier to
understand.
Comments are not executed when your program runs.
Most Java editors show your comments with a special color.

Comment, general syntax:
/* <comment text; may span multiple lines>*/
or,
// <comment text, on one line>
Examples:
/* A comment goes here. */
/* It can even span
multiple lines. */
// This is a one-line comment.
18
Comments: Where do you go?
at the top of each file (also called a "comment header"), naming
the author and explaining what the program does

at the start of every method, describing its behavior

inside methods, to explain complex pieces of code
19
Comments: Why?
Comments provide important documentation.

Later programs will span hundreds or thousands of lines, split into
many classes and methods.

Comments provide a simple description of what each class, method,
etc. is doing.

When multiple programmers work together, comments help one
programmer understand the other's code.

20
That thing called style
What is style?
Indentation
Capitalization
Formatting / spacing
Structured code
No redundancy


Why is it important?
21
Primitive data types,
expressions, and
variables
22
How the computer sees the world
Internally, the computer stores everything in terms of 1s
and 0s
Example:
h 0110100
"hi" 01101000110101
104 0110100

How can the computer tell the difference between an h
and 104?
23
Data types
data type: A category of data values.
Example: integer, real number, string

Data types are divided into two classes:
primitive types: Java's built-in simple data types for
numbers, text characters, and logic.
object types: Coming soon!
24
Primitive types
Java has eight primitive types. Here are two examples:

Name Description Examples
int integers 42, -3, 0, 926394
double real numbers 3.4, -2.53, 91.4e3

Numbers with a decimal point are treated as real numbers.

Question: Isnt every integer a real number? Why bother?
25
Other Primitive Data Types

Discrete Types
byte
short
int
long

Continuous Types
float
double

Non-numeric Types
boolean
char
Data Type Representations
Type Representation Bits Bytes #Values
boolean true or false
1 N/A 2
char
a or 7 or \n 16 2 2
16
= 65,536
byte
,-2,-1,0,1,2, 8 1 2
8
= 256
short
,-2,-1,0,1,2, 16 2 2
16
= 65,536
int
,-2,-1,0,1,2, 4 > 4.29 million

long
,-2,-1,0,1,2, 8 > 18 quintillion

float
0.0, 10.5, -100.7 32
double
0.0, 10.5, -100.7 64
27
Precision in real numbers
The computer internally represents real numbers in an
imprecise way.

Example:
System.out.println(0.1 + 0.2);
The output is 0.30000000000000004!
28
Concatenation: Operating on strings
string concatenation: Using the + operator between a string
and another value to make a longer string.

Examples:
"hello" + 42 is "hello42"
1 + "abc" + 2 is "1abc2"
"abc" + 1 + 2 is "abc12"
1 + 2 + "abc is "3abc"
"abc" + 9 * 3 is "abc27" (what happened here?)
"1" + 1 is "11"
4 - 1 + "abc is "3abc"

"abc" + 4 - 1 causes a compiler error. Why?
Question
ints are stored in 4 bytes (32 bits)
In 32 bits, we can store at most 2
32
different
numbers
What happens if we take the largest of these,
and add 1 to it?
ERROR!
This is known as overflow: trying to store something
that does not fit into the bits reserved for a data type.
Overflow errors are NOT automatically detected!
Its the programmers responsibility to prevent these.
The actual result in this case is a negative number.
Overflow example
int n = 2000000000;
System.out.println(n * n);
// output: -1651507200
the result of n*n is 4,000,000,000,000,000,000 which needs 64-bits:

---------- high-order bytes -------
00110111 10000010 11011010 11001110
---------- low order bytes --------
10011101 10010000 00000000 00000000

In the case of overflow, Java discards the high-order bytes, retaining
only the low-order ones
In this case, the low order bytes represent 1651507200, and since
the right most bit is a 1 the sign value is negative.
31
Declaring variables
To create a variable, it must be declared.

Variable declaration syntax:
<type><name>;

Convention: Variable identifiers follow the same
rules as method names.

Examples:
int x;
double myGPA;
int varName;
32
Declaring a variable sets aside a piece of memory in
which you can store a value.

int x;
int y;

Inside the computer:

x: ? y: ?

(The memory still has no value yet.)
Declaring variables
33
Identifiers: Say my name!
identifier: A name given to an entity in a program such as a class or
method.
Identifiers allow us to refer to the entities.

Examples (in bold):
public class Hello
public static void main
double salary

Conventions for naming in Java (which we will follow):
classes: capitalize each word (ClassName)
everything else: capitalize each word after the first
(myLastName)
34
Identifiers: Keywords
keyword: An identifier that you cannot use, because it already has a
reserved meaning in the Java language.

Complete list of Java keywords:
abstract default if private this
boolean do implements protected throw
break double import public throws
byte else instanceof return transient
case extends int short try
catch final interface static void
char finally long strictfp volatile
class float native super while
const for new switch
continue goto package synchronized

NB: Because Java is case-sensitive, you could technically use Class or cLaSs
as identifiers, but this is very confusing and thus strongly discouraged.
35
Errors in coding
ERROR: Declaring two variables with the same
name
Example:
int x;
int x; // ERROR: x already exists

ERROR: Reading a variables value before it has
been assigned
Example:
int x;
System.out.println(x); // ERROR: x has no value
36
Increment and decrement
Incrementing and decrementing 1 is used often enough that they have a
special shortcut operator!

Shorthand Equivalent longer version
<variable>++; <variable> = <variable> + 1;
<variable>--; <variable> = <variable> - 1;

Examples:
int x = 2;
x++; // x = x + 1;
// x now stores 3

double gpa = 2.5;
gpa++; // gpa = gpa + 1;
// gpa now stores 3.5
37
if/else statements
38
The if statement
if statement: A control structure that executes a block of
statements only if a certain condition is true.

General syntax:
if (<test>) {
<statement(s)>;
}

Example (with grade inflation):
if (gpa >= 2.0) {
System.out.println("You get an A!");
}
39
if statement flow chart
40
The if/else statement
if/else statement: A control structure that executes one block of
statements if a certain condition is true, and a second block of
statements if it is false. We refer to each block as a branch.

General syntax:
if (<test>) {
<statement(s)>;
} else {
<statement(s)>;
}

Example:
if (gpa >= 3.0) {
System.out.println("Welcome to Temple!");
} else {
System.out.println("Try applying to Penn.");
}
41
if/else statement flow chart
42
Chained if/else statements
Chained if/else statement: A chain of if/else that can select
between many different outcomes based on several tests.
General syntax:
if (<test>) {
<statement(s)>;
} else if (<test>) {
<statement(s)>;
} else {
<statement(s)>;
}
Example:
if (number > 0) {
System.out.println("Positive");
} else if (number < 0) {
System.out.println("Negative");
} else {
System.out.println("Zero");
}
43
Chained if/else flow chart
if (<test>) {
<statement(s)>;
} else if (<test>) {
<statement(s)>;
} else {
<statement(s)>;
}
44
Chained if/else if flow chart
if (<test>) {
<statement(s)>;
} else if (<test>) {
<statement(s)>;
} else if (<test>) {
<statement(s)>;
}
45
Boolean Arithmetic
46
The boolean Type
The boolean type has two possible values:
true and false


boolean variables are declared and initialized
just like other primitive data types:

boolean iAmSoSmrt = false; //just like int i = 2;

boolean minor = (age < 21); //just like int x = y*2;

47
Relational expressions
Relational expressions have
numeric arguments and
boolean values.
They use one of the following six relational operators:
true 5.0 >= 5.0
greater than or equal to
>=
false 126 <= 100
less than or equal to
<=
true 10 > 5
greater than
>
false 10 < 5
less than
<
true 3.2 != 2.5
does not equal
!=
true 1 + 1 == 2
equals
==
Value Example Meaning Operator
48
Evaluating Relational expressions
Relational operators have lower precedence than math
operators.
5 * 7 >= 3 + 5 * (7 - 1)
5 * 7 >= 3 + 5 * 6
35 >= 3 + 30
35 >= 33
true

Relational operators cannot be chained (unlike math
operators)
2 <= x <= 10
true <= 10
error!
49
Logical operators
Logical operators have
boolean arguments and
boolean values
!(7 > 0)
(2 == 3) || (-1 < 5)
(9 != 6) && (2 < 3)
Example
not
or
and
Description
!
||
true

&&
Result Operator
50
What is the result of each of the following expressions?
int x = 42;
int y = 17;
int z = 25;

y < x && y <= z
x % 2 == y % 2 || x % 2 == z % 2
x <= y + z && x >= y + z
!(x < y && x < z)
(x + y) % 2 == 0 || !((z - y) % 2 == 0)

Answers: true, false, true, true, false
Boolean expressions
Class Constants
A class constant is a variable
whose scope is the entire class, and
whose value can never change after it has
been initialized.

To give it the right scope, simply declare it right
inside the class:

public class MyClass {
public static final int myConstant = 4;
}

The final keyword means its value cant be changed.
52
The for loop
53
Looping via the for loop
for loop: A block of Java code that executes a group of statements
repeatedly until a given test fails.

General syntax:
for (<initialization>; <test>; <update>) {
<statement>;
<statement>;
...
<statement>;
}

Example:
for (int i = 1; i <= 30; i++) {
System.out.println("I will not throw...");
}
54
Control Structure
The for loop is a control structurea syntactic
structure that controls the execution of other
statements.

Example:
Shampoo hair. Rinse. Repeat.
55
for loop over range of ints
We'll write for loops over integers in a given range.
The <initialization>declares a loop counter variable that is used in the test,
update, and body of the loop.

for (int <name> = 1; <name> <= <value>; <name>++) {

Example:
for (int i = 1; i <= 4; i++) {
System.out.println(i + " squared is " + (i * i));
}

Output:
1 squared is 1
2 squared is 4
3 squared is 9
4 squared is 16
56
for loop flow diagram
for (<init>; <test>; <update>) {
<statement>;
<statement>;
...
<statement>;
}
57
Loop walkthrough
Code:
for (int i = 1; i <= 3; i++) {
System.out.println(i + " squared is " + (i * i));
}

Output:
1 squared is 1
2 squared is 4
3 squared is 9
i:
58
Loop example
Code:
System.out.println("+----+");
for (int i = 1; i <= 3; i++) {
System.out.println("\\ /");
System.out.println("/ \\");
}
System.out.println("+----+");


Output:
+----+
\ /
/ \
\ /
/ \
\ /
/ \
+----+
59
Varying the for loop
The initial and final values for the loop counter variable can be arbitrary
expressions:

Example:
for (int i = -3; i <= 2; i++) {
System.out.println(i);
}

Output:
-3
-2
-1
0
1
2

Example:
for (int i = 1 + 3 * 4; i <= 5248 % 100; i++) {
System.out.println(i + " squared is " + (i * i));
}
60
Varying the for loop
The update can be a -- (or any other operator).
Caution: This requires changing the test from <= to >= .

System.out.println("T-minus");
for (int i = 3; i >= 1; i--) {
System.out.println(i);
}
System.out.println("Blastoff!");

Output:
T-minus
3
2
1
Blastoff!

61
Errors in coding
ERROR: Loops that never execute.

for (int i = 10; i < 5; i++) {
System.out.println("How many times do I print?");
}

ERROR: Loop tests that never fail.
A loop that never terminates is called an infinite loop.

for (int i = 10; i >= 1; i++) {
System.out.println("Runaway Java program!!!");
}
62
Nested for loops
nested loop: Loops placed inside one another.
Caution: Make sure the inner loop's counter variable has a different name!

for (int i = 1; i <= 3; i++) {
System.out.println("i = " + i);
for (int j = 1; j <= 2; j++) {
System.out.println(" j = " + j);
}
}

Output:
i = 1
j = 1
j = 2
i = 2
j = 1
j = 2
i = 3
j = 1
j = 2
63
Nested loops example
Code:
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 10; j++) {
System.out.print((i * j) + " ");
}
System.out.println(); // to end the line
}

Output:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
64
Nested loops example
Code:
for (int i = 1; i <= 6; i++) {
for (int j = 1; j <= 10; j++) {
System.out.print("*");
}
System.out.println();
}

Output:
**********
**********
**********
**********
**********
**********
65
Nested loops example
Code:
for (int i = 1; i <= 6; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}

Output:
*
**
***
****
*****
******

66
Nested loops example
Code:
for (int i = 1; i <= 6; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(i);
}
System.out.println();
}

Output:
1
22
333
4444
55555
666666

67
Nested loops example
Code:
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= (5 - i); j++) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print(i);
}
System.out.println();
}

Output:
1
22
333
4444
55555
68
Exercise: Nested loops
What nested for loops produce the following output?




....1
...2
..3
.4
5

Key idea:
outer "vertical" loop for each of the lines
inner "horizontal" loop(s) for the patterns within each line

inner loop (repeated characters on each line)




outer loop (loops 5 times because there are 5 lines)
69
Nested loops
First, write the outer loop from 1 to the number of lines desired.

for (int line = 1; line <= 5; line++) {
...
}

Notice that each line has the following pattern:
some number of dots (0 dots on the last line)
a number

....1
...2
..3
.4
5
70
Nested loops
Make a table:
....1
...2
..3
.4
5

Answer:
for (int line = 1; line <= 5; line++) {
for (int j = 1; j <= (line * -1 + 5); j++) {
System.out.print(".");
}
System.out.println(line);
}
0
1
2
3
4
line * -1 + 5
4 1 4
0
2
3
4
# of dots
5
3
2
1
value displayed
5
3
2
1
line
71
Errors in coding
ERROR: Using the wrong loop counter variable.

What is the output of the following piece of code?
for (int i = 1; i <= 10; i++) {
for (int j = 1; i <= 5; j++) {
System.out.print(j);
}
System.out.println();
}

What is the output of the following piece of code?
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 5; i++) {
System.out.print(j);
}
System.out.println();
}
72
while loops
73
Definite loops
definite loop: A loop that executes a known number of
times.
The for loops we have seen so far are definite loops.

We often use language like
"Repeat these statements N times."
"For each of these 10 things, "

Examples:
Print "hello" 10 times.
Find all the prime numbers up to an integer n.
74
Indefinite loops
indefinite loop: A loop where it is not obvious in advance
how many times it will execute.

We often use language like
"Keep looping as long as or while this condition is still true."
"Don't stop repeating until the following happens."

Examples:
Print random numbers until a prime number is printed.
Continue looping while the user has not typed "n" to quit.
75
while loop
while loop: A control structure that repeatedly performs a test and
executes a group of statements if the test evaluates to true.

while loop, general syntax:
while (<test>) {
<statement(s)>;
}

Example:
int number = 1;
while (number <= 200) {
System.out.print(number + " ");
number *= 2;
}

Output:
1 2 4 8 16 32 64 128
76
while loop flow chart
77
Example
Finds and prints a number's first factor other than 1:

Scanner console = new Scanner(System.in);
System.out.print("Type a number: ");
int number = console.nextInt();
int factor = 2;
while (number % factor != 0) {
factor++;
}
System.out.println("First factor: " + factor);

Sample run:
Type a number: 91
First factor: 7
78
for vs. while
Any for loop of the following form:

for (<initialization>; <test>; <update>) {
<statement(s)>;
}

is equivalent to a while loop of the following form:

<initialization>;
while (<test>) {
<statement(s)>;
<update>;
}
79
for vs. while: Example
What while loop is equivalent to the following for loop?
for (int i = 1; i <= 10; i++) {
System.out.println(i + " squared = " + (i * i));
}

Solution:
int i = 1;
while (i <= 10) {
System.out.println(i + " squared = " + (i * i));
i++;
}
80
Exercise: digitSum
Write a class named DigitSum that reads an integer from
the user and prints the sum of the digits of that number.
You may assume that the number is non-negative.

Example:
Enter a nonnegative number: 29107
prints 2+9+1+0+7 or 19

Hint: Use the % operator to extract the last digit of a
number. If we do this repeatedly, when should we stop?
81
Solution: digitSum
import java.util.Scanner;
public class DigitSum {
public static void main(String [] args) {
Scanner keyboard = new Scanner(System.in);
int n = keyboard.nextInt();
int sum = 0;
while (n > 0) {
sum += n % 10; // add last digit to sum
n = n / 10; // remove last digit
}
System.out.println(sum = + sum);
}
}
82
Random numbers
83
The Random class
Objects of the Random class generate pseudo-random
numbers.
Class Random is found in the java.util package.
import java.util.*;

The methods of a Random object
returns a random real number in the range [0.0, 1.0)
nextDouble()
returns a random integer in the range [0, max)
in other words, from 0 to one less than max
nextInt(max)
returns a random integer
nextInt()
Description Method name
84
Generating random numbers
Random rand = new Random();
int randomNum = rand.nextInt(10);
// randomNum has a random value between 0 and 9

What if we wanted a number from 1 to 10?
int randomNum = rand.nextInt(10) + 1;

What if we wanted a number from min to max (i.e. an
arbitrary range)?
int randomNum = rand.nextInt(<size of the range>) +
<min>

where <size of the range>equals (<max> - <min> + 1)
85
Random questions
Given the following declaration, how would you get:
Random rand = new Random();

A random number between 0 and 100 inclusive?



A random number between 1 and 100 inclusive?



A random number between 4 and 17 inclusive?

86
Random solutions
Given the following declaration, how would you get:
Random rand = new Random();

A random number between 0 and 100 inclusive?
int random1 = rand.nextInt(101);


A random number between 1 and 100 inclusive?
int random1 = rand.nextInt(100) + 1;


A random number between 4 and 17 inclusive?
int random1 = rand.nextInt(14) + 4;
87
Exercise: Die-rolling
Write a program that simulates the rolling of two six-sided
dice until their combined result comes up as 7.

Sample run:
Roll: 2 + 4 = 6
Roll: 3 + 5 = 8
Roll: 5 + 6 = 11
Roll: 1 + 1 = 2
Roll: 4 + 3 = 7
You won after 5 tries!
88
Solution: Die-rolling
import java.util.*;

public class Roll {
public static void main(String[] args) {
Random rand = new Random();

int sum = 0;
int tries = 0;
while (sum != 7) {
int roll1 = rand.nextInt(6) + 1;
int roll2 = rand.nextInt(6) + 1;
sum = roll1 + roll2;
System.out.println("Roll: " + roll1 + " + " + roll2 + " = " + sum);
tries++;
}

System.out.println("You won after " + tries + " tries!");
}
}
89
Indefinite loop
variations
90
Variant 1: do/while
do/while loop: A control structure that executes statements
repeatedly while a condition is true, testing the condition at the end
of each repetition.

do/while loop, general syntax:
do {
<statement(s)>;
} while (<test>);

Example:
// roll until we get a number other than 3
Random rand = new Random();
int die;
do {
die = rand.nextInt();
} while (die == 3);
91
do/while loop flow chart
How does this differ from
the while loop?
The controlled
<statement(s)>will
always execute the first
time, regardless of
whether the <test>is
true or false.
92
Variant 2: "Forever" loops
Loops that go on forever

while (true) {
<statement(s)>;
}

If it goes on forever, how do you stop?
93
breaking the cycle
break statement: Immediately exits a loop (for, while,
do/while).

Example:
while (true) {
<statement(s)>;
if (<test>) {
break;
}
<statement(s)>;
}

Why is the break statement in an if statement?
94
Scanner objects
95
Interactive programs
We have written programs that print console output.

It is also possible to read input from the console.
The user types the input into the console.
The program uses the input to do something.
Such a program is called an interactive program.
96
Scanner
Constructing a Scanner object to read the console:
Scanner <name> = new Scanner(System.in);

Example:
Scanner console = new Scanner(System.in);
97
Scanner methods
Some methods of Scanner:





Each of these methods pauses your program until
the user types input and presses Enter.
Then the value typed is returned to your program.

reads and returns user input as a double nextDouble()
reads and returns user input as an int nextInt()
reads and returns user input as a String next()
Description Method
98
Using a Scanner object
Example:

System.out.print("How old are you? "); // prompt
int age = console.nextInt();
System.out.println("You'll be 40 in " + (40 -
age)
+ " years.");

prompt: A message printed to the user, telling them
what input to type.
99
Input tokens
token: A unit of user input, as read by the Scanner.
Tokens are separated by whitespace (spaces, tabs, new lines).
How many tokens appear on the following line of input?
23 John Smith 42.0 "Hello world"

When the token doesn't match the type the Scanner tries to read,
the program crashes.
Example:
System.out.print("What is your age? ");
int age = console.nextInt();

Sample Run:
What is your age? Timmy
InputMismatchException:
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
...
100
Importing classes
Java class libraries: A large set of Java classes available
for you to use.
Classes are grouped into packages.
To use the classes from a package, you must include an
import declaration at the top of your program.
Scanner is in a package named java.util

Import declaration, general syntax:
import <package name>.*;

To use Scanner, put this at the start of your program:
import java.util.*;
101
A complete program
import java.util.*; // so that I can use Scanner

public class ReadSomeInput {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);

System.out.print("What is your first name? ");
String name = console.next();

System.out.print("And how old are you? ");
int age = console.nextInt();

System.out.println(name + " is " + age + ". That's quite old!");
}
}

Sample Run:
What is your first name? Marty
How old are you? 12
Marty is 12. That's quite old!
102
Another complete program
import java.util.*; // so that I can use Scanner

public class Average {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);

System.out.print("Please type three numbers: ");
int num1 = console.nextInt();
int num2 = console.nextInt();
int num3 = console.nextInt();

double average = (num1 + num2 + num3) / 3.0;
System.out.println("The average is " + average);
}
}

Sample Run:
Please type three numbers: 8 6 13
The average is 9.0

Notice that the Scanner can read multiple values from one line.

Das könnte Ihnen auch gefallen