Introduction to Primitives

advertisement
Introduction to Primitives
Overview
• Today we will discuss:
– The eight primitive types,
especially int and double
– Declaring the types of variables
– Operations on primitives
– The assignment statement
– How to print results
Primitives
• Primitives are the "basic" data values
• There are eight types of primitives:
– boolean -- used for true and false values
– char -- used for single characters (letters, etc.)
– byte, short, int, long -- four different kinds
of integer (whole number) values
– float, double -- two different kinds of decimal
numbers (numbers with a decimal point)
int
• The most important integer type is int
– An int is a "whole" number (no decimal point)
• Numbers occupy memory in the computer
– Larger numbers require more memory
– An int can be between about two billion (two
thousand million) and negative two billion
• If you just write a number, such as 25, Java
assumes it is an int
• Use int in preference to other integer types
byte and short
• A byte can be between -128 and 127
• A short can be -32768 to 32767
• Why these numbers?
– I’ll answer that later in the course
• Use byte or short only when
– You know the numbers are all small
– There are millions of numbers to remember
• Extra syntax is needed (will be discussed later)
long
• long integers are for when two billion isn’t
large enough for your needs
–
–
–
–
a long can be as long as about 19 digits
a long occupies twice as much space as an int
arithmetic on long values is slower
use only when you need really big numbers
– Extra syntax is needed (will be discussed later)
• Even larger numbers are available in Java-but they are objects, not primitives
double
• A double represents a “real” number
– Also sometimes called “floating point”
– These are numbers with a decimal point
• A double has about 15 digits of accuracy
• If you just write a real number, such as
1.37, Java assumes it is a double
• Use double in preference to float
float
• float is the other kind of “real,” or “floating
point” number
• float has about 8 digits of accuracy
• Arithmetic with float is not faster
• Use float only to save space when there are
millions of numbers involved
• Extra syntax is needed (will be discussed later)
An aside: approximations
• Integers are precise, but real numbers are
always approximate (inaccurate)
• Two numbers that look the same may
actually be subtly different
• Never test floating point numbers for
equality!
– Only test for larger or smaller, or for “not
larger” or “not smaller”
Giving names to numbers
• Sometimes you know what a number is
–
–
–
–
You have 10 fingers
π is 3.1415926536
Numbers written like this are called literals
You can use literals anyplace in Java
• Sometimes you need to use names instead:
– classSize, myBankBalance, price
– Names like this are called variables
– The value of a variable may change
Variables
• Before you use a variable, you must declare it
(tell Java what type it is)
• There are two reasons for this:
– Different types require different amounts of space
– So Java can prevent you from doing something
meaningless (adding 5 to a frog)
• You must also tell Java what its value is
– You might compute the value, or read it in
Declaring variables
• You declare variables like this:
int classSize;
double myBankBalance;
• When you declare a variable to be a
primitive type, Java automatically finds
space for it
– The amount of space Java needs to find
depends on the type of the variable
– Think of a variable as a specially shaped “box”
Giving values to variables
• A variable is just a name for some value
– You have to supply the actual value somehow
– Java tries to prevent you from using a variable
that you haven’t given a value
• You can assign values like this:
classSize = 57;
myBankBalance = 123.01; // no "$"!
Initializing variables
• You can give a variable an initial value when you
declare it:
int classSize = 30;
double myBankBalance = 0.0;
• You can change the value of a variable many times:
classSize = 57;
myBankBalance = myBankBalance + 50.00;
Arithmetic
• Primitives have operations defined for them
• int and double have many defined
operations, including
+ for addition
- for subtraction
* for multiplication
(Old computers did not have the
/ for division

character)
Order of precedence
• Operations with higher precedence are done
before operations with lower precedence
• Multiplication and division are done before
addition and subtraction
2 + 3 * 4 is 14, not 20
• Operations of equal precedence are done
left to right
10 - 5 - 1 is 4, not 6
Parentheses
• Operations inside parentheses are done first
(2 + 3) * 4 is 20
• Parentheses are done from the inside out
24/(3*(10-6)) is 24/(3*4) is 24/12 is 2
• Parentheses can be used where not needed
2 + (3 * 4) is the same as 2 + 3 * 4
• [ ] and { } cannot be used as parentheses!
Assignment statements
• An assignment statement has the form:
variable = expression ;
• Examples:
price = 0.69;
area = pi * radius * radius;
classSize = classSize + 1;
• this means “add one to the value in classSize”
Printing out results, part 1
• In Java, “print” really means “display in a
window on the screen”
– Printing on actual paper is much harder!
• There are two commands for printing:
– System.out.print(x);
• displays x
– System.out.println(x);
• (pronounced “printline”)
displays x, then goes to the next line
Printing out results, part 2
• Examples:
System.out.print("The sum of x and y is ");
System.out.println(x + y);
• If x and y are both 5, the result will be
The sum of x and y is 10
• If you print from an application, an output window
opens automatically
• If you print from a browser applet, you have to open
the “Java Console” window to see your output
A BASIC program
• Here is a program, written in the BASIC
language, to add two numbers and print out
the result:
PRINT 2+2
A Java program
• Here is the same program, written in Java:
public class TwoPlusTwo {
public static void main(String args[]) {
System.out.println(2 + 2);
}
}
Why is Java so hard?
• BASIC is a beginner’s language, designed for
small programs
• Java is a professional’s language, designed for
large programs
• Just as a skyscraper needs a better foundation
than a doghouse, Java programs need more
structural support
• Java isn’t the best language for everything
New vocabulary
• primitive: one of the 8 basic kinds of values
• literal: an actual specified value, such as 42
• variable: the name of a “box” that can hold
a value
• type: a kind of value that a literal has or that
a variable can hold
• declare: to specify the type of a variable
More new vocabulary
• operation: a way of computing a new value
from other values
• precedence: which operations to perform
first (which operations precede which other
operations)
• assignment statement: a statement that
associates a value with a name
• initialize: to assign a “starting” value
The End
Download