Outline
Distinguish the syntactical parts of a program
• Tokens: special symbols, literals, identifiers,
• Output with System.out.println
• An executable program as a Java class with a
main method
Introduce two of Java's primitive types: int and double
Preview: A Complete Java program import java.util.Scanner;
// Read number from user and then display its squared value
public class ReadItAndSquareIt {
public static void main(String[] args) {
double x;
double result = 0.0;
Scanner keyboard = new Scanner(System.in);
// 1. Input
System.out.print("Enter a number: ");
x = keyboard.nextDouble();
// 2. Process
result = x * x;
// 3. Output
System.out.println(x + " squared = " + result);
}
}
Programs have 4 types of tokens
The Java source code consists of
1) special symbols + < = >= && ||
2) identifiers customerName totalBill n
3) reserved identifiers int while if void
4) literals 123 "A String" true
These tokens build bigger things like variables,
expressions, statements, methods, and classes.
Also, comments exist for humans to read// Document your code if it is unreadable :-(
Overloaded Symbols
Some special symbols are operators and have different things in different contexts
• with two integers, + sums integers
2 + 5 evaluates to the integer 7
• with two floating point literals, + sums to floating point (types make a difference)
2.0 + 5.0 evaluates to 7.0
• with two strings, + concatenates
"2" + "5" evaluates to the new string "25"
Identifiers
An identifier is a collection of certain characters
that could mean a variety of things
There are some identifiers that are Java defines:
sqrt String Integer System in out
We can make up our own new identifiers
test1 lastName dailyNumber MAXIMUM $A_1
Valid identifiers
Identifiers have from 1 to many characters: 'a'..'z', 'A'..'Z', '0'..'9', '_', $
• Identifiers start with letter a1 is legal, 1a is not
• can also start with underscore or dollar sign: _ $
• Java is case sensitive. A and a are different
Which letters represent valid identifiers?a) abc d) $$$ i) a_1
b) m/h e) 25or6to4 j) student Number
c) main f) 1_time k) String
Reserved Identifiers (keywords)
A keyword is an identifier with a pre-defined
meaning that can't be changed it's reserved
double int
Other Java reserved identifiers not a complete list
boolean default for new
break do if private
case double import public
catch else instanceOf return
char extends int void
class float long while
Literals -- Java has 6
Floating-point literals1.234 -12.5 1.2 3. .4 1e10 0.1e-5
String literals "characters between double quotes" "'10" "_"
Integer literals (Integer.MIN_VALUE and Integer.MIN_VALUE)
-1 0 1 -2147483648 2147483647
Boolean literals (there are only two)true false
Null (there is only this one value)null
Character literals
'A' 'b' '\n' '1' ' '
Comments
• Provide internal documentation to explain program
• Provide external documentation with javadoc
• Helps programmers understand code--including
their own
• There are three type of comments// on one line, or
/*
between slash star and star slash
you can mash lines down real far, or
*/
/**
* javadoc comments for external documentation
* @return The square root of x
*/
public static double sqrt(double x)
General Forms
The book uses general forms to introduce parts of
the Java programming language
General forms provide information to create
syntactically correct programs
• Anything in yellow boldface must be written exactly
as shown (println for example)
• Anything in italic represents something that must be
supplied by the user
• The italicized portions are defined elsewhere
Output Statements
A statement, made up of tokens, is code that causes
something to happen while the program runs
General Forms for three output statementsSystem.out.print( expression );
System.out.println();
System.out.println( expression );
Example Java code that writes text to the consoleSystem.out.print("hello world.");
System.out.println(); // print a blank line
System.out.println("Add new line after this");
General Form: A Java program
// This Java code must be in a file named class-name.java
public class class-name {
public static void main(String[] args) {
statement(s)}
}
// Example Program stored in the file HelloWorld.java
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter your name: ");
String myName = keyboard.next(); // keyboard input
System.out.println("Hi Rick");
System.out.println("This is " + myName);
}
}
Primitive Numeric Types
Type: A set of values with associated operations
Java has many types, a few for storing numbers
• Stores integers in int variables
• Store floating-point numbers in double variables
A few operations for numeric types
• Assignment Store a new value into a variable
• Arithmetic +, -, * (multiplication), and /
Variables to store numbers
To declare and give initial value:
type identifier = initial-value;
Examplesint creditsA = 4;
double gradeA = 3.67;
String name = "Chris";
int hours = 10;
boolean ready = hours >= 8;
Assignment
We change the values of variables with assignment
operations of this general form
variable-name = expression;
Examples:
double x; // Undefined variables
int j; // can not be evaluated
j = 1;
x = j + 0.23;
Memory before and after
The primitive variables x and j are undefined at first
Variable Initial Assigned
Name Value Value
j ? 1
x ? 1.23
The expression to the right of = must be a value that
the variable can store assignment compatible
x = "oooooh nooooo, you can't do that"; // <-Error
j = x; // <-Error, can't assign a float to an int
? means undefined
Assignment
double bill;
What is value for bill now? _________
bill = 10.00;
bill = bill + (0.06 * bill);
What is value for bill now? ________
Which letters represent valid assignments given these 3
variable initializations?
String s = "abc";
int n = 0;
double x = 0.0;
a) s = n; e) n = 1.0;
b) n = x; f) x = 999;
c) x = n; g) s = "abc" + 1;
d) s = 1; h) n = 1 + 1.5;
Arithmetic Expressions
Arithmetic expressions consist of operators
such as + - / * and operands such as 40, 1.5,
payRate and hoursWorked
Example expression used in an assignment:grossPay = payRate * hoursWorked;
Another example expression:5 / 9 * (fahrenheit - 32);
For the previous expression, Which are the operators?_____ Which are the operands?_____
Arithmetic Expressions
a numeric variable double x = 1.2;
or a numeric constant 100 or 99.5
or expression + expression 1.0 + x
or expression - expression 2.5 - x
or expression * expression 2 * x
or expression / expression x / 2.0
or (expression) (1 + 2.0)
Arithmetic expressions take many forms
Precedence of Arithmetic Operators
Expressions with more than one operator require some sort of precedence rules:* / evaluated in a left to right order- + evaluated in a left to right order in the absence of parentheses
Evaluate 2.0 + 4.0 - 6.0 * 8.0 / 6.0
Use (parentheses) for readability or to intentionally alter an expression:double C, F;
F = 212.0;
C = 5.0 / 9.0 * (F - 32);
What is the current value of C ____?
Math functions
Java’s Math class provides a collection of mathematical and trigonometric functions
Math.sqrt(16.0) returns 4.0
Math.min(-3, -9) returns -0
Math.max(-3.0, -9.0) returns -3.0
Math.abs(4 - 8) returns 4
Math.floor(1.9) returns 1.0
Math.pow(-2.0, 4.0) returns 16.0
int Arithmetic
int variables are similar to double, except they can only store whole numbers (integers)int anInt = 0;
int another = 123;
int noCanDo = 1.99; // ERROR
Division with integers is also different
• Performs quotient remainder whole numbers only
anInt = 9 / 2; // anInt = 4, not 4.5
anInt = anInt / 5; What is anInt now? ___
anInt = 5 / 2; What is anInt now? ___
The integer % operation
The Java % operator returns the remainder
anInt = 9 % 2; // anInt ___1___
anInt = 101 % 2; What is anInt now? ___
anInt = 5 % 11; What is anInt now? ___
anInt = 361 % 60; What is anInt now? ___
int quarter;
quarter = 79 % 50 / 25; What is quarter? ___
quarter = 57 % 50 / 25; What is quarter now? ___
Recommended