* * 0 chapter 6 java methods. * * 0 method syntax [access specifier][qualifier] return type method...
TRANSCRIPT
* * 0
Method Syntax
[access specifier][qualifier] return type method name(argument list)
Access specifierpublic – method is accessible from anywhereprivate – restrict access to the class in which the method is
declaredprotected – used with inheritanceDefault – (the access specifier is left off) accessible only from
classes in the same package
* * 0
Method Syntax – continued
QualifierStatic makes the method usable by any code that has
access to the method and the class regardless of whether any objects of the class have been created
ArgumentsC++ has two ways to pass arguments – call by value
and call by referenceAll arguments in Java are call by value.
– – methods ALWAYS receive a copy of the argument
* * 0
Method Syntax - continued
Arguments● Objects are not passed to methods; references
to objects are passed.● If the argument is an object reference, a copy of
a reference is passed to a method. Therefore, the method can manipulate the object directly.
* * 0
3 ways to call a method
●Refer to the method name– int x = square (y);
●Call using an object– System.out.println(“Hello”); //System.out is the
object and println is the method
●Call using the class name (means the qualifier is static)– Integer.parseInt(numberString);
* * 0
Scope of Declarations
●Scope of a parameter declaration is the body of the method in which the declaration appears.
●Scope of local variable is the block in which the local variable is declared.
●The scope of a local-variable declaration that appears in a for initialization is the body of the for
* * 0
Scope Declarations - continued
●The scope of a method or field of a class is the entire body of the class. (except for static methods)
* * 0
Scope Example
public class Scope{
int x=1; public void init()…………..public void local1(){
int x=25;}public void local2(){
x*=10;}
}
* * 0
Method Overloading
Method overloading – concept that more than 1 method in a class has the same name but different signatures.
Signature – combination of method name and number and types of arguments
Example of Method Overloadingpublic double square (double value)public int square (int value)
* * 0
Method Overloading
Syntax Error Example
public double square (int value)
{ ………}
public int square (int x)
{………}
These two methods have the same signature – results in a syntax error
* * 0
Recursive Methods
Recursive method – a method which continues to call itself directly or through another method
Concept: a recursive method is capable of solving only the simplest case of a problem (base case). If the problem is complex, the method divides the problem into two smaller pieces: a base case and a smaller problem
* * 0
Recursion Example
public long factorial (long number)
{if (number <=1)
return 1;
else
return (number * factorial (number – 1));
}
* * 0
Recursion
●Avoid recursion in situations requiring performance. Recursive calls take up processor time and memory space.
* * 0
Static Methods
●Also called class method– Method that doesn’t depend on the contents of an
object
●Java’s Math class contains a collection of static methods that enable one to perform common mathematical calculations.
●When a method is static, it only can activate static fields and static methods.
* * 0
Methods is Math class
●abs(x)●max(x,y)●min(x,y)●pow (x,y) xy
●sqrt (x)●ceil (x) smallest integer not less than x
–ceil (9.2) = 10–ceil (-9.8) = -9
●floor(x) largest integer not greater than x–floor (9.2) = 9–floor (-9.8) = -10
* * 0
Methods in Math class
●Math.random()–Returns a double with a value from 0.0 to 1.0–(not including 1.0)
●How to randomly pick an integer from 1 to 6–(int)(Math.random() * 6) + 1
* * 0
Random-Number Generation
●Class Random (in java.util)– Can produce random boolean, byte, float, double,
int, long and Gaussian values
●Example:– Random randomNumbers = new Random();– int randomValue = randomNumbers.nextInt(2);– returns 0 or 1
* * 0
Fields in Math class
●PI (public final static)●E (public final static)●Static fields are called class variables
* * 0 GUI - Colors and Filled Shapes
●g.setColor(Color.BLUE);●public void fillRect (int x, int y, int width, int height)●public void drawOval(int x, int y, int width, int height)●public void fillOval(int x, int y, int width, int height)
* * 0
How to create GUI classes
●Classified into 3 groups–Container classes–Component classes–Helper classes
●Container classes–JFrame, JPanel, JApplet
●Component classes–JButton, JRadioButton, Jmenu, JTextField, etc
●Helper classes–Graphics, Color, Font, LayoutManager
* * 0
How to create GUI classes
●Classified into 3 groups–Container classes–Component classes–Helper classes
●Container classes–JFrame, JPanel, JApplet
●Component classes–JButton, JRadioButton, Jmenu, JTextField, etc
●Helper classes–Graphics, Color, Font, LayoutManager