geen102 notes on functionswilliams.comp.ncat.edu/comp163/methods.pdf · • many experts recommend...
TRANSCRIPT
![Page 1: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/1.jpg)
Methods
GEEN163 Introduction to
Computer Programming
1
![Page 2: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/2.jpg)
“Civilization is a method of living,
an attitude of equal respect for all
men.” Jane Addams
first American woman to be awarded the Nobel Peace Prize
![Page 3: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/3.jpg)
Homework
• The third programming assignment has been posted on Blackboard
• Programs are due by midnight on Friday, February 7, 2014
• We have not yet covered everything you need to write this program
![Page 4: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/4.jpg)
Reading Quiz
• Read sections 4.1 – 4.4 of the textbook and then answer the reading quiz on Blackboard
• You may only attempt the quiz once
• There is no time limit
• It is due by 8:00pm on Tuesday, February 4
![Page 5: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/5.jpg)
TuringsCraft
• Answer the questions to sections 3.10 through 4.5
• You will earn 4 points for each correct answer up to a maximum of 100 points
• Due by midnight on Monday, February 10, 2014
![Page 6: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/6.jpg)
Schedule Update
Monday Wednesday Friday
cancelled Using Methods chapter 3
More on methods
Applet basics chapter 4
Applet programming
Graphics review Exam 1
Lab quiz on Thursday, February 13, 2014
![Page 7: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/7.jpg)
Keeping it Simple
• It is good programming practice to divide large programs into smaller manageable methods
• A method is a part of a program that performs a specific function
• Methods should be kept small enough to be understandable
![Page 8: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/8.jpg)
Main Method
• Every Java program must have a method called main public static void main(String[] args)
• Program execution always begins with the main method
• Any other method are subprograms and must be called from the main method or another method
![Page 9: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/9.jpg)
Two Parts of Method
static int cube ( int n ) { // heading int dog = n * n * n ;
return dog ;
}
} // body
![Page 10: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/10.jpg)
What is in a heading?
int cube ( int n ) {
type of value returned name of
method parameter list
![Page 11: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/11.jpg)
Good Name • You should give your methods names the
indicate what they do
• Method names should be in lower case letter
• The first letter of a second English word should be capitalized
cube cubeRoot
printName getText
average characterAt
![Page 12: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/12.jpg)
Methods inside a Class
class
main Method
cube Method
![Page 13: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/13.jpg)
Methods inside a Class
public class Example {
}
public static void main(String[] dog) {
// main method body
}
static double cube( double cat ) {
// cube method body
}
![Page 14: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/14.jpg)
Method Calls
• One method calls or executes another by using the name of the called method together with ( parenthesis) containing an argument list
• A method call temporarily transfers control from the calling method to the called method
![Page 15: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/15.jpg)
Returning a Value
• Some methods can return a value to the calling program
• After the Math.cos method computes the cosine, it returns it to your program
• The returned value of a method can be used in an equation
double dog = 5.0 * Math.cos( cat ) + 47.0;
![Page 16: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/16.jpg)
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
double a, b, result;
Scanner keys = new Scanner(System.in);
a = keys.nextDouble();
b = keys.nextDouble();
result = cube( a );
System.out.println("cube is "+result);
result = cube( b );
System.out.println("cube is "+result);
}
static double cube( double x ) {
double triple = x * x * x;
return triple;
}
}
![Page 17: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/17.jpg)
Methods must be written
A. inside the main method
B. inside the class
C. outside the class
D. none of the above
17
![Page 18: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/18.jpg)
Calling a Method with Parameters
• Method calls have the name of the method followed by the arguments enclosed in parenthesis
• The calling program must supply exactly the same number of arguments of the same type as the method
• The names of the arguments in the main program can be different from the names of the parameters in the method
![Page 19: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/19.jpg)
Arguments and Parameters
Arguments Parameters
Always appear in a method call within the calling program
Always appear in the method heading
![Page 20: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/20.jpg)
Method Call Syntax
MethodName ( Argument List )
• The argument list is a way for methods to communicate with each other by passing information
• The argument list can contain 0, 1, or more arguments, separated by commas, depending on the method
![Page 21: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/21.jpg)
Parameter Types Must Match Method
int myfunc( int cat, double dog ){
… }
main program
int goat;
double bull;
int rat;
rat = myfunc( goat, bull );
![Page 22: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/22.jpg)
Variable Type
• In the method header, you need to specify the variable type
int myFunc( int trout, double salmon)
• When you call the method, you do not need to specify the type of the parameters
int fish, cow = 47;
fish = myFunc( cow, 3.13 );
![Page 23: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/23.jpg)
Alternate Names
• Some Java texts use the term “actual parameters” for arguments
• Those books then refer to parameters as “formal parameters”
![Page 24: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/24.jpg)
When you call a method, the variable names in the main program must match
the variable names in the method header.
A. True
B. False
![Page 25: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/25.jpg)
Argument Values Copied
• When a method call is executed, the values of the argument variables (or constants) are copied to the parameter variables
• The method uses a copy of the argument variables
![Page 26: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/26.jpg)
Parameter Values Copied
public class PassParm {
public static void main(String[] args ){
int a = 5, b = 47, c;
c = example( a, b );
System.out.println("main"+c);
}
static int example( int x, int y ) {
System.out.println("example"+(x+y));
return x + y;
}
}
![Page 27: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/27.jpg)
What is displayed by this program?
A. cow=5 bull=7
B. cow=7 bull=5
C. dog=5 cat=7
D. none of the above
27
int dog = 5, cat = 7;
tryit( cat, dog );
----- ----- ----- -----
void tryit( int cow, int bull) {
System.out.println("cow="+cow+ "bull="+bull);
}
![Page 28: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/28.jpg)
Follow the Execution
• Java executes lines sequentially through a method
• When a method is called, execution jumps to the method
• Methods may appear before or after the main method
![Page 29: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/29.jpg)
What is displayed? public class Colors { static void aqua() { System.out.println("Blue"); } static void rouge() { System.out.println("Scarlet"); } static void sun(){ System.out.println("Yellow"); } public static void main(String[] args) { sun();
rouge(); System.out.println("Gray"); } }
A. Blue
Scarlet
Yellow
Gray
B. Yellow
Scarlet
Gray
C. Yellow
Blue
Scarlet
Gray
D. Gray
Yellow
Scarlet
E. none of the above
![Page 30: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/30.jpg)
More About Methods
• Methods should perform a single task or function
• It is not considered good practice for a method to be very long
• Every method has a return type
• If the return type is not void, the method returns a value to the calling program
![Page 31: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/31.jpg)
Two Kinds of Returns
Value-Returning Void
Always returns
a single value to
its caller and is
called from within
an expression
Never returns a
value to its caller,
and is called as a
separate
statement
![Page 32: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/32.jpg)
A void Method Call
public class VoidMeth {
public static void main(String[] args) {
displayMessage( ‘A’ ) ; //void method call System.out.println("Good Bye");
}
static void displayMessage( char grade) {
System.out.println("I want an "+ grade );
}
}
This program displays I want an A
Good Bye
![Page 33: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/33.jpg)
Extending Classes
• One of the great advantages of Object Oriented programming is the ability to extend an existing class
• You can create a new class with all of the features of an existing class and then add extra methods or data
• You can extend any class, including the system library classes
• You do not need the source to extend a class
![Page 34: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/34.jpg)
Inheritance
• A new class can inherit all the data and methods of another class
• A child class inherits from a parent class
• Any class can be a parent class
• The child class can add extra features or change some features of the parent class
• A class can inherit from a class that inherits from another class to any depth
![Page 35: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/35.jpg)
Ancestors
• Imagine you have a class called Mammal
• A Dog class might inherit from Mammal
• The Mammal class might inherit from the class Vertebrate
• All classes inherit from the class Object
Object
Vertebrate
Mammal
Dog
![Page 36: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/36.jpg)
extends
• In Java you indicate that one class extends or inherits from another by using the extends keyword
public class NewClass extends OldClass {
![Page 37: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/37.jpg)
Inheritance Example
• Assume a class Mammal with methods
– getWeight( ) and setColor( )
• You can create a class Dog that extends the class mammal with the method
– getWagRate( )
• Objects of the Dog class can call any of the methods
Dog fido = new Dog( );
double pounds = fido.getWeight();
double wags = fido.getWagRate();
![Page 38: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/38.jpg)
Is A
• Many experts recommend that class B extend class A only if class B "is a" class A
• Dog can extend Mammal because Dog "is a" Mammal
• If Dog extends the Mammal class, an object of the Dog class can be used anywhere an object of the Mammal class could be used
![Page 39: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/39.jpg)
Homework
• The third programming assignment has been posted on Blackboard
• Programs are due by midnight on Friday, February 7, 2014
• We have not yet covered everything you need to write this program
![Page 40: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/40.jpg)
Reading Quiz
• Read sections 4.1 – 4.4 of the textbook and then answer the reading quiz on Blackboard
• You may only attempt the quiz once
• There is no time limit
• It is due by 8:00pm on Tuesday, February 4
![Page 41: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/41.jpg)
TuringsCraft
• Answer the questions to sections 3.10 through 4.5
• You will earn 4 points for each correct answer up to a maximum of 100 points
• Due by midnight on Monday, February 10, 2014
![Page 42: GEEN102 notes on functionswilliams.comp.ncat.edu/COMP163/Methods.pdf · • Many experts recommend that class B extend ... of the Mammal class could be used . Homework • The third](https://reader033.vdocuments.mx/reader033/viewer/2022050104/5f42a59d8eae8e67eb1dc492/html5/thumbnails/42.jpg)
Schedule Update
Monday Wednesday Friday
cancelled Using Methods chapter 3
More on methods
Applet basics chapter 4
Applet programming
Graphics review Exam 1
Lab quiz on Thursday, February 13, 2014