Java Elements

advertisement
Java Program Structure
• Execution begins with first statement in main()
• Every Java program MUST have a static method called main( )!
public static void main(String[] args)
{
…
}
Java Elements
1
Data and Data Types
• all data must have a data type
• data type determines:
– internal representation and storage size.
– Range of values
– processing/operations
Java Elements
2
Variables
• All Java identifiers must be declared before they
are used
• Declarations - create and labels storage
• Memory location assigned
• Declare one variable per line
• type
name;
–
–
–
–
int
int
int
int
a;
a,b;
a;
b;
// preferable
Java Elements
3
Primitive Types
Type
Description
Example
int
Integers
(whole
numbers)
Real numbers
45,
-6,
29987
double
char
boolean
0,
7.86, -19.234
Single
'a', 'X', '?'
characters
Logical values True, false
Java Elements
4
integer data type
• int
• whole numbers and their negatives in the range
allowed by your computer, no decimal point
– 5,-99,3456
examples:
int x;
int y;
int total;
int keys;
Java Elements
5
boolean
• true or false
• Example:
boolean done;
done = true;
Java Elements
6
char
• one character
– a letter, a digit, or a special symbol
• sample values:
– 'A', 'B', 'a', 'b', '1', '2', '+', '-', '$', '#', '?', '*', etc
• Unicode
• Each character is enclosed in single quotes.
• The character '0' is different than the integer 0.
Java Elements
7
char
• Example
char letter;
letter = 'A',
Java Elements
8
Real numbers
• Numbers with decimals
• For very large numbers or very small fractions
3.67 * 1017 = 367000000000000000.0 = 3.67E17
5.89 * 10-6 = 0.00000589 = 5.89E-6
• Scientific notation/floating point notation
– e stands for exponent and means "multiply by 10 to
the power that follows“
• Examples:
5.274
.95
550.
9521e-3 -95e-1 95.213e2
Java Elements
9
• float
– 4 bytes
– -3.4E+38 – 3.4E+38
– 6- 7 significant digits
– Single precision
– Use if size is an issue
• double
– 8 bytes
– -1.7E+308 – 1.7E+308
– 15 significant digits
– Double precision
– Use if precision is an issue, i.e currency
Java Elements
10
double
• Example:
double price;
double velocity;
price = 10.6;
velocity = 47.63555;
Java Elements
11
Initialization
• give a variable a value to start with
• can initialize in declaration
int a = 1;
int alpha = 32;
int stars = 15;
int count = 0;
// the following example is legal in java, but
// violates security guidelines
int length, width = 5; // only width is initialized
// and now we see why
Java Elements
12
Constants
• cannot be changed
• class constant – can be accessed anywhere
in the class
• Make programs easier to read
• Makes value easier to change
• Generally declare outside of method
Java Elements
13
Declaring constants
• final type name = value; //local
• public static final type name = value; //global
public static final double PI = 3.14159;
public static final char BLANK = ' ';
public static final double INT_RATE = 0.12;
• use all caps and underscore
Java Elements
14
Assignment
• variable = expression;
• different than equality
– How it works: First the expression on the righthand side is evaluated and then the resulting
value is stored in the variable (in memory) on the
left-hand side of the assignment operator.
• variable is the name of a physical location in
computer memory
• an expression may be
• a constant, or
• a variable
• a formula to be evaluated
Java Elements
15
Expressions
• Simple value or set of operations that
produces a value
• literal
– 24 or -3.67
• Evaluation – obtain value of expression
• Operator
– A symbol used to indicate an operation to be
performed on one or more values
Java Elements
16
Arithmetic operators
Operator Meaning
Example
Result
+
addition
2+2
4
-
Subtraction
53 - 18
35
*
Multiplication 3 * 8
24
/
Division
4.8 / 2.0
2.4
%
Remainder
25 % 6
1
Java Elements
17
Integer division
=> Rounds towards 0
3 /4 => 0
19 / 5 => 3
5/3 => 1
• Division by zero is illegal and an ArithmeticException is
thrown
• Security issue
– If the dividend is the negative integer of largest possible
magnitude for its type, and the divisor is -1, then integer
overflow occurs and the result is equal to the dividend.
– No exception is thrown in this case
Java Elements
18
Modulus
Remainder
28 % 7 => 0
19 % 5 => 4
25 % 2 => 1
 Testing for even or odd
• Number % 2 = 0 for evens
 Finding individual digits of a number
• Number % 10 is the final digit
 Also works for floats
Java Elements
19
Combined Assignment Operators
•
•
•
•
•
•
•
number = number + 5;  number += 5;
number = number * 10;  number *= 10;
+=
-=
*=
/=
%=
Java Elements
20
Increment and Decrement
• Increment ++
x = x+ 1;
++x;
x++;
• Decrement ---x;
x--;
Java Elements
21
Increment and Decrement
• Prefix: ++x => increment x before using it
– Generally more efficient than postfix
• Postfix: x++ => increment x after using value
• Standalone, result is the same
– ++x;
– x++;
• You see the behavior when used in expressions
x = 5;
y = 5;
System.out.println(++x + “ “ + y++);
//outputs 6 and 5
// final value of x and y is 6
Java Elements
22
Precedence
• Orders of operation
• "who goes first" when expressions have multiple
operators
• rules are similar to rules used in algebra
• () parentheses will override the precedence rules
• When operators have same precedence, operations
are performed left to right
Java Elements
23
Java Operator Precedence
Description
Operators
Unary operators
+, -
Multiplicative operators *, /, %
Additive operators
+, -
Java Elements
24
Precedence
•
•
•
•
3 + 5 + 6 / 2 => 11
(3 + 5 + 6)/2 => 14
Left to right
40 – 25 - 9 =>
(40-25) – 9 => 15 – 9 => 6
EXAMPLE:
13 * 2 + 239 / 10 % 5 – 2 * 2 => 25
Java Elements
25
Mixing Types and Casting
• explicit conversion of a value from one
data type to another.
• (type) variable
• Example:
– (int) 2.5 /.15 //converts 2.5 to int
– (int) (2.5 /.15) //converts result to int
Java Elements
26
Assignment examples
int stamp;
int answer;
Int widget;
char letter;
stamp = 14;
// valid
14 = stamp;
// invalid
answer = stamp;
widget = stamp * 3;
letter = 'a';
letter = "alpha"; // invalid
Java Elements
27
Intro to Strings
•
•
•
•
•
String not built into Java
String is a class
Part of java.lang class
Automatically imported
Declare:
– String object; // note caps
• String name = "Tom Jones";
• String s1 = "Hello”;
• String s2 = "World!";
Java Elements
28
Strings
• Strings can be created implicitly by using a quoted string
– String s1 = "Hello”;
– String s2 = "World!";
• or, by using + on two String objects to create a new one
– String combo = s1 + " " + s2;
Java Elements
29
String methods
• <variable>.<method name>(<expression>,<expression>,…,<expression>)
– any String method requiring an index will throw an
IndexOutOfBoundsException if 0 > index > length()-1
– String s1 = "Hello”;
– String s2 = "World!";
– length(); - returns length of string
– System.out.println("Length of s1 = " + s1.length());
 Length of s1 = 5
• Index – integer used to indicate location
•
Zero-based-
– charAt(0) => returns 1st character
Java Elements
30
Console Input
• Scanner is a class
• Need to import java.util
import java.util.*; //allows use of Scanner class
Scanner console = new Scanner (System.in);
• Creates object console (can use any identifier name)
• Associates console with standard input device
• System.in – standard input device
Java Elements
31
Console input
•
•
•
•
console.nextInt()
// retrieves next item as an integer
console.nextDouble() //retrieves next item as double
console.next()
//retrieves next item as string
console.nextLine() // retrieves next item as string up to
newline
• ch = console.next().charAt(0); // reads a single
character
• Inappropriate type -> exception
Java Elements
32
import java.util.*;
public class BMICalculator
{
public static void main(String [] args)
{
double height;
double weight;
double bmi;
Scanner console = new Scanner(System.in);
System.out.println("Enter height");
height = console.nextDouble();
System.out.println("Enter weight");
weight = console.nextDouble();
bmi = weight/(height * height) * 703;
System.out.println("Current BMI:");
System.out.println(bmi);
}
}
Java Elements
33
Output
• System.out – standard output device
• System.out.print(expression);
• System.out.println(expression);//goes to next line
• System.out.println();//blank line
Java Elements
34
Packages, Classes, Methods, import
• Few operations defined in Java
• Many methods & identifiers are defined in packages
• Class – set of related operations, allows users to create
own type
• Method – set of instructions designed to accomplish a
specific task
• Package – collection of related classes
– java.util, contains class Scanner and methods nextInt, etc.
import packageName.*;
Import java.util.*; // compiler determines relevant classes
import java.util.Scanner;
Java Elements
35
Creating a Java Application program
• Program consists of one or more classes
• Declare variables inside method
• Declare named constants and input stream
objects outside of main
Java Elements
36
Java application program
import statements if any
public class ClassName
{
declare names constants and/or stream objects
public static void main(String[] args)
{
variable declarations
executable statements
}
}
Java Elements
37
Programming Style and Form
• Use of blanks
– Separate numbers when data is input
– Use blank lines to separate data and code
•
•
•
•
All Java statements must end with a semicolon
Use uppercase for constants
Begin variables with lowercase
For run-together-words, capitalize each new
word
Java Elements
38
Programming Style and Form, cont’d
• Use clearly written prompt lines
System.out.println(“Please enter a number between 1 and 10 and “ + “press Enter”);
• Use comments to document
• Use proper indentation and formatting
Java Elements
39
Download