Your SlideShare is downloading. ×
JavaYDL2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

JavaYDL2

393
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
393
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Chapter 2 Elementary Programming Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1
  • 2. MotivationsIn the preceding chapter, you learned how tocreate, compile, and run a Java program. Startingfrom this chapter, you will learn how to solvepractical problems programmatically. Throughthese problems, you will learn Java primitive datatypes and related subjects, such as variables,constants, data types, operators, expressions, andinput and output. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 2
  • 3. Objectives To write Java programs to perform simple computations (§2.2). To obtain input from the console using the Scanner class (§2.3). To use identifiers to name variables, constants, methods, and classes (§2.4). To use variables to store data (§§2.5–2.6). To program with assignment statements and assignment expressions (§2.6). To use constants to store permanent data (§2.7). To name classes, methods, variables, and constants by following their naming conventions (§2.8). To explore Java numeric primitive data types: byte, short, int, long, float, and double (§2.9.1). To perform operations using operators +, -, *, /, and % (§2.9.2). To perform exponent operations using Math.pow(a, b) (§2.9.3). To write integer literals, floating-point literals, and literals in scientific notation (§2.10). To write and evaluate numeric expressions (§2.11). To obtain the current system time using System.currentTimeMillis() (§2.12). To use augmented assignment operators (§2.13). To distinguish between postincrement and preincrement and between postdecrement and predecrement (§2.14). To cast the value of one type to another type (§2.15). To describe the software development process and apply it to develop the loan payment program (§2.16). To represent characters using the char type (§2.17). To represent a string using the String type (§2.18). To obtain input using the JOptionPane input dialog boxes (§2.19). Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 3
  • 4. Introducing Programming with an ExampleListing 2.1 Computing the Area of a Circle This program computes the area of the circle.ComputeArea IMPORTANT NOTE: (1) To enable the buttons, you must Run download the entire slide file slide.zip and unzip the files into a directory (e.g., c:slide) . (2) You must have installed JDK and set JDK’s bin directory in your environment path (e.g., c:Program Filesjavajdk1.7.0bin in your environment path. (3) If you are using Office 2010, check PowerPoint2010.doc located in the same folder with this ppt file. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 4
  • 5. animation Trace a Program Executionpublic class ComputeArea { allocate memory /** Main method */ for radius public static void main(String[] args) { double radius; radius no value double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); }} Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 5
  • 6. animation Trace a Program Executionpublic class ComputeArea { /** Main method */ memory public static void main(String[] args) { double radius; radius no value double area; area no value // Assign a radius radius = 20; allocate memory // Compute area for area area = radius * radius * 3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); }} Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 6
  • 7. animation Trace a Program Executionpublic class ComputeArea { assign 20 to radius /** Main method */ public static void main(String[] args) { double radius; radius 20 double area; area no value // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); }} Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 7
  • 8. animation Trace a Program Executionpublic class ComputeArea { /** Main method */ memory public static void main(String[] args) { double radius; radius 20 double area; area 1256.636 // Assign a radius radius = 20; compute area and assign it // Compute area to variable area area = radius * radius * 3.14159; // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); }} Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 8
  • 9. animation Trace a Program Executionpublic class ComputeArea { /** Main method */ memory public static void main(String[] args) { double radius; radius 20 double area; area 1256.636 // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; print a message to the console // Display results System.out.println("The area for the circle of radius " + radius + " is " + area); }} Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 9
  • 10. Reading Input from the Console1. Create a Scanner object Scanner input = new Scanner(System.in);2. Use the methods next(), nextByte(), nextShort(),nextInt(), nextLong(), nextFloat(), nextDouble(), ornextBoolean() to obtain to a string, byte, short, int, long,float, double, or boolean value. For example, System.out.print("Enter a double value: "); Scanner input = new Scanner(System.in); double d = input.nextDouble();ComputeAreaWithConsoleInput ComputeAverage Run Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 10
  • 11. Identifiers An identifier is a sequence of characters that consist of letters, digits, underscores (_), and dollar signs ($). An identifier must start with a letter, an underscore (_), or a dollar sign ($). It cannot start with a digit. – An identifier cannot be a reserved word. (See Appendix A, “Java Keywords,” for a list of reserved words). An identifier cannot be true, false, or null. An identifier can be of any length. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 11
  • 12. Variables// Compute the first arearadius = 1.0;area = radius * radius * 3.14159;System.out.println("The area is “ + area + " for radius "+radius);// Compute the second arearadius = 2.0;area = radius * radius * 3.14159;System.out.println("The area is “ + area + " for radius "+radius); Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 12
  • 13. Declaring Variablesint x; // Declare x to be an // integer variable;double radius; // Declare radius to // be a double variable;char a; // Declare a to be a // character variable; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 13
  • 14. Assignment Statementsx = 1; // Assign 1 to x;radius = 1.0; // Assign 1.0 to radius;a = A; // Assign A to a; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 14
  • 15. Declaring and Initializing in One Step int x = 1; double d = 1.4; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 15
  • 16. Named Constantsfinal datatype CONSTANTNAME = VALUE;final double PI = 3.14159;final int SIZE = 3; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 16
  • 17. Naming Conventions Choose meaningful and descriptive names. Variables and method names: – Use lowercase. If the name consists of several words, concatenate all in one, use lowercase for the first word, and capitalize the first letter of each subsequent word in the name. For example, the variables radius and area, and the method computeArea. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 17
  • 18. Naming Conventions, cont. Class names: – Capitalize the first letter of each word in the name. For example, the class name ComputeArea. Constants: – Capitalize all letters in constants, and use underscores to connect words. For example, the constant PI and MAX_VALUE Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 18
  • 19. Numerical Data TypesName Range Storage Sizebyte –27 to 27 – 1 (-128 to 127) 8-bit signedshort –215 to 215 – 1 (-32768 to 32767) 16-bit signedint –231 to 231 – 1 (-2147483648 to 2147483647) 32-bit signedlong –263 to 263 – 1 64-bit signed (i.e., -9223372036854775808 to 9223372036854775807)float Negative range: 32-bit IEEE 754 -3.4028235E+38 to -1.4E-45 Positive range: 1.4E-45 to 3.4028235E+38double Negative range: 64-bit IEEE 754 -1.7976931348623157E+308 to -4.9E-324 Positive range: 4.9E-324 to 1.7976931348623157E+308 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 19
  • 20. Numeric OperatorsName Meaning Example Result+ Addition 34 + 1 35- Subtraction 34.0 – 0.1 33.9* Multiplication 300 * 30 9000/ Division 1.0 / 2.0 0.5% Remainder 20 % 3 2 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 20
  • 21. Integer Division+, -, *, /, and %5 / 2 yields an integer 2.5.0 / 2 yields a double value 2.55 % 2 yields 1 (the remainder of the division) Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 21
  • 22. Remainder OperatorRemainder is very useful in programming. For example, aneven number % 2 is always 0 and an odd number % 2 is always1. So you can use this property to determine whether a numberis even or odd. Suppose today is Saturday and you and yourfriends are going to meet in 10 days. What day is in 10days? You can find that day is Tuesday using the followingexpression: Saturday is the 6th day in a week A week has 7 days (6 + 10) % 7 is 2 The 2nd day in a week is Tuesday After 10 days Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 22
  • 23. Problem: Displaying TimeWrite a program that obtains hours andminutes from seconds. DisplayTime Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 23
  • 24. NOTECalculations involving floating-point numbers areapproximated because these numbers are not storedwith complete accuracy. For example,System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);displays 0.5000000000000001, not 0.5, andSystem.out.println(1.0 - 0.9);displays 0.09999999999999998, not 0.1. Integers arestored precisely. Therefore, calculations with integersyield a precise integer result. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 24
  • 25. Exponent OperationsSystem.out.println(Math.pow(2, 3));// Displays 8.0System.out.println(Math.pow(4, 0.5));// Displays 2.0System.out.println(Math.pow(2.5, 2));// Displays 6.25System.out.println(Math.pow(2.5, -2));// Displays 0.16 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 25
  • 26. Number LiteralsA literal is a constant value that appears directlyin the program. For example, 34, 1,000,000, and5.0 are literals in the following statements:int i = 34;long x = 1000000;double d = 5.0; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 26
  • 27. Integer LiteralsAn integer literal can be assigned to an integer variable aslong as it can fit into the variable. A compilation errorwould occur if the literal were too large for the variable tohold. For example, the statement byte b = 1000 wouldcause a compilation error, because 1000 cannot be storedin a variable of the byte type.An integer literal is assumed to be of the int type, whosevalue is between -231 (-2147483648) to 231–1(2147483647). To denote an integer literal of the longtype, append it with the letter L or l. L is preferred becausel (lowercase L) can easily be confused with 1 (the digitone). Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 27
  • 28. Floating-Point LiteralsFloating-point literals are written with a decimalpoint. By default, a floating-point literal is treatedas a double type value. For example, 5.0 isconsidered a double value, not a float value. Youcan make a number a float by appending the letter for F, and make a number a double by appendingthe letter d or D. For example, you can use 100.2for 100.2F for a float number, and 100.2d or 100.2Dfor a double number. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 28
  • 29. Scientific NotationFloating-point literals can also be specified inscientific notation, for example, 1.23456e+2,same as 1.23456e2, is equivalent to 123.456, and1.23456e-2 is equivalent to 0.0123456. E (or e)represents an exponent and it can be either inlowercase or uppercase. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 29
  • 30. Arithmetic Expressions 3 4x 10 ( y 5)( a b c) 4 9 x 9( ) 5 x x yis translated to(3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 30
  • 31. How to Evaluate an ExpressionThough Java has its own way to evaluate anexpression behind the scene, the result of a Javaexpression and its corresponding arithmetic expressionare the same. Therefore, you can safely apply thearithmetic rule for evaluating a Java expression. 3 + 4 * 4 + 5 * (4 + 3) - 1 (1) inside parentheses first 3 + 4 * 4 + 5 * 7 – 1 (2) multiplication 3 + 16 + 5 * 7 – 1 (3) multiplication 3 + 16 + 35 – 1 (4) addition 19 + 35 – 1 (5) addition 54 - 1 (6) subtraction 53 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 31
  • 32. Problem: Converting TemperaturesWrite a program that converts a Fahrenheit degreeto Celsius using the formula: 5 celsius ( 9 )( fahrenheit 32 ) Note: you have to write celsius = (5.0 / 9) * (fahrenheit – 32) FahrenheitToCelsius Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 32
  • 33. Problem: Displaying Current TimeWrite a program that displays current time in GMT in theformat hour:minute:second such as 1:45:19.The currentTimeMillis method in the System class returnsthe current time in milliseconds since the midnight, January1, 1970 GMT. (1970 was the year when the Unix operatingsystem was formally introduced.) You can use this methodto obtain the current time, and then compute the currentsecond, minute, and hour as follows. Elapsed time ShowCurrentTime Time Unix Epoch Current Time 01-01-1970 00:00:00 GMT System.currentTimeMills() Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 33
  • 34. Shortcut Assignment Operators Operator Example Equivalent += i += 8 i = i + 8 -= f -= 8.0 f = f - 8.0 *= i *= 8 i = i * 8 /= i /= 8 i = i / 8 %= i %= 8 i = i % 8 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 34
  • 35. Increment and Decrement OperatorsOperator Name Description++var preincrement The expression (++var) increments var by 1 and evaluates to the new value in var after the increment.var++ postincrement The expression (var++) evaluates to the original value in var and increments var by 1.--var predecrement The expression (--var) decrements var by 1 and evaluates to the new value in var after the decrement.var-- postdecrement The expression (var--) evaluates to the original value in var and decrements var by 1. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 35
  • 36. Increment and Decrement Operators, cont.int i = 10; Same effect asint newNum = 10 * i++; int newNum = 10 * i; i = i + 1;int i = 10; Same effect asint newNum = 10 * (++i); i = i + 1; int newNum = 10 * i; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 36
  • 37. Increment and Decrement Operators, cont.Using increment and decrement operators makesexpressions short, but it also makes them complex anddifficult to read. Avoid using these operators in expressionsthat modify multiple variables, or the same variable formultiple times such as this: int k = ++i + i. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 37
  • 38. Assignment Expressions and Assignment StatementsPrior to Java 2, all the expressions can be used asstatements. Since Java 2, only the following types ofexpressions can be statements:variable op= expression; // Where op is +, -, *, /, or %++variable;variable++;--variable;variable--; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 38
  • 39. Numeric Type ConversionConsider the following statements:byte i = 100;long k = i * 3 + 4;double d = i * 3.1 + k / 2; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 39
  • 40. Conversion Rules When performing a binary operation involving two operands of different types, Java automatically converts the operand based on the following rules:1. If one of the operands is double, the other is converted into double.2. Otherwise, if one of the operands is float, the other is converted into float.3. Otherwise, if one of the operands is long, the other is converted into long.4. Otherwise, both operands are converted into int. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 40
  • 41. Type CastingImplicit casting double d = 3; (type widening)Explicit casting int i = (int)3.0; (type narrowing) int i = (int)3.9; (Fraction part is truncated)What is wrong? int x = 5 / 2.0; range increases byte, short, int, long, float, double Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 41
  • 42. Problem: Keeping Two Digits After Decimal PointsWrite a program that displays the sales tax with twodigits after the decimal point. SalesTax Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 42
  • 43. Casting in an Augmented ExpressionIn Java, an augmented expression of the form x1 op=x2 is implemented as x1 = (T)(x1 op x2), where T isthe type for x1. Therefore, the following code iscorrect.int sum = 0;sum += 4.5; // sum becomes 4 after this statementsum += 4.5 is equivalent to sum = (int)(sum + 4.5). Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 43
  • 44. Software Development ProcessRequirementSpecification System Analysis System Design Implementation Testing Deployment Maintenance Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 44
  • 45. Requirement Specification A formal process that seeks to understand Requirement Specification the problem and document in detail what the software system needs to do. This System phase involves close interaction between Analysis users and designers. System Design Implementation TestingMost of the examples in this book are simple,and their requirements are clearly stated. In Deploymentthe real world, however, problems are notwell defined. You need to study a problem Maintenancecarefully to identify its requirements. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 45
  • 46. System Analysis Requirement Specification Seeks to analyze the business process in terms of data flow, and System Analysis to identify the system’s input and output. System Design Implementation TestingPart of the analysis entails modelingthe system’s behavior. The model is Deploymentintended to capture the essentialelements of the system and to define Maintenanceservices to the system. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 46
  • 47. System Design Requirement Specification The process of designing the system’s components. System Analysis System Design Implementation TestingThis phase involves the use of many levels Deploymentof abstraction to decompose the problem intomanageable components, identify classes andinterfaces, and establish relationships among Maintenancethe classes and interfaces. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 47
  • 48. IPO Requirement Specification System Analysis Input, Process, Output System Design Implementation TestingThe essence of system analysis and design is input,process, and output. This is called IPO. Deployment Maintenance Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 48
  • 49. Implementation Requirement The process of translating the Specification system design into programs. System Separate programs are written for Analysis each component and put to work System together. Design Implementation TestingThis phase requires the use of aprogramming language like Java. DeploymentThe implementation involvescoding, testing, and debugging. Maintenance Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 49
  • 50. Testing Requirement Specification Ensures that the code meets the requirements specification and System Analysis weeds out bugs. System Design Implementation TestingAn independent team of softwareengineers not involved in the design Deploymentand implementation of the projectusually conducts such testing. Maintenance Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 50
  • 51. Deployment Requirement Specification Deployment makes the project available for use. System Analysis System Design Implementation TestingFor a Java applet, this meansinstalling it on a Web server; for a DeploymentJava application, installing it on theclients computer. Maintenance Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 51
  • 52. Maintenance Requirement Specification Maintenance is concerned with changing and improving the System Analysis product. System Design Implementation TestingA software product must continue toperform and improve in a changing Deploymentenvironment. This requires periodicupgrades of the product to fix newly Maintenancediscovered bugs and incorporate changes. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 52
  • 53. Problem: Computing Loan Payments This program lets the user enter the interest rate, number of years, and loan amount, and computes monthly payment and total payment. loanAmount monthlyInterestRatemonthlyPayment 1 1 numberOfYears 12 (1 monthlyInterestRate) ComputeLoan Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 53
  • 54. Character Data Type Four hexadecimal digits.char letter = A; (ASCII)char numChar = 4; (ASCII)char letter = u0041; (Unicode)char numChar = u0034; (Unicode)NOTE: The increment and decrement operators can also be usedon char variables to get the next or preceding Unicode character.For example, the following statements display character b. char ch = a; System.out.println(++ch); Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 54
  • 55. Unicode FormatJava characters use Unicode, a 16-bit encoding schemeestablished by the Unicode Consortium to support theinterchange, processing, and display of written texts in theworld’s diverse languages. Unicode takes two bytes,preceded by u, expressed in four hexadecimal numbersthat run from u0000 to uFFFF. So, Unicode canrepresent 65535 + 1 characters. Unicode u03b1 u03b2 u03b3 for three Greek letters Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 55
  • 56. Problem: Displaying UnicodesWrite a program that displays two Chinesecharacters and three Greek letters. DisplayUnicode Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 56
  • 57. Escape Sequences for Special CharactersDescription Escape Sequence UnicodeBackspace b u0008Tab t u0009Linefeed n u000ACarriage return r u000DBackslash u005CSingle Quote u0027Double Quote " u0022 Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 57
  • 58. Appendix B: ASCII Character SetASCII Character Set is a subset of the Unicode from u0000 to u007f Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 58
  • 59. ASCII Character Set, cont.ASCII Character Set is a subset of the Unicode from u0000 to u007f Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 59
  • 60. Casting between char and Numeric Typesint i = a; // Same as int i = (int)a;char c = 97; // Same as char c = (char)97; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 60
  • 61. Problem: Monetary UnitsThis program lets the user enter the amount indecimal representing dollars and cents and outputa report listing the monetary equivalent in singledollars, quarters, dimes, nickels, and pennies.Your program should report maximum number ofdollars, then the maximum number of quarters,and so on, in this order. ComputeChange Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 61
  • 62. Trace ComputeChange Suppose amount is 11.56int remainingAmount = (int)(amount * 100); remainingAmount 1156// Find the number of one dollarsint numberOfOneDollars = remainingAmount / 100; remainingAmountremainingAmount = remainingAmount % 100; initialized// Find the number of quarters in the remaining amountint numberOfQuarters = remainingAmount / 25;remainingAmount = remainingAmount % 25;// Find the number of dimes in the remaining amountint numberOfDimes = remainingAmount / 10;remainingAmount = remainingAmount % 10;// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount / 5;remainingAmount = remainingAmount % 5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 62
  • 63. animation Trace ComputeChange Suppose amount is 11.56int remainingAmount = (int)(amount * 100); remainingAmount 1156// Find the number of one dollarsint numberOfOneDollars = remainingAmount / 100; numberOfOneDollars 11remainingAmount = remainingAmount % 100;// Find the number of quarters in the remaining amount numberOfOneDollarsint numberOfQuarters = remainingAmount / 25; assignedremainingAmount = remainingAmount % 25;// Find the number of dimes in the remaining amountint numberOfDimes = remainingAmount / 10;remainingAmount = remainingAmount % 10;// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount / 5;remainingAmount = remainingAmount % 5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 63
  • 64. animation Trace ComputeChange Suppose amount is 11.56int remainingAmount = (int)(amount * 100); remainingAmount 56// Find the number of one dollarsint numberOfOneDollars = remainingAmount / 100; numberOfOneDollars 11remainingAmount = remainingAmount % 100;// Find the number of quarters in the remaining amountint numberOfQuarters = remainingAmount / 25; remainingAmountremainingAmount = remainingAmount % 25; updated// Find the number of dimes in the remaining amountint numberOfDimes = remainingAmount / 10;remainingAmount = remainingAmount % 10;// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount / 5;remainingAmount = remainingAmount % 5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 64
  • 65. animation Trace ComputeChange Suppose amount is 11.56int remainingAmount = (int)(amount * 100); remainingAmount 56// Find the number of one dollarsint numberOfOneDollars = remainingAmount / 100; numberOfOneDollars 11remainingAmount = remainingAmount % 100;// Find the number of quarters in the remaining amountint numberOfQuarters = remainingAmount / 25; numberOfOneQuarters 2remainingAmount = remainingAmount % 25;// Find the number of dimes in the remaining amount numberOfOneQuartersint numberOfDimes = remainingAmount / 10; assignedremainingAmount = remainingAmount % 10;// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount / 5;remainingAmount = remainingAmount % 5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 65
  • 66. animation Trace ComputeChange Suppose amount is 11.56int remainingAmount = (int)(amount * 100); remainingAmount 6// Find the number of one dollarsint numberOfOneDollars = remainingAmount / 100; numberOfOneDollars 11remainingAmount = remainingAmount % 100;// Find the number of quarters in the remaining amountint numberOfQuarters = remainingAmount / 25; numberOfQuarters 2remainingAmount = remainingAmount % 25;// Find the number of dimes in the remaining amountint numberOfDimes = remainingAmount / 10; remainingAmountremainingAmount = remainingAmount % 10; updated// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount / 5;remainingAmount = remainingAmount % 5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount; Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 66
  • 67. The String TypeThe char type only represents one character. To represent a stringof characters, use the data type called String. For example,String message = "Welcome to Java";String is actually a predefined class in the Java library just like theSystem class and JOptionPane class. The String type is not aprimitive type. It is known as a reference type. Any Java class canbe used as a reference type for a variable. Reference data typeswill be thoroughly discussed in Chapter 8, “Objects and Classes.”For the time being, you just need to know how to declare a Stringvariable, how to assign a string to the variable, and how toconcatenate strings. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 67
  • 68. String Concatenation// Three strings are concatenatedString message = "Welcome " + "to " + "Java";// String Chapter is concatenated with number 2String s = "Chapter" + 2; // s becomes Chapter2// String Supplement is concatenated with character BString s1 = "Supplement" + B; // s1 becomes SupplementB Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 68
  • 69. DebuggingLogic errors are called bugs. The process of finding andcorrecting errors is called debugging. A common approachto debugging is to use a combination of methods to narrowdown to the part of the program where the bug is located.You can hand-trace the program (i.e., catch errors byreading the program), or you can insert print statements inorder to show the values of the variables or the executionflow of the program. This approach might work for ashort, simple program. But for a large, complex program,the most effective approach for debugging is to use adebugger utility. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 69
  • 70. DebuggerDebugger is a program that facilitates debugging.You can use a debugger toExecute a single statement at a time.Trace into or stepping over a method.Set breakpoints.Display variables.Display call stack.Modify variables. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 70
  • 71. JOptionPane InputThis book provides two ways of obtaining input.1. Using the Scanner class (console input)2. Using JOptionPane input dialogs Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 71
  • 72. Getting Input from Input Dialog BoxesString input = JOptionPane.showInputDialog( "Enter an input"); Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 72
  • 73. Getting Input from Input Dialog BoxesString string = JOptionPane.showInputDialog( null, “Prompting Message”, “Dialog Title”, JOptionPane.QUESTION_MESSAGE); Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 73
  • 74. Two Ways to Invoke the MethodThere are several ways to use the showInputDialog method. Forthe time being, you only need to know two ways to invoke it.One is to use a statement as shown in the example: String string = JOptionPane.showInputDialog(null, x, y, JOptionPane.QUESTION_MESSAGE);where x is a string for the prompting message, and y is a string forthe title of the input dialog box.The other is to use a statement like this: JOptionPane.showInputDialog(x);where x is a string for the prompting message. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 74
  • 75. Converting Strings to IntegersThe input returned from the input dialog box is a string. Ifyou enter a numeric value such as 123, it returns “123”.To obtain the input as a number, you have to convert astring into a number.To convert a string into an int value, you can use thestatic parseInt method in the Integer class as follows:int intValue = Integer.parseInt(intString);where intString is a numeric string such as “123”. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 75
  • 76. Converting Strings to DoublesTo convert a string into a double value, you can use thestatic parseDouble method in the Double class as follows:double doubleValue =Double.parseDouble(doubleString);where doubleString is a numeric string such as “123.45”. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 76
  • 77. Problem: Computing Loan Payments Using Input DialogsSame as the preceding program for computing loanpayments, except that the input is entered from theinput dialogs and the output is displayed in anoutput dialog. loanAmount monthlyInterestRate 1 1 numberOfYears 12 (1 monthlyInterestRate) ComputeLoanUsingInputDialog Run Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 77
  • 78. CompanionWebsite Debugging in NetBeans Supplement II.E, Learning Java Effectively with NetBeans Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 78
  • 79. CompanionWebsite Debugging in Eclipse Supplement II.G, Learning Java Effectively with NetBeans Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 79