0% found this document useful (0 votes)
32 views17 pages

Java Static Methods Explained

building java programs lecture notes 2

Uploaded by

najodax889
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views17 pages

Java Static Methods Explained

building java programs lecture notes 2

Uploaded by

najodax889
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

9/25/12

Building Java Programs


Chapter 1
Lecture 2: Static Methods

reading: 1.4 - 1.5

Copyright 2010 by Pearson Education

Recall: structure, syntax


class: a program
public class name {
public static void main(String[] args) {
statement;
statement; method: a named group
... of statements
statement;
}
} statement: a command to be executed

— Every executable Java program consists of a class,


— that contains a method named main,
— that contains the statements (commands) to be executed.

2
Copyright 2010 by Pearson Education

1
9/25/12

Comments
— comment: A note written in source code by the
programmer to describe or clarify the code.
— Comments are not executed when your program runs.

— Syntax:
// comment text, on one line
or,
/* comment text; may span multiple lines */

— Examples:
// This is a one-line comment.
/* This is a very long
multi-line comment. */

3
Copyright 2010 by Pearson Education

Comments example
/* Suzy Student, CSE 142, Fall 2019
Displays lyrics*/

public class Lyrics {


public static void main(String[] args) {
// first line
[Link]("When I first got into magic");
[Link]("it was an underground phenomenon");
[Link]();

// second line
[Link]("Now everybody's like");
[Link]("pick a card, any card");
}
}

4
Copyright 2010 by Pearson Education

2
9/25/12

Using comments
— Where to place comments:
— at the top of each file (a "comment header")

— at the start of every method (seen later)


— to explain complex pieces of code

— Comments are useful for:


— Understanding larger, more complex programs.
— Multiple programmers working together, who must understand
each other's code.

5
Copyright 2010 by Pearson Education

Static methods
reading: 1.4

Copyright 2010 by Pearson Education

3
9/25/12

Algorithms
— algorithm: A list of steps for solving a problem.

— Example algorithm: "Bake sugar cookies"


— Mix the dry ingredients.
— Cream the butter and sugar.
— Beat in the eggs.
— Stir in the dry ingredients.
— Set the oven temperature.
— Set the timer for 10 minutes.
— Place the cookies into the oven.
— Allow the cookies to bake.
— Spread frosting and sprinkles onto the cookies.
— ...

7
Copyright 2010 by Pearson Education

Problems with algorithms


— lack of structure: Many steps; tough to follow.

— redundancy: Consider making a double batch...


— Mix the dry ingredients.
— Cream the butter and sugar.
— Beat in the eggs.
— Stir in the dry ingredients.
— Set the oven temperature.
— Set the timer for 10 minutes.
— Place the first batch of cookies into the oven.
— Allow the cookies to bake.
— Set the timer for 10 minutes.
— Place the second batch of cookies into the oven.
— Allow the cookies to bake.
— Mix ingredients for frosting.
— ...

8
Copyright 2010 by Pearson Education

4
9/25/12

Structured algorithms
— structured algorithm: Split into coherent tasks.
1 Make the batter.
— Mix the dry ingredients.
— Cream the butter and sugar.
— Beat in the eggs.
— Stir in the dry ingredients.

2 Bake the cookies.


— Set the oven temperature.
— Set the timer for 10 minutes.
— Place the cookies into the oven.
— Allow the cookies to bake.

3 Decorate the cookies.


— Mix the ingredients for the frosting.
— Spread frosting and sprinkles onto the cookies.
...
9
Copyright 2010 by Pearson Education

Removing redundancy
— A well-structured algorithm can describe repeated tasks
with less redundancy.
1 Make the cookie batter.
— Mix the dry ingredients.
— ...

2a Bake the cookies (first batch).


— Set the oven temperature.
— Set the timer for 10 minutes.
— ...

2b Bake the cookies (second batch).


— Repeat Step 2a

3 Decorate the cookies.


— ...
10
Copyright 2010 by Pearson Education

5
9/25/12

A program with redundancy


public class BakeCookies {
public static void main(String[] args) {
[Link]("Mix the dry ingredients.");
[Link]("Cream the butter and sugar.");
[Link]("Beat in the eggs.");
[Link]("Stir in the dry ingredients.");
[Link]("Set the oven temperature.");
[Link]("Set the timer.");
[Link]("Place a batch of cookies into the oven.");
[Link]("Allow the cookies to bake.");
[Link]("Set the oven temperature.");
[Link]("Set the timer.");
[Link]("Place a batch of cookies into the oven.");
[Link]("Allow the cookies to bake.");
[Link]("Mix ingredients for frosting.");
[Link]("Spread frosting and sprinkles.");
}
}

11
Copyright 2010 by Pearson Education

Static methods
— static method: A named group of statements.
— denotes the structure of a program
class
— eliminates redundancy by code reuse
method A
n statement
— procedural decomposition: n statement
dividing a problem into methods n statement
method B
n statement
— Writing a static method is like n statement
adding a new command to Java.
method C
n statement
n statement
n statement
12
Copyright 2010 by Pearson Education

6
9/25/12

Using static methods


1. Design (think about) the algorithm.
— Look at the structure, and which commands are repeated.
— Decide what are the important overall tasks.

2. Declare (write down) the methods.


— Arrange statements into groups and give each group a name.

3. Call (run) the methods.


— The program's main method executes the other methods to
perform the overall task.

13
Copyright 2010 by Pearson Education

Design of an algorithm
// This program displays a delicious recipe for baking cookies.
public class BakeCookies2 {
public static void main(String[] args) {
// Step 1: Make the cake batter.
[Link]("Mix the dry ingredients.");
[Link]("Cream the butter and sugar.");
[Link]("Beat in the eggs.");
[Link]("Stir in the dry ingredients.");
// Step 2a: Bake cookies (first batch).
[Link]("Set the oven temperature.");
[Link]("Set the timer.");
[Link]("Place a batch of cookies into the oven.");
[Link]("Allow the cookies to bake.");
// Step 2b: Bake cookies (second batch).
[Link]("Set the oven temperature.");
[Link]("Set the timer.");
[Link]("Place a batch of cookies into the oven.");
[Link]("Allow the cookies to bake.");
// Step 3: Decorate the cookies.
[Link]("Mix ingredients for frosting.");
[Link]("Spread frosting and sprinkles.");
}
}
14
Copyright 2010 by Pearson Education

7
9/25/12

Declaring a method
Gives your method a name so it can be executed
— Syntax:
public static void name() {
statement;
statement;
...
statement;
}

— Example:
public static void printWarning() {
[Link]("This product causes cancer");
[Link]("in lab rats and humans.");
}

15
Copyright 2010 by Pearson Education

Calling a method
Executes the method's code
— Syntax:
name();

— You can call the same method many times if you like.

— Example:
printWarning();

— Output:

This product causes cancer


in lab rats and humans.

16
Copyright 2010 by Pearson Education

8
9/25/12

Program with static method


public class FreshPrince {
public static void main(String[] args) {
rap(); // Calling (running) the rap method
[Link]();
rap(); // Calling the rap method again
}

// This method prints the lyrics to my favorite song.


public static void rap() {
[Link]("Now this is the story all about how");
[Link]("My life got flipped turned upside-down");
}
}

Output:
Now this is the story all about how
My life got flipped turned upside-down

Now this is the story all about how


My life got flipped turned upside-down
17
Copyright 2010 by Pearson Education

Final cookie program


// This program displays a delicious recipe for baking cookies.
public class BakeCookies3 {
public static void main(String[] args) {
makeBatter();
bake(); // 1st batch
bake(); // 2nd batch
decorate();
}
// Step 1: Make the cake batter.
public static void makeBatter() {
[Link]("Mix the dry ingredients.");
[Link]("Cream the butter and sugar.");
[Link]("Beat in the eggs.");
[Link]("Stir in the dry ingredients.");
}
// Step 2: Bake a batch of cookies.
public static void bake() {
[Link]("Set the oven temperature.");
[Link]("Set the timer.");
[Link]("Place a batch of cookies into the oven.");
[Link]("Allow the cookies to bake.");
}
// Step 3: Decorate the cookies.
public static void decorate() {
[Link]("Mix ingredients for frosting.");
[Link]("Spread frosting and sprinkles.");
}
}
18
Copyright 2010 by Pearson Education

9
9/25/12

Methods calling methods


public class MethodsExample {
public static void main(String[] args) {
message1();
message2();
[Link]("Done with main.");
}
public static void message1() {
[Link]("This is message1.");
}
public static void message2() {
[Link]("This is message2.");
message1();
[Link]("Done with message2.");
}
}
— Output:
This is message1.
This is message2.
This is message1.
Done with message2.
Done with main. 19
Copyright 2010 by Pearson Education

Control flow
— When a method is called, the program's execution...
— "jumps" into that method, executing its statements, then
— "jumps" back to the point where the method was called.

public class MethodsExample {


public static void main(String[] args) {
public static void message1() {
message1(); [Link]("This is message1.");
}

message2(); public static void message2() {


[Link]("This is message2.");
message1();

[Link]("Done [Link]("Done
with main."); with message2.");
} }

public static void message1() {


... [Link]("This is message1.");
}
}
20
Copyright 2010 by Pearson Education

10
9/25/12

When to use methods


— Place statements into a static method if:
— The statements are related structurally, and/or
— The statements are repeated.

— You should not create static methods for:


— An individual println statement.
— Only blank lines. (Put blank printlns in main.)
— Unrelated or weakly related statements.
(Consider splitting them into two smaller methods.)

21
Copyright 2010 by Pearson Education

Drawing complex figures


with static methods
reading: 1.5
(Ch. 1 Case Study: DrawFigures)

Copyright 2010 by Pearson Education

11
9/25/12

Static methods question


— Write a program to print these figures using methods.
______
/ \
/ \
\ /
\______/

\ /
\______/
+--------+

______
/ \
/ \
| STOP |
\ /
\______/

______
/ \
/ \
+--------+

23
Copyright 2010 by Pearson Education

Development strategy
______
/ \
/ \ First version (unstructured):
\ /
\______/ n Create an empty program and main method.
\ /
\______/ n Copy the expected output into it, surrounding
+--------+ each line with [Link] syntax.
______
/ \ n Run it to verify the output.
/ \
| STOP |
\ /
\______/

______
/ \
/ \
+--------+

24
Copyright 2010 by Pearson Education

12
9/25/12

Program version 1
public class Figures1 {
public static void main(String[] args) {
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("\\ /");
[Link](" \\______/");
[Link]();
[Link]("\\ /");
[Link](" \\______/");
[Link]("+--------+");
[Link]();
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("| STOP |");
[Link]("\\ /");
[Link](" \\______/");
[Link]();
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("+--------+");
}
}
25
Copyright 2010 by Pearson Education

Development strategy 2
______
/ \
/ \ Second version (structured, with redundancy):
\ /
\______/ n Identify the structure of the output.
\ /
\______/
+--------+ n Divide the main method into static methods
based on this structure.
______
/ \
/ \
| STOP |
\ /
\______/

______
/ \
/ \
+--------+

26
Copyright 2010 by Pearson Education

13
9/25/12

Output structure
______
/ \
/ \ The structure of the output:
\ / n initial "egg" figure
\______/
n second "teacup" figure
\ /
\______/ n third "stop sign" figure
+--------+
n fourth "hat" figure

______
/ \
/ \ This structure can be represented by methods:
| STOP |
n egg
\ /
\______/ n teaCup

______ n stopSign
/ \
/ \ n hat
+--------+

27
Copyright 2010 by Pearson Education

Program version 2
public class Figures2 {
public static void main(String[] args) {
egg();
teaCup();
stopSign();
hat();
}
public static void egg() {
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("\\ /");
[Link](" \\______/");
[Link]();
}
public static void teaCup() {
[Link]("\\ /");
[Link](" \\______/");
[Link]("+--------+");
[Link]();
}
...

28
Copyright 2010 by Pearson Education

14
9/25/12

Program version 2, cont'd.


...
public static void stopSign() {
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("| STOP |");
[Link]("\\ /");
[Link](" \\______/");
[Link]();
}
public static void hat() {
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
[Link]("+--------+");
}
}

29
Copyright 2010 by Pearson Education

Development strategy 3
______
/ \
/ \ Third version (structured, without redundancy):
\ /
\______/ n Identify redundancy in the output, and create
\ / methods to eliminate as much as possible.
\______/
+--------+
n Add comments to the program.
______
/ \
/ \
| STOP |
\ /
\______/

______
/ \
/ \
+--------+

30
Copyright 2010 by Pearson Education

15
9/25/12

Output redundancy
______
/ \
/ \
\ / The redundancy in the output:
\______/

\ / n egg top: reused on stop sign, hat


\______/
+--------+ n egg bottom: reused on teacup, stop sign
n divider line: used on teacup, hat
______
/ \
/ \
| STOP | This redundancy can be fixed by methods:
\ /
n eggTop
\______/
n eggBottom
______
/ \ n line
/ \
+--------+

31
Copyright 2010 by Pearson Education

Program version 3
// Suzy Student, CSE 138, Spring 2094
// Prints several figures, with methods for structure and redundancy.
public class Figures3 {
public static void main(String[] args) {
egg();
teaCup();
stopSign();
hat();
}
// Draws the top half of an an egg figure.
public static void eggTop() {
[Link](" ______");
[Link](" / \\");
[Link]("/ \\");
}
// Draws the bottom half of an egg figure.
public static void eggBottom() {
[Link]("\\ /");
[Link](" \\______/");
}
// Draws a complete egg figure.
public static void egg() {
eggTop();
eggBottom();
[Link]();
}
... 32
Copyright 2010 by Pearson Education

16
9/25/12

Program version 3, cont'd.


...
// Draws a teacup figure.
public static void teaCup() {
eggBottom();
line();
[Link]();
}
// Draws a stop sign figure.
public static void stopSign() {
eggTop();
[Link]("| STOP |");
eggBottom();
[Link]();
}
// Draws a figure that looks sort of like a hat.
public static void hat() {
eggTop();
line();
}
// Draws a line of dashes.
public static void line() {
[Link]("+--------+");
}
}

33
Copyright 2010 by Pearson Education

17

You might also like