Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs.

Slides:



Advertisements
Similar presentations
Copyright 2008 by Pearson Education Building Java Programs Chapter 3 Lecture 3-1: Parameters reading: 3.1 self-check: #1-6 exercises: #1-3 videos: Ch.
Advertisements

BUILDING JAVA PROGRAMS CHAPTER 3 PARAMETERS AND OBJECTS.
Nested for loops Cont’d. 2 Drawing complex figures Use nested for loops to produce the following output. Why draw ASCII art? –Real graphics require a.
1 Parameters. 2 Repetitive figures Consider the task of drawing the following figures: ************* ******* *********************************** **********
Copyright 2008 by Pearson Education Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs Lecture 3-1: Parameters (reading: 3.1)
Copyright 2006 by Pearson Education 1 reading: 4.1 Cumulative sum.
Copyright 2008 by Pearson Education 1 Class constants and scope reading: 2.4 self-check: 28 exercises: 11 videos: Ch. 2 #5.
Topic 7 parameters Based on slides bu Marty Stepp and Stuart Reges from "We're flooding people with information. We.
Building Java Programs
Zhen Jiang Dept. of Computer Science West Chester University West Chester, PA CSC141 Computer Science I 9/17/20151.
CSC 142 Computer Science II Zhen Jiang West Chester University
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 3: Introduction to Parameters and Objects.
Building Java Programs Chapter 3 Parameters and Objects Copyright (c) Pearson All rights reserved.
Copyright 2008 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-3: Loop Figures and Constants reading: self-checks: 27 exercises:
CS 112 Introduction to Programming Graphics; Animation Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone:
Building Java Programs Parameters and Objects. 2 Redundant recipes Recipe for baking 20 cookies: –Mix the following ingredients in a bowl: 4 cups flour.
Copyright 2010 by Pearson Education Building Java Programs Chapter 1 Lecture 1-2: Static Methods reading:
Building Java Programs Chapter 3 Lecture 3-1: Parameters reading: 3.1.
1 Building Java Programs Chapter 3: Introduction to Parameters and Objects These lecture notes are copyright (C) Marty Stepp and Stuart Reges, They.
Warm Up As you enter get out a half sheet of loose paper. Write the HelloWorld program on it. Be prepared to correct your code.
Copyright 2010 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 4: Loop Figures and Constants reading:
1 BUILDING JAVA PROGRAMS CHAPTER 2 PRIMITIVE DATA AND DEFINITE LOOPS.
1 Building Java Programs Chapter 3: Introduction to Parameters and Objects These lecture notes are copyright (C) Marty Stepp and Stuart Reges, They.
Copyright 2008 by Pearson Education 1 Nested loops reading: 2.3 self-check: exercises: videos: Ch. 2 #4.
Copyright 2010 by Pearson Education Building Java Programs Chapter 3 Lecture 3-1: Parameters reading: 3.1.
CS305j Introduction to Computing Parameters and Methods 1 Topic 8 Parameters and Methods "We're flooding people with information. We need to feed it through.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 2: Primitive Data and Definite Loops.
CS 112 Introduction to Programming Nested Loops; Parameterized Methods Yang (Richard) Yang Computer Science Department Yale University 208A Watson, Phone:
CS 112 Introduction to Programming Summary of Method Definition and Invocation; printf/format Formatting Yang (Richard) Yang Computer Science Department.
Copyright 2009 by Pearson Education Building Java Programs Chapter 3 Lecture 3-1: Parameters reading: 3.1 self-check: #1-6 exercises: #1-3 videos: Ch.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs with Scanner.
Adapted from slides by Marty Stepp and Stuart Reges
Building Java Programs Chapter 3
Adapted from slides by Marty Stepp and Stuart Reges
Lecture 3: Method Parameters
Building Java Programs
Parameters Readings: 3.1.
CSCI 161 – Introduction to Programming I William Killian
Method - CIS 1068 Program Design and Abstraction
Lecture 2: Static Methods Expressions reading: 1.4 – 2.1
Building Java Programs
CSCI 161 – Introduction to Programming I William Killian
Building Java Programs
Building Java Programs
CSC141 Computer Science I Zhen Jiang Dept. of Computer Science
CSc 110, Spring 2017 Lecture 5: Constants and Parameters
Topic 7 parameters "We're flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or.
Building Java Programs
Redundant recipes Recipe for baking 20 cookies:
Building Java Programs
Building Java Programs
Building Java Programs
Parameters Readings: 3.1.
Building Java Programs
Lecture 3: Method Parameters
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
CSE 142 Lecture Notes Global Constants, Parameters, Return Values
Building Java Programs
Scope scope: The part of a program where a variable exists. From its declaration to the end of the { } braces A variable declared in a for loop exists.
Suggested self-checks:
Building Java Programs
Drawing complex figures
Building Java Programs
Building Java Programs
Building Java Programs
Parameters Readings: 3.1.
Building Java Programs
Presentation transcript:

Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs

Copyright 2006 by Pearson Education 2 Lecture outline parameters passing parameters to static methods writing methods that accept parameters

Copyright 2006 by Pearson Education 3 reading: 3.1Parameters

Copyright 2006 by Pearson Education 4 Redundant recipes Recipe for baking 20 cookies: Mix the following ingredients in a bowl: 4 cups flour 1 cup butter 1 cup sugar 2 eggs 1 bag chocolate chips... Place on sheet and Bake for about 10 minutes. Recipe for baking 40 cookies: Mix the following ingredients in a bowl: 8 cups flour 2 cups butter 2 cups sugar 4 eggs 2 bags chocolate chips... Place on sheet and Bake for about 10 minutes.

Copyright 2006 by Pearson Education 5 Parameterized recipe Recipe for baking 40 cookies: Mix the following ingredients in a bowl: 8 cups flour... Recipe for baking N cookies: Mix the following ingredients in a bowl: N/5 cups flour N/20 cups butter N/20 cups sugar N/10 eggs N/20 bags chocolate chips... Place on sheet and Bake for about 10 minutes. parameter: A value that distinguishes similar tasks. parameterize: To express a set of similar tasks in a general way in terms of one or more parameters.

Copyright 2006 by Pearson Education 6 Redundant figures Consider the task of drawing the following figures: ************* ******* *********************************** ********** * ********** ***** * ***** The lines and figures are similar, but not exactly the same.

Copyright 2006 by Pearson Education 7 A redundant solution public class Stars1 { public static void main(String[] args) { drawLineOf13Stars(); drawLineOf7Stars(); drawLineOf35Stars(); draw10x3Box(); draw5x4Box(); } public static void drawLineOf13Stars() { for (int i = 1; i <= 13; i++) { System.out.print("*"); } System.out.println(); } public static void drawLineOf7Stars() { for (int i = 1; i <= 7; i++) { System.out.print("*"); } System.out.println(); } public static void drawLineOf35Stars() { for (int i = 1; i <= 35; i++) { System.out.print("*"); } System.out.println(); }... The methods at left are redundant. Would constants help us solve this problem? What would be a better solution? drawLine - A method to draw a line of any number of stars. drawBox - A method to draw a box of any size.

Copyright 2006 by Pearson Education 8 Parameterization parameterized method: One that is given extra information (e.g. number of stars to draw) when it is called. parameter: A value passed to a method by its caller. Writing parameterized methods requires 2 steps: declare the method to accept the parameter call the method and pass the parameter value(s) desired main drawLine ******* 7 drawLine ************* 13

Copyright 2006 by Pearson Education 9 Declaring parameterized methods Parameterized method declaration syntax: public static void ( ) { ; } Example: public static void printSpaces(int count) { for (int i = 1; i <= count; i++) { System.out.print(" "); } Whenever printSpaces is called, the caller must specify how many spaces to print.

Copyright 2006 by Pearson Education 10 Calling parameterized methods passing a parameter: Calling a parameterized method and specifying a value for its parameter(s). Parameterized method call syntax: ( ); Example: System.out.print("*"); printSpaces(7); System.out.print("**"); int x = 3 * 5; printSpaces(x + 2); System.out.println("***"); Output: * ** ***

Copyright 2006 by Pearson Education 11 How parameters are passed When the parameterized method call executes: the value written is copied into the parameter variable the method's code executes using that value public static void main(String[] args) { printSpaces(7); printSpaces(13); } public static void printSpaces(int count) { for (int i = 1; i <= count; i++) { System.out.print(" "); } 7 13

Copyright 2006 by Pearson Education 12 Value semantics value semantics: When primitive variables ( int, double ) are passed as parameters, their values are copied. Modifying the parameter inside the method will not affect the variable passed in. public static void main(String[] args) { int x = 23; strange(x); System.out.println("2. x = " + x); // unchanged... } public static void strange(int x) { x = x + 1; System.out.println("1. x = " + x); } Output: 1. x = x = 23

Copyright 2006 by Pearson Education 13 Common errors If a method accepts a parameter, it is illegal to call it without passing any value for that parameter. printSpaces(); // ERROR: parameter value required The value passed to a method must be of the correct type, matching the type of its parameter variable. printSpaces(3.7); // ERROR: must be of type int Exercise: Change the Stars program to use a parameterized static method for drawing lines of stars.

Copyright 2006 by Pearson Education 14 Stars solution // Prints several lines of stars. // Uses a parameterized method to remove redundancy. public class Stars2 { public static void main(String[] args) { drawLine(13); drawLine(7); drawLine(35); } // Prints the given number of stars plus a line break. public static void drawLine(int count) { for (int i = 1; i <= count; i++) { System.out.print("*"); } System.out.println(); }

Copyright 2006 by Pearson Education 15 Multiple parameters Methods can accept multiple parameters. When the method is called, you must pass values for each parameter. Multiple parameters declaration syntax: public static void (,,..., ) { ; } Multiple parameters call syntax: (,,..., );

Copyright 2006 by Pearson Education 16 Multiple parameters example public static void main(String[] args) { printNumber(4, 9); printNumber(17, 6); printNumber(8, 0); printNumber(0, 8); } public static void printNumber(int number, int count) { for (int i = 1; i <= count; i++) { System.out.print(number); } System.out.println(); } Output: Exercise: Write an improved Stars program that draws boxes of stars using parameterized static methods.

Copyright 2006 by Pearson Education 17 Stars solution // Prints several lines and boxes made of stars. // Third version with multiple parameterized methods. public class Stars3 { public static void main(String[] args) { drawLine(13); drawLine(7); drawLine(35); System.out.println(); drawBox(10, 3); drawBox(5, 4); drawBox(20, 7); } // Prints the given number of stars plus a line break. public static void drawLine(int count) { for (int i = 1; i <= count; i++) { System.out.print("*"); } System.out.println(); }...

Copyright 2006 by Pearson Education 18 Stars solution, cont'd.... // Prints a box of stars of the given size. public static void drawBox(int width, int height) { drawLine(width); for (int i = 1; i <= height - 2; i++) { System.out.print("*"); printSpaces(width - 2); System.out.println("*"); } drawLine(width); } // Prints the given number of spaces. public static void printSpaces(int count) { for (int i = 1; i <= count; i++) { System.out.print(" "); }

Copyright 2006 by Pearson Education 19 Parameter "mystery" problem What is the output of the following program? public class Mystery { public static void main(String[] args) { int x = 5, y = 9, z = 2; mystery(z, y, x); System.out.println(x + " " + y + " " + z); mystery(y, x, z); System.out.println(x + " " + y + " " + z); } public static void mystery(int x, int z, int y) { x++; y = x - z * 2; x = z + 1; System.out.println(x + " " + y + " " + z); }

Copyright 2006 by Pearson Education 20 Parameter questions Write a method named printDiamond that accepts a height as a parameter and prints a diamond figure: * *** ***** *** * Write a method named multiplicationTable that accepts a maximum integer as a parameter and prints a table of multiplication from 1 x 1 up to that integer times itself. Write a method named bottlesOfBeer that accepts an integer as a parameter and prints the "XX Bottles of Beer" song with that many verses.