1 / 79

Chapter 2 Using Objects

Chapter 2 Using Objects. Chapter Goals. Learn about variables Type of variables, assignment operators, etc. Classes, objects and methods Methods parameters and return values Accessor and mutator methods Number types. Chapter Goals. Constructing objects Write test programs

traci
Download Presentation

Chapter 2 Using Objects

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 2Using Objects Chapter 2  Using Objects1

  2. Chapter Goals • Learn about variables • Type of variables, assignment operators, etc. • Classes, objects and methods • Methods • parameters and return values • Accessor and mutator methods • Number types Chapter 2  Using Objects2

  3. Chapter Goals • Constructing objects • Write test programs • Browse the API documentation • Objects versus object references Chapter 2  Using Objects3

  4. Types and Variables • Every value has a type and a name • Variable declaration examples: • Variables • Store values • Can be used in place of the objects they store String greeting = "Hello, World!";PrintStream printer = System.out;int luckyNumber = 13; Chapter 2  Using Objects4

  5. Syntax 2.1: Variable Definition typeName variableName = value; ortypeName variableName; Example:   String greeting = "Hello, Dave!"; Purpose: To define a new variable of a particular type, (optionally) supply an initial value Chapter 2  Using Objects5

  6. Identifiers • Identifier • Name of a variable, method, or class • Rules for identifiers in Java • Can be made up of letters, digits, and the underscore (_) character • Cannot start with a digit • Cannot use other symbols such as ? or % • Spaces are not permitted inside identifiers • You cannot use reserved words • Identifiers are case sensitive Chapter 2  Using Objects6

  7. Identifiers • By convention, variable names start with a lowercase letter • But things like luckyNumber are OK • This is sometimes called “camel case” • By convention, class names start with an uppercase letter Chapter 2  Using Objects7

  8. Self Check • What is the type of the values 0 and "0"? • Which of the following are legal identifiers? • Define a variable to hold your name. Use “camel case” in the variable name. Greeting1gvoid101dalmatiansHello, World<greeting> Chapter 2  Using Objects8

  9. Answers • int and String • Only the first two are legal identifiers String myName = "John Q. Public"; Chapter 2  Using Objects9

  10. The Assignment Operator • Assignment operator is “=“ • Not used as a statement about equality • a = bassigns value of b to a • Not the same meaning as “=“ in math • Used to change the value of a variableint luckyNumber = 13; luckyNumber = 12; Chapter 2  Using Objects10

  11. Uninitialized Variables • Compile time error int luckyNumber;System.out.println(luckyNumber);   // ERROR - uninitialized variable Figure 2:An Uninitialized Object Variable Chapter 2  Using Objects11

  12. Initialized Variable • To initialize a variable • Or, better yet int luckyNumber;luckyNumber = 13; System.out.println(luckyNumber); int luckyNumber = 13; System.out.println(luckyNumber); Chapter 2  Using Objects12

  13. Syntax 2.2: Assignment • Assign a value to a variable variableName = value; Example: luckyNumber = 12; Purpose: To assign a new value to a previously defined variable. Chapter 2  Using Objects13

  14. Self Check • Is 12 = 12 a valid expression in the Java language? • How do you change the value of the greeting variable to "Hello, Nina!"? Chapter 2  Using Objects14

  15. Answers • No, the left-hand side of the = operator must be a variable • Note thatis not the right answer–that statement defines a new variable greeting = "Hello, Nina!"; String greeting = "Hello, Nina!"; Chapter 2  Using Objects15

  16. Objects and Classes • Object: entity that you can manipulate in your programs (by calling a method or methods) • Each object belongs to a class. For example, System.out belongs to the class PrintStream Chapter 2  Using Objects16

  17. Methods • Method: Sequence of instructions that accesses the data of an object • You manipulate objects by calling methods • Class: Set of objects with the same behavior • Class defines methods that can be applied to an object String greeting = "Hello";greeting.println() // Errorgreeting.length() // OK println not in String class length is in String class Chapter 2  Using Objects17

  18. Methods • Public Interface: Specifies what you can do with the objects of a class • Private (hidden) implementation describes how these actions are carried out Chapter 2  Using Objects18

  19. Representation of 2 String Objects Figure 4:A Representation of Two String Objects Chapter 2  Using Objects19

  20. Example of a String Method • length: counts the number of characters in a string String greeting = "Hello, World!"; int n = greeting.length(); // sets n to 13 Chapter 2  Using Objects20

  21. String Methods • toUpperCase:creates another String object that contains the characters of the original string, with lowercase letters converted to uppercase String river = "Mississippi"; String bigRiver = river.toUpperCase(); // sets bigRiver to "MISSISSIPPI" Chapter 2  Using Objects21

  22. String Methods • When applying a method to an object, method must be defined in the appropriate class • length is not defined in PrintStream class to which System.out belongs System.out.length(); //This method call is an error Chapter 2  Using Objects22

  23. Self Check • How can you compute the length of the string "Mississippi"? • How can you print out the uppercase version of "Hello, World!"? • Is it legal to call river.println()? Why or why not? Chapter 2  Using Objects23

  24. Answers • It is not legal. The variable river has type String and the println method is not a method of the String class. river.length() or "Mississippi".length() System.out.println(greeting.toUpperCase()); Chapter 2  Using Objects24

  25. Implicit and Explicit Parameters • Parameter (explicit parameter) is an input to a method. Not all methods have explicit parameters. • The object on which a method is invoked is an implicit parameter System.out.println(greeting) greeting.length() // has no explicit parameter System.out.println(greeting) Chapter 2  Using Objects25

  26. Implicit and Explicit Parameters Figure 5:Passing a parameter to the println method Chapter 2  Using Objects26

  27. Return Values • A return value is a result that the method has computed for use by the code that called it int n = greeting.length(); // return value stored in n Chapter 2  Using Objects27

  28. Return Values Figure 6:Invoking the length Method on a String Object Chapter 2  Using Objects28

  29. Passing Return Values • You can also use the return value as a parameter of another method • Not all methods return values. For example, System.out.println(greeting.length()); println Chapter 2  Using Objects29

  30. Passing Return Values Figure 7:Passing the Result of a Method Call to Another Method Chapter 2  Using Objects30

  31. A More Complex Call • replace method carries out a search-and- replace operation • This method call has • one implicit parameter: string "Mississippi" • two explicit parameters: "issipp" and "our" • a return value: the string "Missouri" river.replace("issipp", "our") // constructs a new string ("Missouri") Chapter 2  Using Objects31

  32. A More Complex Call Figure 8:Calling the replace Method Chapter 2  Using Objects32

  33. Method Definitions • Method definition specifies types of explicit parameters and return value • Type of implicit parameter is current class, so not mentioned in method definition Chapter 2  Using Objects33

  34. Method Definitions • Example: Class String defines • Search for “target” string and replace with “replacement” at each occurrence of string public int length() // return type: int // no explicit parameterpublic String replace(String target, String replacement) // return type: String; // two explicit parameters of type String Chapter 2  Using Objects34

  35. Method Definitions • If method returns no value, the return type is declared as void • A method name is overloaded if a class has more than one method with the same name (but different parameter types) public void println(String output) // in class PrintStream public void println(String output)public void println(int output) Chapter 2  Using Objects35

  36. Self Check • What are the implicit parameters, explicit parameters, and return values in the method call river.length()? • What is the result of the call river.replace("p", "s")? • What is the result of the call greeting.replace("World","Dave").length()? • How is the toUpperCase method defined in the String class? Chapter 2  Using Objects36

  37. Answers • The implicit parameter is river. There is no explicit parameter and return value is 11 • "Missississi" • 12 • As public String toUpperCase() with no explicit parameter and return type String Chapter 2  Using Objects37

  38. Number Types • Integers: short, int, long • For example 13 • Floating point numbers: float, double • For example1.30.00013 Chapter 2  Using Objects38

  39. Number Types • When a floating-point number is multiplied or divided by 10, only the position of the decimal point changes; it "floats". This representation is related to the scientific notation 1.3 × 10-4. • Numbers are not objects; numbers types are primitive types 1.3E-4       // 1.3  10-4 written in Java Chapter 2  Using Objects39

  40. Arithmetic Operations • Math operators: + -  • As in math, the  operator binds “more strongly” than the + or - operator 10 + nn - 110 * n       // 10 x n x + y * 2    // means the sum of x and y * 2(x + y) * 2  // multiplies the sum of x and y with 2 Chapter 2  Using Objects40

  41. Self Check • Which number type would you use for storing the area of a circle? • Why is the expression 13.println() an error? • Write an expression to compute the average of the values x and y. Chapter 2  Using Objects41

  42. Answers • double • An int is not an object, and you cannot call a method on it (x + y) * 0.5 Chapter 2  Using Objects42

  43. Rectangular Shapes and Rectangle Objects • Objects of type Rectangledescribe rectangular shapes Figure 9:Rectangular Shapes Chapter 2  Using Objects43

  44. Rectangular Shapes and Rectangle Objects • A Rectangle object is not a shape • It is an object that contains a set of numbers that describe a rectangle Figure 10:Rectangular Objects Chapter 2  Using Objects44

  45. Constructing Objects new Rectangle(5, 10, 20, 30) • Details • The new operator makes a Rectangle object • It uses the parameters (in this example, 5, 10, 20, and 30) to initialize the data of the object • It returns the object • Usually the output of the new operator is stored in a variable Rectangle box = new Rectangle(5, 10, 20, 30); Chapter 2  Using Objects45

  46. Constructing Objects • The process of creating a new object is called construction (since it uses a constructor method) • The four values 5, 10, 20, and 30 are called the construction parameters • Some classes let you construct objects in multiple ways new Rectangle() // constructs a rectangle with its top-left corner // at the origin (0, 0), width 0, and height 0 Chapter 2  Using Objects46

  47. Syntax 2.3: Object Construction new ClassName(parameters) Example: new Rectangle(5, 10, 20, 30)new Rectangle() Purpose: To construct a new object, initialize it with the construction parameters, and return a reference to the constructed object Chapter 2  Using Objects47

  48. Self Check • How do you construct a square with center (100, 100) and side length 20? • What does the following statement print? System.out.println(new Rectangle().getWidth()); Chapter 2  Using Objects48

  49. Answers • 0 new Rectangle(90, 90, 20, 20) Chapter 2  Using Objects49

  50. Accessor and Mutator Methods • Anaccessormethod does not change the state of its implicit parameter • A mutator method: changes the state of its implicit parameter double width = box.getWidth(); box.translate(15, 25); Chapter 2  Using Objects50

More Related