Download presentation
Presentation is loading. Please wait.
Published byOsborne Lynch Modified over 9 years ago
1
Topics Chapter 2: –Data conversion Chapter 3 –Object creation and object references –The String class and its methods –The Java standard class library –The Math class –Formatting output Chapter 5: –Simple Flow of Control
2
Exercise What is the value of the variable unitPrice? int totalPrice = 12; int quantity = 5; double unitPrice = 0; unitPrice = totalPrice / quantity;
3
Casting Casting is the most powerful, and dangerous, technique for conversion Both widening and narrowing conversions can be accomplished by explicitly casting a value To cast, the type is put in parentheses in front of the value being converted
4
Casting For example, if total and count are integers, but we want a floating point result when dividing them, we can cast total : result = (double) total / count; Another example: –double num = 0.9; int result = (int) num; –Convert 0.9 to an int value: 0, truncating any fractional part.
5
Exercise What is the value of the variable unitPrice? int totalPrice = 12; int quantity = 5; double unitPrice = 0; unitPrice = (double)totalPrice / quantity;
6
Object Creation and Object References
7
Creating Objects A variable holds either a primitive type or a reference to an object "Steve Jobs" name1 num1 38
8
Creating Objects A class name can be used as a type to declare an object reference variable String title; An object reference variable holds the address of an object The object itself must be created separately
9
Creating Objects Generally, we use the new operator to create an object title = new String ("Java Software Solutions"); This calls the String constructor, which is a special method that sets up the object Creating an object is called instantiation An object is an instance of a particular class
10
References An object reference can be thought of as a pointer to the location of the object "Steve Jobs" name1 num1 38
11
Assignment Revisited The act of assignment takes a copy of a value and stores it in a variable For primitive types: num1 38 num2 96 Before: num2 = num1; num1 38 num2 38 After:
12
Reference Assignment For object references, assignment copies the address: name2 = name1; name1 name2 Before: "Steve Jobs" "Steve Wozniak" name1 name2 After: "Steve Jobs"
13
The String Class
14
Because strings are so common, we don't have to use the new operator to create a String object String title = "Java Software Solutions"; This is special syntax that works only for strings Each string literal (enclosed in double quotes) represents a String object Copyright © 2012 Pearson Education, Inc.
15
String Indexes It is occasionally helpful to refer to a particular character within a string This can be done by specifying the character's numeric index The indexes begin at zero in each string In the string "Hello", the character 'H' is at index 0 and the 'o' is at index 4
16
String Methods Once a String object has been created, neither its value nor its length can be changed However, several methods of the String class return new String objects that are modified versions of the original
17
Method What is a method? –A group of statements that is given a name. How to invoke a method? –When a method is invoked, only the method’s name and the parameters are needed. What happens when a method is invoked? –When a method is invoked, the flow of control transfers to that method and the statements of that method are executed. How to interpret a method listing as follows? –int length() Returns the number of characters in this string. return typemethod name
18
Invoking Methods We've seen that once an object has been instantiated, we can use the dot operator to invoke its methods String title = "Data"; int count = title.length(); A method may return a value, which can be used in an assignment or expression A method invocation can be thought of as asking an object to perform a service
19
Some Methods of the String Class int length() –Returns the number of characters in this string. String concat (String str) –Returns a new string consisting of this string concatenated with str. –Example: title= title.concat(" Structures"); String toUpperCase () –Returns a new string identical to this string except all lowercase letters are converted to their uppercase equivalent. –Example: newTitle = title.toUpperCase();
20
Some Methods of the String Class String replace (char oldChar, char newChar) –Returns a new string that is identical with this string except that every occurrence of oldChar is replaced by newChar. –Example: String replaced = title.replace( ' a ', ' z ' ); String substring (int beginIndex, int endIndex) –Returns a new string that is a subset of this string starting at beginIndex and extending through endIndex -1. Thus the length of the substring is endIndex – beginIndex. –Example: String sub = title.substring(5, 7);
21
Exercise What output is produced by the following code fragment? String m1, m2, m3, m4; m1 = "Programming Language"; m2 = m1.toLowerCase(); m3 = m1 + " " + "Java"; m4 = m3.replace( ' a ', ' m ' ); System.out.println(m4.subString(2, 5));
22
Some Methods of the String Class int indexOf(String str) Returns the index within this string of the first occurrence of the specified substring. Exercise: Write a program that reads in a line of text, a search string, a replace string. The program will output a line of text with the first occurrence of the search string changed to the replace string.
23
Packages
24
Class Libraries A class library is a collection of classes that we can use when developing programs The Java standard class library is part of any Java development environment; Its classes are not part of the Java language, but we rely on them heavily Various classes we've already used ( System, Scanner, String ) are part of the Java standard class library
25
Packages The classes of the Java standard class library are organized into packages Some of the packages in the standard class library are: Package java.lang java.awt javax.swing java.net java.util Purpose General support Graphics and graphical user interfaces Additional graphics capabilities Network communication Utilities
26
The import Declaration When you want to use a class from a package, you can import the class, and then use just the class name import java.util.Scanner; To import all classes in a particular package, you can use the * wildcard character import java.util.*;
27
The import Declaration All classes of the java.lang package are imported automatically into all programs It's as if all programs contain the following line: import java.lang.*; That's why we didn't have to import the System or String classes explicitly in earlier programs
28
The Math Class
29
The Math class is part of the java.lang package The Math class contains methods that perform various mathematical functions These include: –absolute value, square root, exponentiation –trigonometric functions
30
The Math Class The methods of the Math class are static methods (also called class methods) Static methods can be invoked through the class name – no object of the Math class is needed value = Math.cos(90) + Math.sqrt(delta);
31
Some Methods of the Math Class static int abs (int num) –Returns the absolute value of num. static double sin (double angle) –Returns the sine of angle measured in radians. static double ceil (double num) –Returns the ceiling of num, which is the smallest whole number greater than or equal to num.
32
Some Methods of the Math Class static double pow (double num, double power) –Returns the value num raised to the specified power. static double sqrt (double num) –Returns the square root of num, which must be positive
33
Copyright © 2012 Pearson Education, Inc. //******************************************************************** // Quadratic.java Author: Lewis/Loftus // // Demonstrates the use of the Math class to perform a calculation // based on user input. //******************************************************************** import java.util.Scanner; public class Quadratic { //----------------------------------------------------------------- // Determines the roots of a quadratic equation. //----------------------------------------------------------------- public static void main (String[] args) { int a, b, c; // ax^2 + bx + c double discriminant, root1, root2; Scanner scan = new Scanner (System.in); System.out.print ("Enter the coefficient of x squared: "); a = scan.nextInt(); continued
34
Copyright © 2012 Pearson Education, Inc. continued System.out.print ("Enter the coefficient of x: "); b = scan.nextInt(); System.out.print ("Enter the constant: "); c = scan.nextInt(); // Use the quadratic formula to compute the roots. // Assumes a positive discriminant. discriminant = Math.pow(b, 2) - (4 * a * c); root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2 * a); root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2 * a); System.out.println ("Root #1: " + root1); System.out.println ("Root #2: " + root2); }
35
Imprecision of Floating-point Numbers Floating-point numbers are not real numbers. There are a finite number of them. There are maximum and minimum values they can represent. Most importantly, they have limited, though large, precision and are subject to round-off error.
36
Formatting Output
37
It is often necessary to format values in certain ways so that they can be presented properly The Java standard class library contains classes that provide formatting capabilities For example, a currency formatter can be used to format 5.8792 to monetary value $5.88 and a percent formatter can be used to format 0.492 to 49%. Copyright © 2012 Pearson Education, Inc.
38
Formatting Output The NumberFormat class allows you to format values as currency or percentages The DecimalFormat class allows you to format values based on a pattern Both are part of the java.text package
39
Formatting Output The NumberFormat class has static methods that return a formatter object NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); Each formatter object has a method called format that returns a string with the specified information in the appropriate format.
40
Formatting Output The fractional potion of the value will be rounded up. String format (double number) –Returns a string containing the specified number formatted according to this object’s pattern.
41
Copyright © 2012 Pearson Education, Inc. //******************************************************************** // Purchase.java Author: Lewis/Loftus // // Demonstrates the use of the NumberFormat class to format output. //******************************************************************** import java.util.Scanner; import java.text.NumberFormat; public class Purchase { //----------------------------------------------------------------- // Calculates the final price of a purchased item using values // entered by the user. //----------------------------------------------------------------- public static void main (String[] args) { final double TAX_RATE = 0.06; // 6% sales tax int quantity; double subtotal, tax, totalCost, unitPrice; Scanner scan = new Scanner (System.in); continued
42
Copyright © 2012 Pearson Education, Inc. continued NumberFormat fmt1 = NumberFormat.getCurrencyInstance(); NumberFormat fmt2 = NumberFormat.getPercentInstance(); System.out.print ("Enter the quantity: "); quantity = scan.nextInt(); System.out.print ("Enter the unit price: "); unitPrice = scan.nextDouble(); subtotal = quantity * unitPrice; tax = subtotal * TAX_RATE; totalCost = subtotal + tax; // Print output with appropriate formatting System.out.println ("Subtotal: " + fmt1.format(subtotal)); System.out.println ("Tax: " + fmt1.format(tax) + " at " + fmt2.format(TAX_RATE)); System.out.println ("Total: " + fmt1.format(totalCost)); }
43
Formatting Output The DecimalFormat class can be used to format a floating point value in various ways The constructor of the DecimalFormat class takes a string that represents a pattern for the formatted number, for example, DecimalFormat fmt = new DecimalFormat( " 0.### " ); Indicates the fractional portion of the value should be rounded to three digits
44
Formatting Output String format (double number) –Returns a string containing the specified number formatted according to the current pattern. For example, you can specify that the number should be rounded to three decimal digits. For example, 65.83752->65.838
45
Copyright © 2012 Pearson Education, Inc. //******************************************************************** // CircleStats.java Author: Lewis/Loftus // // Demonstrates the formatting of decimal values using the // DecimalFormat class. //******************************************************************** import java.util.Scanner; import java.text.DecimalFormat; public class CircleStats { //----------------------------------------------------------------- // Calculates the area and circumference of a circle given its // radius. //----------------------------------------------------------------- public static void main (String[] args) { int radius; double area, circumference; Scanner scan = new Scanner (System.in); continued
46
Copyright © 2012 Pearson Education, Inc. continued System.out.print ("Enter the circle's radius: "); radius = scan.nextInt(); area = Math.PI * Math.pow(radius, 2); circumference = 2 * Math.PI * radius; // Round the output to three decimal places DecimalFormat fmt = new DecimalFormat ("0.###"); System.out.println ("The circle's area: " + fmt.format(area)); System.out.println ("The circle's circumference: " + fmt.format(circumference)); }
47
Exercise Suppose we have read in a double value num from the user. Write code statements that print the result of raising num to the fourth power. Output the results to 2 decimal places.
48
5-48 Flow of Control The order of statement execution is called the flow of control Unless specified otherwise, the order of statement execution through a method is linear: one statement after another in sequence
49
5-49 The if Statement The if statement has the following syntax: if ( condition ) statement; if is a Java reserved word The condition must be a boolean expression. It must evaluate to either true or false. If the condition is true, the statement is executed. If it is false, the statement is skipped.
50
5-50 Logic of an if statement condition evaluated statement true false Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
51
5-51 Boolean Expressions A condition often uses one of Java's equality operators or relational operators, which all return boolean results: == equal to != not equal to < less than > greater than <= less than or equal to >= greater than or equal to
52
5-52 //******************************************************************** // Age.java Author: Lewis/Loftus // // Demonstrates the use of an if statement. //******************************************************************** import java.util.Scanner; public class Age { //----------------------------------------------------------------- // Reads the user's age and prints comments accordingly. //----------------------------------------------------------------- public static void main (String[] args) { final int MINOR = 21; Scanner scan = new Scanner (System.in); System.out.print ("Enter your age: "); int age = scan.nextInt(); continue
53
5-53 continue System.out.println ("You entered: " + age); if (age < MINOR) System.out.println ("Youth is a wonderful thing. Enjoy."); System.out.println ("Age is a state of mind."); }
54
5-54 Exercise Write a conditional statement that assigns 10,000 to the variable bonus if the value of the variable goodsSold is greater than 500,000.
55
5-55 Comparing Strings Remember that in Java a character string is an object The equals method can be called with strings to determine if two strings contain exactly the same characters in the same order The equals method returns a boolean result if (name1.equals(name2)) System.out.println ("Same name"); else System.out.println(“Not same”);
56
Readings and Assignments Reading: Chapter 2.5, 3.1-3.6, 3.8 Lab Assignment: Java Lab 3 Self-Assessment Exercises: –Self-Review Questions Section SR2.34, 2.35, 3.6, 3.7, 3.21, 3.23, 3.28 –After Chapter Exercises EX2.11 g, h, i, j, k, l, m, 3.4, 3.11
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.