Primitive Types and Arithmetic Operations

Download Report

Transcript Primitive Types and Arithmetic Operations

Primitive Data Types and Arithmetic
Operations
CS0007: Introduction to Computer Programming
Review
 The console or console screen is…
 a screen where the input and output is simple text.
 When using the console for output, it is said that you are using
the…
 standard output device.
 The Java Application Programmer Interface (API) is…
 a standard library of prewritten classes for performing specific
operations.
 print
 print some text to the screen
 println
 print some text to the screen and add a new line character at the end (go to
the next line).
Review
 print and println are contained in the…
 out object
 The out object is contained in the…
 System class
 Escape Sequences…
 allow a programmer to embed control characters or reserved characters into
a string. In Java they begin with a backslash and then are followed by a
character.
 A variable is…
 a named storage location in the computer’s memory.
 Variables have 3 characteristics:
 Name – the name we use in our code to refer to the memory location.
 Type – characteristic that defines what legal values the variable can hold.
 Value – what is actually held inside of the memory location.
Review
 The name of the variable should describe what it holds, this produces…
 self-documenting programs.
 A variable declaration is…
 a statement that tells the compiler the variables name, and what data type it
is.
 You MUST declare a variable before you can use it.
 An assignment statement…
 stores a value on the right side of the = to the variable on the left.
 A Literal is..
 a value that is explicitly written in the code of the program.
 When a variable is used NOT on the left hand side of a assignment
statement, the ________________ is used.
 value stored in the variable
Primitive Data Types
 Data Type defines what legal values the variable can hold.
 There are many types of data, you can even define your own
type.
 int is known as a primitive data type.
 A primitive data type is a built-in data type that is a basic
building block for all other types and DO NOT create objects.
 byte, short, int, long are all integer data types.
 float and double are floating-point (decimal) data
types.
Primitive Numeric Data Types
Data Type
Size
Range
byte
1 byte
Integers in the range of -128 to +128
short
2 bytes
Integers in the range of -32,768 to +32,767
int
4 bytes
Integers in the range of -2,147,483,648 to +2,147,483,647
long
8 bytes
Integers in the range of -9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807
float
4 bytes
Floating-point numbers in the range of ±3.4x10-38 to
±3.4x1038 with 7 digits of accuracy
double
8 bytes
Floating-point numbers in the range of ±1.7x10-308 to
±1.7x10308 with 15 digits of accuracy
Notes on Primitive Numeric Types
 You want to choose a type based on what the variable should do
 Why would you not use double for a variable that counts the number of
times the user clicks on something?
 Why would you not use int for a variable that calculates the exact weight a
bridge can hold?
 One good thing about types in Java is that the sizes of these variables are
the same on EVERY computer.
 Not the case in other languages.
 Other languages allow for bigger integers or unsigned integers, but Java
does not have primitive types for this.
 Instead they have a BigInteger class.
 The BigInteger class allows the programmer to use all the arithmatic operations
allowed by the primitive types on integers outside of the range of the primitive types.
 Similarly, there is a BigDecimal class.
 Probably not needed in this class…
Integer Types Example
 New Topics:





int type
byte type
short type
long type
String Concatenation Operator (+)
 String Concatenation is the process of appending to the end of a string.
 In Java, the concatenation operator allows you to concatenate strings with
other string or simple variables of primitive type (Lines 15-18).
 L suffix
 All integer literals are considered to be of type int, so you must specify that
an integer literal is of type long if it is out of the range of type int.
 You can do this by putting the character “L” after the long literal (line 13).
Floating-Point Data Types
 Sometimes you may need to use fractional numbers in your program. In
programming terminology, these are called floating-point numbers.
 Java provides two primitive floating-point data types:
 float
 double
 Most programmers tend to use double instead of float when
dealing with floating-point numbers, unless for some reason the
programmer needs to reduce the amount of memory a program takes
up. This is done for multiple reasons:
 On some modern day processors, operations done on data of type double
is actually faster than data of type float.
 Most methods that return floating-point results, return type double.
 Example: Cosine
 Note, for similar reasons, programmers usually use int for integer data
over the other integer types.
Floating-Point Types Example
 New Topics:
 float type
 double type
 F suffix
 All floating-point literals are considered to be of type double, so you
must specify that an floating-point literal is of type float if it being
assigned to a variable of type float.
 You can do this by putting the character “F” after the long literal (line
13).
Boolean Data Type
 Java provides a data type that can either be one of two values:
true or false. This is called boolean.
 Right, now this may not seem useful, but the boolean
type will become very important later on.
 Just remember the following things about boolean:
 boolean variables can only hold the values of true or
false.
 You cannot copy the values of boolean variables into any
variables of other types.
Boolean Type Example
 New Topics:
 boolean type
 true reserved word
 false reserved word
Character Data Type
 Java also provides a data type for holding a single character





called char.
Character literals are surrounded by single quotes (')
Characters are stored in memory as numbers, the program
only knows it is a character and not a number by the type.
Java uses Unicode, which is a standard set of numbers used as
codes to represent characters.
Each number representing a character requires two bytes, so
the char data type takes up two bytes in memory.
Most times, you simply use the character literal, and don’t
worry about the Unicode number.
Character Type Example
 New Topics:
 char type
 Character literal
 Unicode
Wrap-Up on Literals
 Integer Literals
 Simply the number itself
 Example: 5
 Assumes literal is type int, so if using a number outside the range of
int, you must add the L suffix
 Example: 400000000000000L
 Floating-Point Literals
 Simply the number itself
 Example: 5.8
 Assumes literal is type double, so if you want it to be of type
float, you must add the F suffix
 Example: 5.8F
 You can also use E Notation
 2.75649E4 = 2.75649 X 104 = 27564.9
Wrap-Up on Literals
 Boolean Literals
 Really are none, but there are two predefined boolean values
 true or false
 Character Literals
 A single character surrounded in single quotes
 'G'
 String Literals
 A series of characters surrounded in double quotes
 "Banana!"
 Cannot use most operators on entities of different type
 Example: 3 + 4.5 is invalid!
Variables Notes
 Variables only hold one value at a time:
int number;
number = 1;
System.out.println(number);
number = 2;
System.out.println(number);
 This will print
1
2
 After these statements, number will hold only the value of 2
and not have any data kept about the value 1.
Variable Notes
 You can declare multiple variables of the same type on a
single line by separating them with a ,.
int a;
int b;
int c;
 Is the same as:
int a, b, c;
Variable Notes
 You can also assign a variable a value on the same line as you
declare it:
int a;
a = 2;
 Is the same as:
int a = 2;
 This is called initialization.
Arithmetic Operators
 Java offer many operators for manipulating data.
 Three types of operators:
 unary – takes one operand
 binar y – takes two operands
 ternary – takes three operands
 Operands are the elements that the operator performs an
operation on.
 Example: 2 + 3
 + is the operator.
 2 and 3 are the operands.
 + in this case is a binary operator because it takes two operands.
 Arithmetic Operators are operators that perform basic arithmetic
on the numeric data types.
Arithmetic Operators
Operator
Meaning
Type
Example
+
Addition
Binary
a = b + c;
-
Subtraction
Binary
a = b - c;
*
Multiplication
Binary
a = b * c;
/
Division
Binary
a = b / c;
%
Modulus
Binary
a = b % c;
-
Negation
Unary
a = -b;
Arithmetic Operator Notes
 Modulus returns the remainder of the division of the left
operand by the right operand.
 Example 7 % 5 results in 2
 The operands of arithmetic operators can be literals or
variables.
 All of these operators work for both integers and floatingpoint data types, but division of integers is different than
floating-point numbers.
 Integer division divides the left operand by the right operand
and discards the remainder if there is one.
Arithmetic Operator Example
 New Topics:
 Arithmetic Operators
Operator Precedence and Grouping
 Operators have precedence just like they do in normal arithmetic:




negation has highest precedence
multiplication and division have next (left to right)
addition and subtraction have last (left to right)
Example: -a + b / c
 a would be negated first
 b / c would happen next
 -a + the result of b / c would happen last
 Also, like in normal arithmetic, you can group parts of a
mathematical expression using parentheses
 Example: (-a + b) / c
 a would be negated first
 -a + b would happen next
 The result of -a + b would then be divided by c
The Math Class
 The Java API provides a class called Math.
 This class provided methods to perform more advanced math
operations.
 Example: Square Root
 a = Math.sqrt(9.0)

a would receive the value of 3.
 Example: Exponents
 a = Math.pow(4.0, 2.0)
 a would receive the value of 16.
Grouping and Math Class Example
 New Topics:
 Operator Precedence
 Grouping
 Math Class
 sqrt method