Chapter 5 Methods Predefined and programmer defined methods

  • Slides: 20
Download presentation
Chapter 5 Methods Predefined and programmer defined methods Understand program modules called methods Use

Chapter 5 Methods Predefined and programmer defined methods Understand program modules called methods Use methods Create methods passing information to methods arguments Simulation methods with Random numbers Understand scope rules Understand Create methods that call themselves

Modularization What is the value of modularization? Part of the step-wise refinement technique we

Modularization What is the value of modularization? Part of the step-wise refinement technique we discussed earlier. n n n Divide and conquer Reuse-Don’t reinvent the wheel Problem simplification

Java’s predefined classes and methods The Math class System. out. print (Math. sqrt(900) )

Java’s predefined classes and methods The Math class System. out. print (Math. sqrt(900) ) we pass information into Methods through the arguments. for example 900 is a literal argument value. This method return a number that is a common way to pass information out of a method. Note the “. ” member access operator

Calling a method is kind of like the boss The boss gives a work

Calling a method is kind of like the boss The boss gives a work assignment to a worker. The boss also gives the worker some information to use in the work assignment. The arguments (900) The worker does the job, while the boss waits idle. Then the worker passes back the result to the boss.

Other math class methods abs(x) ceil(x) cos(x) exp(x) floor(x) log(x) max(x, y) min(x, y)

Other math class methods abs(x) ceil(x) cos(x) exp(x) floor(x) log(x) max(x, y) min(x, y) pow(x, y) sin(x) tan(x) A = Math. abs(-10) will store 10 in the variable A

Static class members Static methods Static variables Compared to instance variables Note the space

Static class members Static methods Static variables Compared to instance variables Note the space invaders anology

Making our own classes and methods (Programmer Defined) Use already made classes whenever possible.

Making our own classes and methods (Programmer Defined) Use already made classes whenever possible. Reference the API documentation before creating a new class Sometimes easier said then done. Methods should perform a single well defined task. Method names should we actions like “paint” “draw” “run” “compute. Totals” Should be able to be viewed on 1 -2 screens

Method declarations public float square(float x) { return x*x; } Must be declared inside

Method declarations public float square(float x) { return x*x; } Must be declared inside of a class using the method in our program n System. out. println( x + “ squared is “ + square(x) );

general form of method declaration Header or Interface Modifiers returntype methodname(parameters 1, 2, 3…)

general form of method declaration Header or Interface Modifiers returntype methodname(parameters 1, 2, 3…) { declarations and statements Body or return value; // this is optional implementation } return value type is required but may be void a return statement must be used unless the return type is void. A type is required for each parameter Arguments are passed to the method and stored in the method parameters by value. Arguments are order associated.

Passing variables The formal argument vs the actual argument Primitive data types vs reference

Passing variables The formal argument vs the actual argument Primitive data types vs reference data types (used by objects and arrays)

Argument promotion the automatic conversion of arguments to satisfy the declared type requirement of

Argument promotion the automatic conversion of arguments to satisfy the declared type requirement of the method declaration. For example square(4); -orsquare(x); X or 4 is an integer literal value and will be promoted to a float when passed to the square function. n This is limited by the promotion rules already discussed. We can promote implicitly when going to a larger storage class for example float to double. but not the other way.

Java packages java. applet java. awt. event java. io java. lang java. net java.

Java packages java. applet java. awt. event java. io java. lang java. net java. text java. util javax. swing. event

Random numbers? Computer are not random thinkers. Sometimes we need random thinking for simulations

Random numbers? Computer are not random thinkers. Sometimes we need random thinking for simulations or games. So Math. random() return a pseudorandom number of type double from 0. 0 to < 1. 0 we can range this value by multiplying and adding constants. n dice role=(int)(Math. random()*6) +1;

Final variables final double PI = 3. 1415; final float taxrate = 0. 06;

Final variables final double PI = 3. 1415; final float taxrate = 0. 06; These are used to define variables whose values can not be changed in the program. Was initialized a final variables value can not be changed. Using final variables make programs easier to maintain and read.

Variable scope of method parameter is limited to the method in which it is

Variable scope of method parameter is limited to the method in which it is declared local variable scope is limited to the point in the code where the variable is defined until the end of the code block. the scope of a for loop variable declared in the loop head is limited to the for loop the scope of a label is limited to the body of the label code block. The scope of a method or class field name is limited to the entire class.

Method overloading overloaded methods have the same name but a different number and type

Method overloading overloaded methods have the same name but a different number and type of parameters for example int min(int x, int y) int min(int x, int y, int z) double min(double x, double y)

recursion when a method calls itself this is recursion. Hu? is that legal? Yep!!!

recursion when a method calls itself this is recursion. Hu? is that legal? Yep!!! Here is the for example int factorial(int f) { if (f<=1) return 1 else return (factorial(f-1)*f); } recursive part!!!

recursion pros and cons recursion can allow for intuitive solutions to certain types of

recursion pros and cons recursion can allow for intuitive solutions to certain types of problems specifically those that are based on a recursive definition. A base case is required as the stopping point for the recursion to work. Without this out programs could have serious errors. Recursion is typically higher overhead then non-recursive solutions. An iterative solution can replace any recursive solution and provide better performance.

Chapter 5 Methods Summary Modularization in Java The Math class and its methods Method

Chapter 5 Methods Summary Modularization in Java The Math class and its methods Method declaration Argument promotion Java packages Random numbers? Declaration scope Method overloading Recursion vs iteration

Homework Problems 6, 10 on page 277 -278

Homework Problems 6, 10 on page 277 -278