* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 4 Methods
Computational electromagnetics wikipedia , lookup
Computational phylogenetics wikipedia , lookup
Time value of money wikipedia , lookup
Reinforcement learning wikipedia , lookup
Least squares wikipedia , lookup
Corecursion wikipedia , lookup
Computational chemistry wikipedia , lookup
Computational fluid dynamics wikipedia , lookup
Chapter 5 Methods Introducing Methods Declaring Methods Calling Methods Passing Parameters Pass by Value Overloading Methods Method Abstraction local variable, global variable The Math Class (library functions) Java Documentation Introducing Methods A method is a collection of statements that are grouped together to perform an operation. Method Structure modifier methodName returnValueType method heading method body parameters public static int max(int num1, int num2) { int result = 0; if (num1 > num2) result = num1; else result = num2; return result; } return value Declaring Methods public static int max(int num1, int num2) { if (num1 > num2) return num1; else return num2; } Calling Methods Example 4.1 Testing the max method This program demonstrates calling a method max to return the largest of the int values TestMax Run Passing Parameters You pass arguments to the corresponding parameters in the method signature For e.g: void nPrintln(String message, int n) { for (int i=0; i<n; i++) System.out.println(message); } To call the above method: nPrintln(m, i); //where m is String and i is int message and n are parameters m and i are arguments Pass by Value Pass by value: the parameter is allocated the required memory storage and the value of the argument is copied to the parameter. There are 2 separate copies of the same values. Example 4.2 Testing Pass by value This program demonstrates passing values to the methods. TestPassByValue Run Overloading Methods Methods defined with the same name are overloaded. The parameter lists are different, the return type is not relevant. Example 4.3 Overloading the max Method double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; } TestMethodOverloading Run The scope of variables Local variable Global variable Scope of variable Method Abstraction You can think of the method body as a black box that contains the detailed implementation for the method. Optional return value Optional Input Method Signature Method body Black Box The Math Class Class constants: – PI – E (the base of natural logarithms) Class methods: – Trigonometric Methods – Exponent Methods – Miscellaneous Trigonometric Methods sin(double a) cos(double a) tan(double a) acos(double a) asin(double a) atan(double a) Exponent Methods exp(double a) Returns e raised to the power of a. log(double a) Returns the natural logarithm of a. pow(double a, double b) Returns a raised to the power of b. sqrt(double a) Returns the square root of a. Rounding Methods double ceil(double x) Returns the smallest (closest to negative infinity) double value that is greater than or equal to the argument and is equal to a mathematical integer. double floor(double x) Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer. double rint(double x) Returns the double value that is closest in value to the argument and is equal to a mathematical integer. int round(float x) Returns the closest int to the argument. Long round(double x) Returns the closest long to the argument. min, max, abs, and random max(a, b)and min(a, b) Returns the maximum or minimum of two parameters. abs(a) Returns the absolute value of the parameter. random() Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returns a random double value in the range [0.0, 1.0). Java Documentation http://java.sun.com/javase/6/docs/api/ Using Math Methods Example 4.4 Computing Mean and Standard Deviation Generate 10 random numbers and compute the mean and standard deviation n mean xi n n i 1 n deviation ComputeMeanDeviation x i 1 2 i ( xi ) 2 i 1 n n 1 Run Case Studies Example 4.5 Displaying Calendars The program reads in the month and year and displays the calendar for a given month of the year. PrintCalendar Run Design Diagram printCalendar (main) readInput printMonth printMonthTitle getMonthName printMonthBody getStartDay getTotalNumberOfDays getNumberOfDaysInMonth isLeapYear Recursion E.g. 4.6 Factorial Factorial(0)=1; Factorial(n)=n*factorial(n-1) Recursion E.g. 4.7 fibonacci numbers Fib(0)=1; Fib(1)=1; Fib(n)=Fib(n-2)+Fib(n-1), n>=2 Recursion E.g. 4.8 Towers of Hanoi 3 Poles and n disks – Move n disks from pole A to pole B. – One disk can be moved at any time – Big disk can’t placed on top of small disk Recursion Towers of Hanoi Solution – If n=1, move disk 1 from A to B – Else Move n-1 disks from A to C, B as temporary Move disk n from A to B Move n-1 disks from C to B, A as temporary