Ch5 Primitive Types, Strings, Classes

advertisement
Chapter 5 – Data Types
•
•
•
•
Primitives vs Objects
Operators vs Methods
Comparing objects in if statements
Using double for non integer numbers
– large values, or those with decimals (3.14)
• Arithmetic using ints and doubles
• Math class for doing trig and other calcs
• Strings
Primitive Data Type
• Can write value as a literal
Ex: int a=1732
• Can perform operations using operator
symbols
Ex: x+1
Operators vs. Method
Invocations
• Operators produce new values
Ex: if the value of count is 3
count+1 will produce 4, but will not change count
• Method Invocations can modify objects
Ex: box.move(-1,-1); changes the position of the box
Comparing Primitives vs Objects
• Primitive variables like int and double:
– int x = 2, y = 5;
– To see if two int variables contain the same
value, we say:
if (x == y)
Comparing Primitives vs Objects
• However, for objects:
– point = new Location(10,10);
– click = new Location(10, 10);
– point2 = point; // point2 refers to Location named point
// point and ponit2 are 2 names for the same object
// click and point are different objects with the same data
– if (point == click) is ALWAYS False (differnt objects)
– if (point == point2) is ALWAYS True (same objects)
– if (point.equals(click) is true if they contain same data.
Use this to compare 2 different objects, i.e. objects
created with different constructors.
• Point Point2
[10, 10]
click
[10, 10]
Operators and Precedence Rules
•
•
•
•
•
•
•
•
PARENTHESES!!! ( )
Numeric and logical negations, - and ! ( - temp or ! grabbed )
Multiplication and division: * and /
Addition and subtraction: + and –
Comparisons: <,<=,>,>=
Equality and inequality: == and !=
And: &&
Or: ||
Ex: a+b*c=a+(b*c) but not (a+b)*c
Numeric Types
• Integers:
Ex: int anInt=99;
• Real numbers:
Ex: double aDouble=98.6;
An int can be converted into a double without loss of precision, but not
vice versa
Dividing int and double
The following table summaries the types of result one will get when
dividing two integers, two doubles, or a double and an integer
int
double
int
int result
double result
double
double result
double result
Clearly, unless an integer is divided by another integer, all
results are double.
Ex: 3.0 / 4.0 = 0.75 3 / 4.0=0.75
3/4=0
How a double is displayed
• If you print a double, the output is always accompanied by
a decimal place.
Ex: double a=1000;
System.out.print(a);
will output 1000.0
• Large numbers use scientific notation
Ex: double a=1000000000;
System.out.print(a); will output 1.0E9
Selecting a Numeric Type
• Use double instead of int whenever possible
• Use int when methods demand it
Ex: setColor( int, int, int )
Useful Functions on double
Math.pow(a,b)
Math.exp (b)
Math.ln(a)
Math.sqrt(a)
ab
eb
ln(a)
Square root of a
System.currentTimeMillis()
• Used to check elapsed time
Ex: printing out the duration of a mouse press
public void onMousePress(Location point){
startingTime=System.currentTimeMillis();
}
public void onMouseRelease(Location point){
System.out.println(System.currentTimeMillis()-startingTime));
}
• Time in milliseconds since January 1, 1970 !!
String
• Java uses String to manipulate textual data
• Quoted text is of type String
• Programs can combine String objects
Ex: String a="He";
String b="llo";
System.out.print(a+b); will print out Hello
Download