1 / 73

Chapter 7 Objects and Classes (continued)

Chapter 7 Objects and Classes (continued). The Date Class.

carlota
Télécharger la présentation

Chapter 7 Objects and Classes (continued)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7 Objects and Classes(continued)

  2. The Date Class Java provides a system-independent encapsulation of date and time in the java.util.Date class. You can use the Date class to create an instance for the current date and time and use its toString method to return the date and time as a string.

  3. The Date Class Example For example, the following code java.util.Date date = new java.util.Date(); System.out.println(date.toString()); displays a string likeSun Mar 09 13:50:19 EST 2003.

  4. The Random Class You have used Math.random() to obtain a random double value between 0.0 and 1.0 (excluding 1.0). A more useful random number generator is provided in the java.util.Random class.

  5. The Random Class Example If two Random objects have the same seed, they will generate identical sequences of numbers. For example, the following code creates two Random objects with the same seed 3. Random random1 = new Random(3); System.out.print("From random1: "); for (int i = 0; i < 10; i++) System.out.print(random1.nextInt(1000) + " "); Random random2 = new Random(3); System.out.print("\nFrom random2: "); for (int i = 0; i < 10; i++) System.out.print(random2.nextInt(1000) + " "); From random1: 734 660 210 581 128 202 549 564 459 961 From random2: 734 660 210 581 128 202 549 564 459 961

  6. Instance Variables, and Methods Instance variables belong to a specific instance.Instance methods are invoked by an instance of the class.

  7. Static Variables, Constants, and Methods Static variables are shared by all the instances of the class.Static methods are not tied to a specific object. Static constants are final variables shared by all the instances of the class.

  8. Static Variables, Constants, and Methods, cont. To declare static variables, constants, and methods, use the static modifier.

  9. Static Variables, Constants, and Methods, cont.

  10. Example ofUsing Instance and Class Variables and Method Objective: Demonstrate the roles of instance and class variables and their uses. This example adds a class variable numberOfObjects to track the number of Circle objects created. Circle2 TestCircle2 Run

  11. Visibility Modifiers and Accessor/Mutator Methods By default, the class, variable, or method can beaccessed by any class in the same package. • public The class, data, or method is visible to any class in any package. • private The data or methods can be accessed only by the declaring class. The get and set methods are used to read and modify private properties.

  12. The private modifier restricts access to within a class, the default modifier restricts access to within a package, and the public modifier enables unrestricted access.

  13. NOTE An object cannot access its private members, as shown in (b). It is OK, however, if the object is declared in its own class, as shown in (a).

  14. Why Data Fields Should Be private? To protect data. To make class easy to maintain.

  15. Example ofData Field Encapsulation Circle3 TestCircle3 Run

  16. Passing Objects to Methods • Passing by value for primitive type value (the value is passed to the parameter) • Passing by value for reference type value (the value is the reference to the object) TestPassObject Run

  17. Passing Objects to Methods, cont.

  18. Array of Objects Circle[] circleArray = new Circle[10]; An array of objects is actually an array of reference variables. So invoking circleArray[1].getArea() involves two levels of referencing as shown in the next figure. circleArray references to the entire array. circleArray[1] references to a Circle object.

  19. Array of Objects, cont. Circle[] circleArray = new Circle[10];

  20. Array of Objects, cont. Summarizing the areas of the circles TotalArea Run

  21. Chapter 8 Strings and Text I/O

  22. Motivations Often you encounter the problems that involve string processing and file input and output. Suppose you need to write a program to replace all occurrences of a word with a new word in a file. How do you solve this problem? This chapter introduces strings and text files, which will enable you to solve this problem.

  23. Objectives • To use the String class to process fixed strings (§8.2). • To use the Character class to process a single character (§8.3). • To use the StringBuilder/StringBuffer class to process flexible strings (§8.4). • To know the differences between the String, StringBuilder, and StringBuffer (§8.2-8.4). • To learn how to pass arguments to the main method from the command line (§8.5). • To discover file properties, delete and rename files using the File class (§8.6). • To write data to a file using the PrintWriter class (§8.7.1). • To read data from a file using the Scanner class (§8.7.2). • (GUI) To open files using a dialog box (§8.8).

  24. Constructing Strings String newString = new String(stringLiteral); String message = new String("Welcome to Java"); Since strings are used frequently, Java provides a shorthand initializer for creating a string: String message = "Welcome to Java";

  25. Strings Are Immutable A String object is immutable; its contents cannot be changed. Does the following code change the contents of the string? String s = "Java"; s = "HTML";

  26. animation Trace Code String s = "Java"; s = "HTML";

  27. Interned Strings Since strings are immutable and are frequently used, to improve efficiency and save memory, the JVM uses a unique instance for string literals with the same character sequence. Such an instance is called interned. For example, the following statements:

  28. Examples display s1 == s is false s1 == s3 is true A new object is created if you use the new operator. If you use the string initializer, no new object is created if the interned object is already created.

  29. String Comparisons

  30. String Comparisons • equals String s1 = new String("Welcome“); String s2 = "welcome"; if (s1.equals(s2)){ // s1 and s2 have the same contents } if (s1 == s2) { // s1 and s2 have the same reference }

  31. String Comparisons, cont. • compareTo(Object object) String s1 = new String("Welcome“); String s2 = "welcome"; if (s1.compareTo(s2) > 0) { // s1 is greater than s2 } else if (s1.compareTo(s2) == 0) { // s1 and s2 have the same contents } else // s1 is less than s2

  32. String Length, Characters, and Combining Strings

  33. Finding String Length Finding string length using the length() method: message = "Welcome"; message.length() (returns 7)

  34. Retrieving Individual Characters in a String • Do not use message[0] • Use message.charAt(index) • Index starts from 0

  35. String Concatenation String s3 = s1.concat(s2); String s3 = s1 + s2; s1 + s2 + s3 + s4 + s5 same as (((s1.concat(s2)).concat(s3)).concat(s4)).concat(s5);

  36. Extracting Substrings

  37. Extracting Substrings You can extract a single character from a string using the charAt method. You can also extract a substring from a string using the substring method in the String class. String s1 = "Welcome to Java"; String s2 = s1.substring(0, 11) + "HTML";

  38. Converting, Replacing, and Splitting Strings

  39. Examples "Welcome".toLowerCase() returns a new string, welcome. "Welcome".toUpperCase() returns a new string, WELCOME. " Welcome ".trim() returns a new string, Welcome. "Welcome".replace('e', 'A') returns a new string, WAlcomA. "Welcome".replaceFirst("e", "AB") returns a new string, WABlcome. "Welcome".replace("e", "AB") returns a new string, WABlcomAB. "Welcome".replace("el", "AB") returns a new string, WABlcome.

  40. Matching, Replacing and Splitting by Patterns You can match, replace, or split a string by specifying a pattern. This is an extremely useful and powerful feature, commonly known as regular expression. Regular expression is complex to beginning students. For this reason, two simple patterns are used in this section. Please refer to Supplement III.F, “Regular Expressions,” for further studies. "Java".matches("Java"); "Java".equals("Java"); "Java is fun".matches("Java.*"); "Java is cool".matches("Java.*");

  41. Finding a Character or a Substring in a String

  42. Finding a Character or a Substring in a String "Welcome to Java".indexOf('W')returns 0. "Welcome to Java".indexOf('x')returns -1. "Welcome to Java".indexOf('o', 5)returns 9. "Welcome to Java".indexOf("come")returns 3. "Welcome to Java".indexOf("Java", 5)returns 11. "Welcome to Java".indexOf("java", 5)returns -1. "Welcome to Java".lastIndexOf('a')returns 14.

  43. Convert Character and Numbers to Strings The String class provides several static valueOf methods for converting a character, an array of characters, and numeric values to strings. These methods have the same name valueOf with different argument types char, char[], double, long, int, and float. For example, to convert a double value to a string, use String.valueOf(5.44). The return value is string consists of characters ‘5’, ‘.’, ‘4’, and ‘4’.

  44. The Character Class

  45. Examples Character charObject = new Character('b'); charObject.compareTo(new Character('a')) returns 1 charObject.compareTo(new Character('b')) returns 0 charObject.compareTo(new Character('c')) returns -1 charObject.compareTo(new Character('d') returns –2 charObject.equals(new Character('b')) returns true charObject.equals(new Character('d')) returns false

  46. StringBuilder and StringBuffer The StringBuilder/StringBuffer class is an alternative to the String class. In general, a StringBuilder/StringBuffer can be used wherever a string is used. StringBuilder/StringBuffer is more flexible than String. You can add, insert, or append new contents into a string buffer, whereas the value of a String object is fixed once the string is created.

  47. StringBuilder Constructors

  48. Modifying Strings in the Builder

  49. Examples stringBuilder.append("Java"); stringBuilder.insert(11, "HTML and "); stringBuilder.delete(8, 11) changes the builder to Welcome Java. stringBuilder.deleteCharAt(8) changes the builder to Welcome o Java. stringBuilder.reverse() changes the builder to avaJ ot emocleW. stringBuilder.replace(11, 15, "HTML") changes the builder to Welcome to HTML. stringBuilder.setCharAt(0, 'w') sets the builder to welcome to Java.

  50. The toString, capacity, length, setLength, and charAt Methods

More Related