Newest Viewed Downloaded

Methods Declarations Methods Allow programmers to modularize programs Makes program development more manageable Software reusability Avoid repeating code Local variables Declared in method declaration Parameters Communicates information between methods via method calls

Lecture 4: Chapter 6 - Methods

Outline Introduction Program Modules in Java Math-Class Methods Method Declarations Java API Packages Random-Number Generation Scope of Declarations Methods of Class JApplet Method Overloading Example Using Recursion: The Fibonacci Series

Introduction

Modules Small pieces of a problem Facilitate design, implementation, operation and maintenance of large programs

Program Modules in Java

Modules in Java Methods Classes Java API provides several modules Programmers can also create modules e.g., programmer-defined methods Methods Invoked by a method call Returns a result to calling method (caller) Similar to a boss (caller) asking a worker (called method) to complete a task

Math-Class Methods

Class java.lang.Math Provides common mathematical calculations Calculate the square root of 900.0: Math.sqrt( 900.0 ) Method sqrt belongs to class Math Dot (.) allows access to method sqrt The argument 900.0 is located inside parentheses

Methods Declarations

Methods Allow programmers to modularize programs Makes program development more manageable Software reusability Avoid repeating code Local variables Declared in method declaration Parameters Communicates information between methods via method calls

SquareIntegers.java Line 21 Declare result to store square of number Line 26 Method init invokes method square Line 26 Method square returns int that result stores 1 // Fig. 6.3: SquareIntegers.java 2 // Creating and using a programmer-defined method. 3 import java.awt.Container; 4 5 import javax.swing.*; 6 7 public class SquareIntegers extends JApplet { 8 9 // set up GUI and calculate squares of integers from 1 to 10 10 public void init() 11 { 12 // JTextArea to display results 13 JTextArea outputArea = new JTextArea(); 14 15 // get applet's content pane (GUI component display area) 16 Container container = getContentPane(); 17 18 // attach outputArea to container 19 container.add( outputArea ); 20 21 int result; // store result of call to method square 22 String output = ""; // String containin

Declare result to store square of number Method square returns int that result stores Method init invokes method square (next slide)

SquareIntegers.java Line 38 y is the parameter of method square Line 40 Method square returns the square of y 32 33 outputArea.setText( output ); // place results in JTextArea 34 35 } // end method init 36 37 // square method declaration 38 public int square( int y ) 39 { 40 return y * y; // return square of y 41 42 } // end method square 43 44 } // end class SquareIntegers

y is the parameter of method square Method square returns the square of y

Method Declarations (cont.)

General format of method declaration: return-value-type method-name( parameter1, parameter2, …, parameterN ) { declarations and statements } Method can also return values: return expression;

Maximum.java Lines 13-18 User inputs three Strings Lines 21-23 Convert Strings to doubles Line 25 Method init passes doubles as arguments to method maximum 1 // Fig. 6.4: MaximumTest.java 2 // Finding the maximum of three floating-point numbers. 3 import java.awt.Container; 4 5 import javax.swing.*; 6 7 public class MaximumTest extends JApplet { 8 9 // initialize applet by obtaining user input and creating GUI 10 public void init() 11 { 12 // obtain user input 13 String s1 = JOptionPane.showInputDialog( 14 "Enter first floating-point value" ); 15 String s2 = JOptionPane.showInputDialog( 16 "Enter second floating-point value" ); 17 String s3 = JOptionPane.showInputDialog( 18 "Enter third floating-point value" ); 19 20 // convert user input to double values 21 double number1 = Double.parseDouble( s1 ); 22 double number2

User inputs three Strings Convert Strings to doubles Method init passes doubles as arguments to method maximum

Maximum.java Line 46 Method maximum returns value from method max of class Math 34 // get applet's GUI component display area 35 Container container = getContentPane(); 36 37 // attach outputArea to Container c 38 container.add( outputArea ); 39 40 } // end method init 41 42 // maximum method uses Math class method max to help 43 // determine maximum value 44 public double maximum( double x, double y, double z ) 45 { 46 return Math.max( x, Math.max( y, z ) ); 47 48 } // end method maximum 49 50 } // end class Maximum

Method maximum returns value from method max of class Math

Java API Packages

Packages Classes grouped into categories of related classes Promotes software reuse import statements specify classes used in Java programs e.g., import javax.swing.JApplet;

6.7 Random-Number Generation

Java random-number generators Math.random() ( int ) ( Math.random() * 6 ) Produces integers from 0 - 5 Use a seed for different random-number sequences

RandomIntegers.java Line 16 Produce integers in range 1-6 Line 16 Math.random returns doubles. We cast the double as an int 1 // Fig. 6.7: RandomIntegers.java 2 // Shifted, scaled random integers. 3 import javax.swing.JOptionPane; 4 5 public class RandomIntegers { 6 7 public static void main( String args[] ) 8 { 9 int value; 10 String output = ""; 11 12 // loop 20 times 13 for ( int counter = 1; counter <= 20; counter++ ) { 14 15 // pick random integer between 1 and 6 16 value = 1 + ( int ) ( Math.random() * 6 ); 17 18 output += value + " "; // append value to output 19 20 // if counter divisible by 5, append newline to String output 21 if ( counter % 5 == 0 ) 22 output += "\n"; 23 24 } // end for 25

Produce integers in range 1-6 Math.random returns doubles. We cast the double as an int

RandomIntegers.java 26 JOptionPane.showMessageDialog( null, output, 27 "20 Random Numbers from 1 to 6", 28 JOptionPane.INFORMATION_MESSAGE ); 29 30 System.exit( 0 ); // terminate application 31 32 } // end main 33 34 } // end class RandomIntegers

Scope of Declarations

Scope Portion of the program that can reference an entity by its name Basic scope rules Scope of a parameter declaration Scope of a local-variable declaration Scope of a method or field of a class

Scoping.java Line 11 field x Line 26 Local variable x Line 28 Method start uses local variable x 1 // Fig. 6.10: Scoping.java 2 // A scoping example. 3 import java.awt.Container; 4 5 import javax.swing.*; 6 7 public class Scoping extends JApplet { 8 JTextArea outputArea; 9 10 // field that is accessible to all methods of this class 11 int x = 1; 12 13 // create applet's GUI 14 public void init() 15 { 16 outputArea = new JTextArea(); 17 Container container = getContentPane(); 18 container.add( outputArea ); 19 20 } // end method init 21 22 // method start called after init completes; start calls 23 // methods useLocal and useField 24 public void start() 25 { 26 int x = 5; // local variable in method start that shadows field x 27 28 outputArea.append( "local x in st

Field x has class scope Local variable x has block scope Method start uses local variable x

Scoping.java Line 42 Recreate variable x and initialize it to 25 Lines 40-50 Method useLocal uses local variable x 30 useLocal(); // useLocal has local x 31 useField(); // useInstance uses Scoping's field x 32 useLocal(); // useLocal reinitializes local x 33 useField(); // Scoping's field x retains its value 34 35 outputArea.append( "\n\nlocal x in start is " + x ); 36 37 } // end method start 38 39 // useLocal creates and initializes local variable x during each call 40 public void useLocal() 41 { 42 int x = 25; // initialized each time useLocal is called 43 44 outputArea.append( "\n\nlocal x in useLocal is " + x + 45 " after entering useLocal" ); 46 ++x; 47 outputArea.append( "\nlocal x in useLocal is " + x + 48 " before exiting useLocal" ); 49 50 } // end method useLocal 51

Re-create variable x and initialize it to 25 Method useLocal uses local variable x

Scoping.java Lines 53-61 Method useField uses field x 52 // useField modifies Scoping's field x during each call 53 public void useField() 54 { 55 outputArea.append( "\n\nfield x is " + x + 56 " on entering useField" ); 57 x *= 10; 58 outputArea.append( "\nfield x is " + x + 59 " on exiting useField" ); 60 61 } // end method useInstance 62 63 } // end class Scoping

Method useField uses field x

Showing 1 - 20 of 34 items Details

Name: 
lecture4 part2
Author: 
Jonathan Gadzik
Company: 
DEITEL & ASSOCIATES
Description: 
Methods Declarations Methods Allow programmers to modularize programs Makes program development more manageable Software reusability Avoid repeating code Local variables Declared in method declaration Parameters Communicates information between methods via method calls
Tags: 
method | square | java | int | class | container | public | end
Created: 
8/15/2001 9:36:36 PM
Slides: 
34
Views: 
1
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap