Top Banner
1 Chapter 2 JAVA FUNDAMENTALS CONT’D
74

1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

Dec 16, 2015

Download

Documents

Mina Crooms
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

1

Chapter 2JAVA FUNDAMENTALS CONT’D

Page 2: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

2

ARITHMETIC OPERATORS

• Java provides many operators that are useful for manipulating data and performing arithmetic operations.

• Operators can be classified as unary, binary, or ternary depending on the number of operands the operator requires.

– Unary operators require a single operand.

– Binary operators require two operands.

– Ternary operators require three operands.

Page 3: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

3

ARITHMETIC OPERATORSNegation Operator (–)

• The negation operator is a unary operator that negates the value of its operand.

The second assignment statement in the segment below assigns the value –50 to that variable named angle2. Note that after this assignment, angle1 still has the value 50.

angle1 = 50;

angle2 = –angle1;

Page 4: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

4

ARITHMETIC OPERATORSAddition Operator (+)

• The addition operator is a binary operator that returns the sum of its two operands.

In the last statement of the segment below the value in amount is added to the value in bonus and the resulting value, 11854.73, is stored in total. The variable amount will still have the value 11354.40 and bonus will have the value 500.33 at the end of the segment.

amount = 11354.40;

bonus = 500.33;

total = amount + bonus;

Page 5: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

5

ARITHMETIC OPERATORSSubtraction Operator(–)

• The subtraction operator is a binary operator that returns the result of subtracting its right operand from its left operand.

The following statement subtracts the value 27 from 70 and stores the result (43) in number.

number = 70 – 27;

Page 6: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

6

ARITHMETIC OPERATORSMultiplication Operator (*)

• The multiplication operator is a binary operator that returns the product of its two operands.

In the following segment the value in rate is multiplied by the value in time and the result, 121.5, is stored in distance. The values of rate and time are not changed by the multiplication operator.

rate = 40.5;time = 3;

distance = rate * time;

Page 7: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

7

ARITHMETIC OPERATORSDivision Operator (/)

• The division operator is a binary operator that returns the quotient of its left operand divided by its right operand.

In the statement below 160 is divided by 2 and the resulting value, 80, is assigned to the variable x.

x = 160 / 2;

Page 8: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

8

ARITHMETIC OPERATORSDivision Operator (/)

• If both operands of the division operator are integers the quotient is an integer. The fractional part is truncated.

In the statement below, the expression 161 / 2 has the value 80. This is because both operands of the division operator are of type int. The .5 is discarded. The value 80 is assigned to x.

x = 161 / 2;

Page 9: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

9

ARITHMETIC OPERATORSDivision Operator (/)

• If at least one of the operands of the division operator is a floating-point type the quotient is a floating-point type.

In the segment below, the expression 161.0 / 2 has the value 80.5. This value is stored in x. The expression 12 / z has the value 4.8. This value is stored in y.

double z = 2.5;

x = 161.0 / 2;y = 12 / z;

Page 10: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

10

ARITHMETIC OPERATORSDivision Operator (/)

Problem:

What is the data type of the result of players / maxPlayers in the statement below?

teams = players / maxPlayers;

Answer:

Page 11: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

11

ARITHMETIC OPERATORSModulus Operator(%)

• The modulus operator is a binary operator that returns the remainder of a division operation. We can use this operator to find the number of items left over after a division operation.

The following statement divides 12 by 10 and stores the remainder of the division (2) in nextDigit.

nextDigit = 12 % 10;

Page 12: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

12

THE Math CLASSThe pow Method

• Java does not have an exponent operator.

• To raise a number to a power we can use the pow method of the Math class. You can think of a method as a routine that performs a specific operation.

• The pow method takes two double arguments. Arguments are data values sent to a method.

• The pow method raises the value of the first argument to the power of the second argument and returns the result of this calculation as a value of type double.

Page 13: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

13

THE Math CLASSThe pow Method

Suppose that we want to calculate the volume of a cube. The volume of a cube, v, is specified by the algebraic formula:

v = s3

where s is the length of the side of the cube.

In our program, if we have the side length of the cube stored in a variable named side, and we have already declared a variable named volume to hold the calculated volume, we could specify this calculation as follows:

volume = Math.pow(side, 3);

Page 14: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

14

THE Math CLASSThe pow Method

volume = Math.pow(side, 3);

• Math.pow(side, 3) is a call to the pow method which is a member of the Math class.

• This call is an expression, the value of this expression is the double value returned by the method. In our case, this value is assigned to the variable volume. Make sure volume is declared as type double or you will get a syntax error.

Suppose side has the value 3.3, the value returned by the

method call and assigned to volume is 35.937.

Page 15: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

15

THE Math CLASSThe pow Method

• The value returned by the pow method can be used anywhere a double value can be used.

For example the algebraic expression j = y - (x + 2)6 could be encoded in Java as:

j = y - Math.pow(x + 2, 6);

Page 16: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

16

THE Math CLASSThe sqrt Method

• Java does not have a square root operator.

• We can use the sqrt method of the Math class to find the square root of a number.

• The sqrt method takes a double argument and returns the square root of the argument as a value of type double.

Page 17: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

17

THE Math CLASSThe sqrt Method

For example the algebraic expression:

Could be encoded in Java as:

z = 4 * Math.sqrt(a + b);

z a b 4

Page 18: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

18

OPERATOR PRECEDENCE & ASSOCIATIVITY

• An expression may consist of a literal value, a variable, or be a combination of operators and operands.

• The evaluation of some expressions like 4 + 21 is straightforward.

• Others are not so straightforward, for instance 16 - 8 / 4. The value of this expression depends on whether the subtraction or the division is performed first.

Page 19: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

19

OPERATOR PRECEDENCE & ASSOCIATIVITY

• In Java, mathematical expressions are processed from left to right.

• When two operators share an operand, the operation specified by the operator with the highest precedence is performed first.

*** See Table 2-8 and Appendix C of the text

Page 20: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

20

OPERATOR PRECEDENCE & ASSOCIATIVITY

Continued on the next slide

Page 21: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

21

OPERATOR PRECEDENCE & ASSOCIATIVITY

Page 22: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

22

OPERATOR PRECEDENCE & ASSOCIATIVITY

• Division has higher precedence than subtraction.

In the expression below, the division, 8 / 4, is performed first, producing a quotient of 2. Then 2 is subtracted from 16 producing a result of 14.

16 - 8 / 4

Page 23: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

23

OPERATOR PRECEDENCE & ASSOCIATIVITY

• If two operators sharing an operand have the same precedence, the operators work according to their associativity.

• Associativity is either left-to-right or right-to-left.

For instance, if a multiplication and division operator share an operand these operations will be performed left-to-right since multiplication and division associate from left-to-right.

Page 24: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

24

OPERATOR PRECEDENCE & ASSOCIATIVITY

Problem:

What is the value of the following expression? ____

2 + 3 * 4

Page 25: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

25

OPERATOR PRECEDENCE & ASSOCIATIVITY

Problem:

What is the value of the following expression? ____

17 – 7 % 4 * 2

Page 26: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

26

OPERATOR PRECEDENCE & ASSOCIATIVITY

Problem:

What is the value of the following expression? ____

15 + 20 / 8 + 6 * 2

Page 27: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

27

GROUPING WITH PARENTHESES

• You may enclose an expression in parentheses to ensure that it is evaluated before other expressions that involve its operands.

Example:

x = 10 – (8 – 4);

The value of the expression, 10 – (8 – 4), is 6. Without the parentheses, the expression is 10 – 8 – 4, in this expression 8 would have been subtracted from 10 first, resulting in a value of 2, and then 4 would have been subtracted from 2, to produce the value –2.

Page 28: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

28

GROUPING WITH PARENTHESES

Example:

If you wanted to encode the following algebraic expression in Java:

You could write:

y = (4 * a * c – d) / (2 – b);

Without the parentheses, the equation implemented would be:

y ac db

42

y acd

b 42

Page 29: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

29

COMBINED ASSIGNMENT OPERATORS

In programs, it is quite common to get the current value of a variable, modify it, and then assign the resulting value back to the original variable.

Example:

x = x + 10;

This statement specifies that the value 10 is to be added to the current contents of the variable x and the resulting value becomes the new contents of x. Effectively, this statement increases the value of the variable x by 10.

Page 30: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

30

COMBINED ASSIGNMENT OPERATORS

Java provides a shorthand way to write this statement using the combined assignment plus equals operator, +=.

Instead of writing the statement:

x = x + 10;

We can write:

x += 10;

The (+=) operator adds the value of its right operand to the current value of its left operand and stores the result in the left operand.

Page 31: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

31

COMBINED ASSIGNMENT OPERATORS

The minus equals operator, –= subtracts the value of its right operand from the current value of its left operand and stores the result in the left operand.

For example:

balance = balance – withdrawals;

Could be written:

balance –= withdrawals;

Page 32: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

32

COMBINED ASSIGNMENT OPERATORS

• The left operand of a combined assignment operator is used as both the left operand of the specified arithmetic operation and the storage location for the result of the operation.

• The left operand of a combined assignment operator must be a variable.

Page 33: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

33

COMBINED ASSIGNMENT OPERATORS

*** See Table 2-13 of the text for more about the combined assignment operators and their usage

• The times equal operator, *=, multiplies the value of its right operand by the current value of its left operand and stores the result in the left operand.

• The divide equal operator, /=, divides the current value of its left operand by the value of the right operand and stores the result in the left operand.

• The mod equal operator, %=, divides the current value of its left operand by the value of the right operand and stores the remainder of the division in the left operand.

Page 34: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

34

COMBINED ASSIGNMENT OPERATORS

• The combined assignment operators have lower precedence than the arithmetic operators +, –, *, /, and %.

*** See Appendix C of the text

For example the statement:

w /= b + 1;

Is equivalent to:

w = w / (b + 1);

Page 35: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

35

COMBINED ASSIGNMENT OPERATORS Precedence & Associativity

Continued on the next slide

Page 36: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

36

COMBINED ASSIGNMENT OPERATORS Precedence & Associativity

Here are the combined assignment operators.

Page 37: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

37

CONVERSION BETWEEN PRIMITIVE DATA TYPES

• Java is a strongly typed language.

• The Java compiler checks that the values assigned to variables are of a type compatible with the variables data type.

Page 38: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

38

CONVERSION BETWEEN PRIMITIVE DATA TYPES

Example:

The compiler rejects the assignment statement in the segment below, saying “possible loss of precision”.

double g = 13.9;

int z;

z = g;

The compiler will not allow this assignment, because the data type double can hold a larger value than a variable of type int can hold.

Page 39: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

39

CONVERSION BETWEEN PRIMITIVE DATA TYPES

• In Java the numeric data types are ranked. One data type outranks another if it can hold a larger value.

*** See Figure 2-6 of the text

Numeric data typedoublefloatlongintshortbyte

Highest Ranking

Lowest Ranking

Page 40: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

40

CONVERSION BETWEEN PRIMITIVE DATA TYPES

• In general, Java does not automatically perform narrowing conversions. A narrowing conversion is a conversion “from” a higher-ranking data type to a lower-ranking data type.

Page 41: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

41

CONVERSION BETWEEN PRIMITIVE DATA TYPES

double g = 13.9;

int z;

z = g;

That is the problem with the assignment statement highlighted above. We are asking that a value of type double be stored in a variable of type int. This is a narrowing conversion - a compiler error occurs.

It is an error to assign a double value to a variable

of type int.

Page 42: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

42

CONVERSION BETWEEN PRIMITIVE DATA TYPES

• Java automatically performs widening conversions. A widening conversion is a conversion “to” a higher-ranking data type.

Page 43: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

43

CONVERSION BETWEEN PRIMITIVE DATA TYPES

Example:

The compiler automatically converts the value of type int to a value of type float in the assignment statement at the bottom of the segment below. This conversion is a widening conversion. (Remember an assignment does not change the right operand, the variable x still contains the 4-byte integer value 5 after the execution of the last statement.)

int x = 5;

float y;

y = x;

Here x is an int and y is a float. We are converting to a higher-ranking

type. This is a widening conversion.

Page 44: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

44

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast Operator• The cast operator is a unary operator that allows the

programmer to convert a value to a different data type.

• You can specify either a narrowing or a widening conversion using the cast operator.

• The cast operator is a parenthesized data type.

• It specifies that the operand that follows is to be converted to the data type inside the parentheses.

Page 45: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

45

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast Operator• When you convert a floating-point type to an integer type,

any fractional portion is truncated (discarded). Note: The value is not rounded.

• The operand of the cast operator is not changed by the operation. A copy of the value is made that is of the specified data type.

Page 46: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

46

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast OperatorExample:

The third statement of the segment below specifies that the computer make a copy of the value in g that is of type int, then assign this integer value to the variable z. At the end of the segment z contains the value 13 and g still contains the double value 13.9.

double g = 13.9;

int z;

z = (int) g;

Page 47: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

47

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast OperatorExample:

The last statement of the following segment casts the value of the integer value stored in number to a char before assigning it to rating. Remember Java is strongly typed; it will not automatically convert the value of an integer variable to a char. The value in number is not changed by the cast, a copy of the value in number is made that is in Unicode .

int number = 65;char rating; rating = (char) number;

Page 48: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

48

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast OperatorExample:

In the last statement of the segment below, a copy of the value in x is made that is of type double. This value, 22.0, is divided by the value in y, 8, the resulting value, 2.75, is assigned to g. Without the cast the result of the division would have been 2, an int. Java would have done a widening conversion and the value 2.0 would have been assigned to g.

int x = 22, y = 8;

double g;

g = (double) x / y;

Page 49: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

49

CONVERSION BETWEEN PRIMITIVE DATA TYPESThe Cast OperatorProblem:

Describe the automatic type conversions that occur in the following segment. Assuming that the segment is part of a complete Java program, is the segment syntactically correct?

float m = 4;double d = m;int j;

j = Math.pow(2, 3);

Answer:

Page 50: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

50

CONVERSION BETWEEN PRIMITIVE DATA TYPESAutomatic Type Conversion in Arithmetic Expressions

• When an arithmetic operator has operands of different data types, Java will temporarily convert the operand of the lower-ranking data type to the higher-ranking data type.

• The result of the operation will be the same data type as the higher-ranking operand.

• When values of type byte and short are used in arithmetic expressions, they are temporarily converted to type int.

Page 51: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

51

CONVERSION BETWEEN PRIMITIVE DATA TYPESAutomatic Type Conversion in Arithmetic Expressions

Problem:

Explain the type conversions made and give the values of all of the variables at the end of the execution of the following program segment.

int x = 16, y = 8;short i = 5;float f = 2.2f, g = 0;double c = 0, d = 10.5;

c = x / i;g = f * (x – 6) / y;x = (int) g;d = x + 1.4 + y % 9 + c;

Answer:

Page 52: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

52

CREATING NAMED CONSTANTS USING THE KEY WORD final

• A named constant is a location in memory, which is given a name, that contains a data value that cannot be changed during the execution of the program.

• The declaration of a named constant looks like the declaration of a variable, except the key word final precedes the data type in the declaration of a constant.

Example:

final double SALES_TAX_RATE = .0825;

Page 53: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

53

CREATING NAMED CONSTANTS USING THE KEY WORD final

• A named constant is a way of representing a literal value. Instead of using the literal value in expressions, we use the named constant. Named constants are used to make programs more readable and to facilitate the modification of programs.

Examples:

final double RATE_PER_MILE = .50;

final double BONUS_LEVEL = 1000000;

final double INTEREST_RATE = .05667;

final int INCHES_PER_FOOT = 12;

final double LBS_PER_KG = 2.20;

Page 54: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

54

CREATING NAMED CONSTANTS USING THE KEY WORD final

• By convention, programmers use all uppercase letters and separate words using the underscore character when naming constants. This helps distinguish named constants from variable names.

Examples:

final double RATE_PER_MILE = .50;

final double BONUS_LEVEL = 1000000;

final double INTEREST_RATE = .05667;

final int INCHES_PER_FOOT = 12;

final double LBS_PER_KG = 2.20;

Page 55: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

55

CREATING NAMED CONSTANTS USING THE KEY WORD final

• A named constant must be given a value when it is declared.

• It is a syntax error to write a statement that attempts to change the value in a named constant after its declaration.

Page 56: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

56

The Math.PI Named Constant

• The Math class, from the Java API, provides a named constant called PI, which we can use in our programs. This constant has the value 3.141592653589793, which is an approximation of the mathematical value π.

• Notice, PI is not a method, it is not followed by a parenthesized argument list like pow or println.

Example:

In our program AreaOf2Circles.java, we could have used the following statement to calculate the area of a circle.

area = Math.PI * Math.pow(radius, 2.0);

Page 57: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

57

SCOPE

• The scope of a variable is the part of the program where the variable can be accessed by name.

• Variables declared inside a method are called local variables.

• The scope of a local variable begins at its declaration and ends at the closing brace, }, of the block in which it is defined. Variables cannot be accessed by statements outside this region.

• The compiler reads a program from top to bottom. The compiler must encounter the declaration of a variable before it finds the variable used in any other statement, or a syntax error occurs.

• You cannot declare two variables with the same name in the same scope.

Page 58: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

58

COMMENTS

Previously, we learned that comments are notes of explanation used to document programs, sections of programs, or program statements for the humans who must read programs.

Page 59: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

59

COMMENTS

In Java there are three ways to write comments.

• Single-Line comments begin with two forward slashes. The compiler ignores everything from the two forward slashes to the end of the line.

• Multi-Line comments start with a forward slash followed by an asterisk, /*, and are terminated by an asterisk followed by a forward slash, */. The compiler ignores everything between the /* and the */. This type of comment can span multiple lines.

• Documentation comments begin with a forward slash followed by two asterisks, /**, and end with an asterisk followed by a forward slash, */. The compiler ignores everything between the /** that marks the beginning of the comment and the */ then ends this comment. This type of comment is read by a program called javadoc.

Page 60: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

60

COMMENTSDocumentation Comments and javadoc

• The program javadoc is part of the Sun JDK. javadoc reads a source code file and creates an HTML file that includes the information provided in the documentation comments.

• The HTML file created by javadoc is formatted in the same way as the documentation provided for the Java API, so you can produce documentation for your classes that look just like standard Java documentation.

• Include a documentation comment before each class header, providing a description of the class.

• Include a documentation comment before each method header, which gives a description of the method.

Page 61: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

61

PROGRAMMING STYLE

• Programming style is a way of using identifiers, spaces, tabs, blank lines, comments, and statements to make programs readable, simpler to understand, easier to maintain, and visually pleasing.

• When the compiler reads a program it processes it as one long stream of characters. The compiler doesn't care whether each statement is on a separate line or whether it all runs together.

• Good programmers follow programming style conventions to make their programming experience and that of their colleagues a positive and productive one.

Page 62: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

62

PROGRAMMING STYLE

*** Refer to the text and the document called Programming Style on webct

Page 63: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

63

DIALOG BOXES

• A dialog box is a small graphical window that displays a message or requests input from the user.

• We can create dialog boxes using the JOptionPane class. Two types of boxes we can create using the JOptionPane class are:

– Message Dialog - A dialog box that displays a message and an OK button.

– Input Dialog - A dialog box that prompts the user for input, provides a text field where input is to be typed, and displays OK and Cancel buttons.

Page 64: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

64

DIALOG BOXES

• In order to use the JOptionPane class we must include the following import statement in the source file before any class definition:

import javax.swing.JOptionPane;

Page 65: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

65

DIALOG BOXESThe showMessageDialog Method of the JOptionPane Class • The JOptionPane class has a static method called

showMessageDialog, which we will use to display a message dialog.

Here is a statement that calls the showMessageDialog method of the JOptionPane class to display the message dialog shown below:

JOptionPane.showMessageDialog(null, "Go Stars!");

Page 66: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

66

DIALOG BOXESThe showMessageDialog Method of the JOptionPane Class JOptionPane.showMessageDialog(null, "Go Stars!");

• The first argument specifies which frame the dialog is to be displayed in. In this class we will always specify the default frame by passing the key word null.

• The second argument is the message you want displayed in the dialog.

• The dialog box will close when the user clicks the OK button.

Page 67: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

67

DIALOG BOXESThe showInputDialog Method of the JOptionPane Class • The JOptionPane class has a static method called showInputDialog,

which we will use to display an input dialog.

The second statement calls the showInputDialog method of the JOptionPane class to display the input dialog shown below:

String enteredWeight;

enteredWeight = JOptionPane.showInputDialog("Enter your " + "weight in pounds.");

Page 68: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

68

DIALOG BOXESThe showInputDialog Method of the JOptionPane Class enteredWeight = JOptionPane.showInputDialog("Enter your " +

"weight in pounds.");

• The argument is the message you want displayed in the input dialog. This should be your prompt.

• If the user clicks the OK button, the variable enteredWeight will reference the String object that contains the string of characters entered by the user in the text field.

• If the user clicks the Cancel button, the String variable will reference a special value null.

Page 69: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

69

DIALOG BOXESThe showInputDialog Method of the JOptionPane Class String enteredWeight;

enteredWeight = JOptionPane.showInputDialog("Enter your " + "weight in pounds.");

• The showInputDialog method of the JOptionPane class always returns the user’s input as a String. This is a problem if you wanted a numeric value that you could use in a mathematical expression. (You cannot do math on strings.)

The method showInputDialog always returns a reference to a String object

which it has created.

Page 70: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

70

DIALOG BOXESUsing a Method from a Java Wrapper Class to Convert a String to a Numeric Value• To convert a String to numeric value, we can use a method from a Java wrapper

class.

Example:

There is a class called Double that has a static member method called parseDouble, which converts a String to a double, and returns the double. We can use it as illustrated below:

double weightInPounds;String enteredWeight;

enteredWeight = JOptionPane.showInputDialog("Enter your " + "weight in pounds.");

weightInPounds = Double.parseDouble(enteredWeight);

Page 71: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

71

DIALOG BOXESUsing a Method from a Java Wrapper Class to Convert a String to a Numeric Valuedouble weightInPounds;String enteredWeight;

enteredWeight = JOptionPane.showInputDialog("Enter your " + "weight in pounds.");

weightInPounds = Double.parseDouble(enteredWeight);

• The argument of the parseDouble method is a reference to the string that is to be converted to a double.

• The string stored in the object referenced by enteredWeight is not changed by the parseDouble method.

Pass the reference to the string that you want

converted as the argument of the method.

Page 72: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

72

DIALOG BOXESUsing a Method from a Java Wrapper Class to Convert a String to a Numeric Value

Note: The wrapper class to convert to type int is calledInteger and its member method is called parseInt.

Page 73: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

73

DIALOG BOXESUsing the System.exit Method to End the Program

• When you use the JOptionPane class to display dialogs in your program you must use the System.exit method to end the program, or a thread will continue to execute.

System.exit(0);

The argument, 0, is used to indicate that the program ended normally.

Page 74: 1 Chapter 2 JAVA FUNDAMENTALS CONT’D. 2 ARITHMETIC OPERATORS Java provides many operators that are useful for manipulating data and performing arithmetic.

74

DIALOG BOXES

*** See the program RectAreaUsingDialogs.java on webct