1 / 36

User-Defined Methods in Java Programming

Learn about user-defined methods in Java programming, including value-returning methods, void methods, passing parameters, and scope of identifiers.

hsanders
Download Presentation

User-Defined Methods in Java Programming

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 User-Defined Methods Java Programming from Thomson Course Tech, adopted by kcluk

  2. Predefined Classes • Methods already written and provided by Java • Organized as a collection of classes (class libraries) • To use: import package • Method type: data type of value returned by method

  3. class Math (Package: java.lang)

  4. class Math (Package: java.lang)

  5. class Character (Package: java.lang)

  6. class Character (Package: java.lang)

  7. class Character (Package: java.lang)

  8. Syntax: Value-Returning Method modifier(s)returnTypemethodName(formal parameter list) { //body of method }

  9. User-Defined Methods • Value-returning methods • Used in expressions • Calculate and return a value • Can save value for later calculation or print value • Modifiers: public, private, protected, static, abstract, final • returnType: type of value that the method calculates and returns (using return statement) • methodName: Java identifier; name of method

  10. Syntax Syntax: Formal Parameter List The syntax of the formal parameter list is: (dataTypeidentifier, dataTypeidentifier,…) Method Call The syntax to call a value-returning method is: methodName(actual parameter list)

  11. Syntax Syntax: Actual Parameter List The syntax of the actual parameter list is: (expression or variable, expression or variable, …) Syntax: return Statement The returnstatement has the following syntax: return expr;

  12. Equivalent Method Definitions public static double larger(double x, double y) { doublemax; if(x >= y) max = x; else max = y; returnmax; }

  13. public static doublelarger(doublex, doubley) { if(x >= y) returnx; else returny; } Equivalent Method Definitions Activities, ref to Supple: Download and run the class AdditionExample.

  14. Flow of Execution • Execution always begins with the first statement in the method main • User-defined methods execute only when called • Call to method transfers control from caller to called method • In method call statement, specify only actual parameters, not data type or method type • Control goes back to caller when method exits

  15. Programming Example: Largest Number • Input: Set of 10 numbers • Output: Largest of 10 numbers • Solution: • Get numbers one at a time • Method largest number: returns the larger of 2 numbers • For loop: calls method largest number on each number received and compares to current largest number pls refer to book pg 332-334

  16. Solution: Largest Number

  17. Sample Run: Largest Number Sample Run: (When you execute this program, enter all numbers in the same line.) Enter 10 numbers in the same line. 10.5 56.34 73.3 42 22 67 88.55 26 62 11 The largest number is 88.55

  18. Void Methods • Similar in structure to value-returning methods • No method type • Call to method is always stand-alone statement • Can use return statement to exit method early

  19. Void Methods: Syntax Method Definition The general form (syntax) of a void method without parameters is as follows: modifier(s) void methodName() { statements } Method Call (Within the Class) The method call has the following syntax: methodName();

  20. Void Methods with Parameters: Syntax Method Definition The definition of a void method with parameters has the following syntax: modifier(s) voidmethodName(formal parameter list) { statements } Formal Parameter List The formal parameter list has the following syntax: (dataType variable, dataType variable, …)

  21. Void Methods with Parameters: Syntax Method Call The method call has the following syntax: methodName(actual parameter list); Actual Parameter List The actual parameter list has the following syntax: (expression or variable, expression or variable, …) Activities, ref to Supple: Download and run the class AdditionExample2

  22. Primitive Data Type Variables as Parameters • A formal parameter receives a copy of its corresponding actual parameter • If a formal parameter is a variable of a primitive data type • Value of actual parameter is directly stored • Cannot pass information outside the method • Provides only a one-way link between actual parameters and formal parameters Download & run class PrimitivePass

  23. Reference Variables as Parameters:Created by new operater • If a formal parameter is a reference variable • Copies value of corresponding actual parameter • Value of actual parameter is address of object where actual data is stored • Both formal and actual parameter refer to same object Download & run class ReferencePass

  24. Uses of Reference Variables as Parameters • Adv: • Can return more than one value from a method • Can change the value of the actual object • When passing address, would save memory space and time, relative to copying large amount of data

  25. Reference Variables as Parameters: type String Download & run Supplement 7C: prog A & B

  26. Scope of an Identifier Within a Class • Scope (of an identifier): refers to those parts of a program where the identifier is accessible • Local variables: variables declared within a method (or block) • Within a class • Any method can call any other method • Exception: static method cannot call a nonstatic method

  27. Scope Rules • Identifier declared within a block is accessible • Only within the block from the point at which it is declared until the end of the block • By those blocks nested within that block if the nested block does not have an identifier with the same name as the identifier in the outside block *Outside block: block that encloses nested block

  28. Scope Rules: Demonstrated

  29. Scope Rules: Demonstrated public classScopeRules { static final doublerate = 10.50; static intz; static doublet; public static voidmain(String[] args) { intnum; doublex, z; charch; //... } public static voidone(intx, chary) { //... }

  30. public static intw; public static voidtwo(intone, intz) { charch; inta; //block three { int x = 12; //... }//end block three //... } }

  31. Scope Rules: Demonstrated

  32. Method Overloading: An Introduction • Method overloading: more than one method can have the same name • Overloading Rules • Every method must have a different number of formal parameters OR • If thenumber of formal parameters is the same, then the data type of the formal parameter (in the order listed), must differ in at least one position • Types of parameters determine which method executes

  33. Programming Example: Data Comparison • Input: Data from 2 different files • Data format: Course Number followed by scores • Output: Course Number, Group Number, Course Average • Solution: • Read from more than one file, write output to file • Generate bar graphs • User-defined methods and re-use (calculateAverage and printResult) • Parameter passing

  34. Programming Example: Data Comparison

  35. Chapter Summary • Predefined methods • User-defined methods • Value-returning methods • Void methods • Formal parameters • Actual parameters • Flow of Execution

  36. Chapter Summary • Primitive data type variables as parameters • One-way link between actual parameters and formal parameters (limitations caused) • Reference variables as parameters • Can pass one or more variables from a method • Can change value of actual parameter • Scope of an identifier within a class • Method overloading

More Related