Presentation is loading. Please wait.

Presentation is loading. Please wait.

JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper.

Similar presentations


Presentation on theme: "JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper."— Presentation transcript:

1 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Walter Savitch Frank M. Carrano Walter Savitch Frank M. Carrano More About Objects and Methods Chapter 6

2 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Objectives Define and use constructors Write and use static variables and methods Use methods from class Math Use predefined wrapper classes Use stubs, drivers to test classes and programs Write and use overloaded methods Define and use packages and import statements

3 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Constructors: Outline Defining Constructors Calling Methods from Constructors Calling a Constructor from Other Constructors

4 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Defining Constructors … A special method called when instance of an object created with new  Create objects  Initialize values of instance variables Can have parameters  To specify initial values if desired May have multiple definitions  Each with different numbers or types of parameters

5 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Defining Constructors… Example class to represent pets Figure 6.1 Class Diagram for Class Pet

6 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Defining Constructors… Note sample code, listing 6.1 class Petsample code Note different constructors  Default  With 3 parameters  With String parameter  With double parameter Note sample program, listing 6.2 class PetDemosample program

7 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Defining Constructors… Sample screen output

8 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Defining Constructors… Constructor without parameters is the default constructor  Java will define this automatically if the class designer does not define any constructors  If you do define a constructor, Java will not automatically define a default constructor Usually default constructors not included in class diagram

9 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Defining Constructors Figure 6.2 A constructor returning a reference

10 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Calling Methods from Other Constructors… Constructor can call other class methods View sample code, listing 6.3 class Pet2sample code  Note method set  Keeps from repeating code

11 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Calling Constructor from Other Constructors From listing 6.3 we have the initial constructor and method set In the other constructors use the this reference to call initial constructor View revised class, listing 6.4 class Pet3revised class  Note calls to initial constructor

12 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Static Variables & Methods: Outline Static Variables Static Methods Dividing the Task of a main Method into Subtasks Adding a main Method to a class The Math Class Wrapper Classes

13 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Static Variables … Static variables are shared by all objects of a class  Variables declared static final are considered constants – value cannot be changed Variables declared static (without final ) can be changed  Only one instance of the variable exists  It can be accessed by all instances of the class

14 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Static Variables Static variables also called class variables  Contrast with instance variables Do not confuse class variables with variables of a class type Both static variables and instance variables are sometimes called fields or data members

15 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Static Methods … Some methods may have no relation to any type of object Example  Compute max of two integers  Convert character from upper- to lower case Static method declared in a class  Can be invoked without using an object  Instead use the class name

16 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Static Methods View sample class, listing 6.5 class DimensionConvertersample class View demonstration program, listing 6.6 class DimensionConverterDemodemonstration program Sample screen output

17 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Mixing Static and Nonstatic Methods View sample class, listing 6.7 class SavingsAccountsample class View demo program, listing 6.8 class SavingsAccountDemodemo program Sample screen output

18 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved The Math Class Provides many standard mathematical methods Example methods, figure 6.3a

19 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved The Math Class Example methods, figure 6.3b

20 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Wrapper Classes … Recall that arguments of primitive type passed to a method are treated differently from those of a class type Sometimes we may need to treat a primitive value as an object For this purpose Java provides a wrapper class for each primitive type These wrapper classes also have useful predefined constants and methods

21 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Here are the names of the wrapper classes:  Byte  Short  Integer  Long  Float  Double  Boolean  Character

22 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Wrapper classes have no default constructor, so the programmer must specify an initializing value when creating new wrapper object Wrapper classes have no set methods, so we cannot set the value of a wrapper object after has been created

23 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Java’s wrapper classes convert a value of a primitive type to a corresponding class type: Integer n = new Integer(42); The instance variable of the object n has the value 42.

24 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … To retrieve the integer value int i = n.intValue(); primitivewrapperextraction typeclassmethod intIntegerintValue longLonglongValue floatFloatfloatValue doubleDoubledoubleValue charCharactercharValue

25 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Automatic Boxing and Unboxing … Converting a value of a primitive type to an object of its corresponding wrapper class is called boxing. Integer n = new Integer(42); Java 5.0 boxes automatically. Integer n = 42;

26 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … … Automatic Boxing and Unboxing … Converting an object of a wrapper class to a value of the corresponding primitive type is called unboxing. int i = n.intValue; Java 5.0 unboxes automatically. int i = n;

27 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … … Automatic Boxing and Unboxing Automatic boxing and unboxing also apply to parameters.  A primitive argument can be provided for a corresponding formal parameter of the associated wrapper class.  A wrapper class argument can be provided for a corresponding formal parameter of the associated primitive type.

28 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Useful Constants Wrapper classes contain several useful constants such as Integer.MAX_VALUE Integer.MIN_VALUE Double.MAX_VALUE Double.MIN_VALUE

29 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Type Conversions … Static methods in the wrapper classes can be used to convert a string to the corresponding number of type int, long, float, or double. String theString = “199.98”; double doubleSample = Double.parseDouble(theString); or Double.parseDouble(theString.trim()); if the string has leading or trailing whitespace.

30 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … … Type Conversions … Methods for converting strings to the corresponding numbers Integer.parseInt(“42”) Long.parseLong(“42”) Float.parseFloat(“199.98”) Double.parseDouble(“199.98”)

31 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … … Type Conversions Methods for converting strings to the corresponding numbers Integer.toString(42) Long.toString(42) Float.toString(199.98) Double.toString(199.98)

32 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Static Constants in Class Boolean The constants in wrapper class Boolean include Boolean.TRUE and Boolean.FALSE but the keywords true and false are much easier to use.

33 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes … Figure 6.4a Static methods in class Character

34 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Wrapper Classes Figure 6.4b Static methods in class Character

35 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Writing Methods: Outline Case Study: Formatting Output Decomposition Addressing Compiler Concerns Testing Methods

36 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Formatting Output … Algorithm to display a double amount as dollars and cents 1. dollars = the number of whole dollars in amount. 2. cents = the number of cents in amount. Round if there are more than two digits after the decimal point. 3. Display a dollar sign, dollars, and a decimal point. 4. Display cents as a two-digit integer.

37 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Formatting Output … View sample code, listing 6.12 class DollarFormatFirstTrysample code  Note code to separate dollars and cents  Note if-else statement View sample program, listing 6.13 class DollarFormatFirstTryDriversample program  Note call to the write method

38 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Formatting Output … Sample screen output

39 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Formatting Output View corrected code, listing 6.14 class DollarFormatcorrected code  Note code to handle negative values Program in listing 6.13 will now print values correctlyProgram

40 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Decomposition Recall pseudocode from previous slideprevious slide With this pseudocode we decompose the task into subtasks  Then solve each subtask  Combine code of subtasks  Place in a method

41 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Addressing Compiler Concerns Compiler ensures necessary tasks are done  Initialize variables  Include return statement Rule of thumb: believe the compiler  Change the code as requested by compiler  It is most likely correct

42 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Testing Methods To test a method use a driver program  Example – code in listing 6.13listing 6.13 Every method in a class should be tested Bottom-up testing  Test code at end of sequence of method calls first Use a stub – simplified version of a method for testing purposes

43 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Overloading: Outline Overloading Basics Overloading and Automatic Type Conversion Overloading and the Return Type Programming Example: A Class for Money

44 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Overloading Basics … When two or more methods have same name within the same class Java distinguishes the methods by number and types of parameters  If it cannot match a call with a definition, it attempts to do type conversions A method's name and number and type of parameters is called the signature

45 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Overloading Basics View example program, listing 6.15 class Overloadexample program Note overloaded method getAverage Sample screen output

46 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Overloading and Type Conversion Overloading and automatic type conversion can conflict Recall definition of Pet class of listing 6.1listing 6.1  If we pass an integer to the constructor we get the constructor for age, even if we intended the constructor for weight Remember the compiler attempts to overload before it does type conversion Use descriptive method names, avoid overloading

47 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Overloading and Return Type You must not overload a method where the only difference is the type of value returned

48 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Programming Example … A class for money View sample class, listing 6.16 class Moneysample class Note use of  Private instance variables  Methods to set values  Methods for doing arithmetic operations

49 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Programming Example View demo program, listing 6.17 class MoneyDemodemo program Sample screen output

50 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Information Hiding Revisited… Privacy Leaks Instance variable of a class type contain address where that object is stored Assignment of class variables results in two variables pointing to same object  Use of method to change either variable, changes the actual object itself View insecure class, listing 6.18 class PetPairinsecure class

51 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved …Information Hiding Revisited View sample program, listing 6.19 class Hackersample program Sample screen output

52 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Packages: Outline Packages and Importing Package Names and Directories Name Clashes

53 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Packages and Importing A package is a collection of classes grouped together into a folder Name of folder is name of package Each class  Placed in a separate file  Has this line at the beginning of the file package Package_Name; Classes use packages by use of import statement

54 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Package Names and Directories Package name tells compiler path name for directory containing classes of package Search for package begins in class path base directory  Package name uses dots in place of / or \ Name of package uses relative path name starting from any directory in class path

55 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Package Names and Directories Figure 6.5 A package name

56 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Name Clashes Packages help in dealing with name clashes  When two classes have same name Different programmers may give same name to two classes  Ambiguity resolved by using the package name

57 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved Summary … Constructor method creates, initializes object of a class Default constructor has no parameters Within a constructor use this as the name for another constructor in same class A static variable is shared by (available to) all objects of the class

58 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Summary … Any primitive type has a wrapper class to allow treatment as an object Java performs an automatic type cast between a primitive value and an object of a wrapper class as needed via “boxing” and “unboxing” (remember these terms) Divide method tasks into subtasks Test all methods individually

59 JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved … Summary Methods with same name, different signatures are overloaded methods A package of class definitions grouped together in the same folder must contain a package statement at beginning of each class


Download ppt "JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN 0136130887 © 2008 Pearson Education, Inc., Upper."

Similar presentations


Ads by Google