Copyright 2008 by Pearson Education Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs Lecture 3-1: Parameters (reading: 3.1)

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

Copyright 2010 by Pearson Education Building Java Programs Chapter 7 Lecture 7-2: Arrays as Parameters reading: , 3.3 self-checks: Ch. 7 #5, 8,
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.
Building Java Programs Chapter 3 Parameters and Objects Copyright (c) Pearson All rights reserved.
1 Parameters. 2 Repetitive figures Consider the task of drawing the following figures: ************* ******* *********************************** **********
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.
Copyright 2006 by Pearson Education 1 Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs.
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
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.
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.
10/16/07.
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
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 Chapter 3
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
CSc 110, Spring 2018 Lecture 8: input and Parameters
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.
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Building Java Programs
Presentation transcript:

Copyright 2008 by Pearson Education Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs Lecture 3-1: Parameters (reading: 3.1)

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

Copyright 2008 by Pearson Education Parameters reading: 3.1 self-check: #1-6 exercises: #1-3

Copyright 2008 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 2008 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.

Copyright 2008 by Pearson Education 6 Redundant figures Consider the task of printing the following lines/boxes: ************* ******* *********************************** ********** * ********** ***** * *****

Copyright 2008 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(); }... This code is redundant. Would constants help? What is 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 2008 by Pearson Education 8 Parameterization parameterized method: One that is given extra information (e.g. # of stars to draw) when it is called. parameter: A value passed to a method by its caller. Example: Instead of drawLineOf7Stars, drawLineOf13Stars,... Write drawLineOfStars method to draw a line of any length. When the method is run, we will specify how many stars to draw.

Copyright 2008 by Pearson Education 9 Parameterization Writing a parameterized method 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 2008 by Pearson Education 10 Declaring parameters public static void ( ) { ; } Example: public static void printDots(int count) { for (int i = 1; i <= count; i++) { System.out.print("."); } When printDots is called, the caller must specify how many spaces to print.

Copyright 2008 by Pearson Education 11 Passing parameters ( ); passing a parameter: Calling a parameterized method and specifying a value for its parameter(s). Example: System.out.print("*"); printDots(7); System.out.print("**"); int x = 3 * 5; printDots(x + 2); System.out.println("***"); Output: * ** ***

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

Copyright 2008 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. printDots(); // ERROR: parameter value required The value passed to a method must be of the correct type, matching the type of its parameter variable. printDots(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 2008 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 2008 by Pearson Education 15 Multiple parameters A method can accept multiple parameters. When calling it, you must pass values for each parameter. Declaration syntax: public static void (,,..., ) { ; } Call syntax: (,,..., );

Copyright 2008 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: Modify the Stars program to draw boxes using parameters.

Copyright 2008 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 2008 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 2008 by Pearson Education 19 Value semantics value semantics: When primitive variables ( int, double ) are passed as parameters, their values are copied. Modifying the parameter 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 2008 by Pearson Education 20 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 2008 by Pearson Education 21 Strings string: A sequence of text characters. String = " "; String = ; Examples: String name = "Marla Singer"; int x = 3; int y = 5; String point = "(" + x + ", " + y + ")";

Copyright 2008 by Pearson Education 22 Strings as parameters public class StringParameters { public static void main(String[] args) { String teacher = "Helene"; sayHello(teacher); sayHello("Marty"); } public static void sayHello(String name) { System.out.println("Welcome, " + name); } Output: Welcome, Helene Welcome, Marty Modify the Stars program to use string parameters.

Copyright 2008 by Pearson Education 23 Stars solution // Prints several lines and boxes made of stars. // Fourth version with String parameters. public class Stars4 { 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) { printString("*", count); System.out.println(); }...

Copyright 2008 by Pearson Education 24 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("*"); printString(" ", width - 2); System.out.println("*"); } drawLine(width); } // Prints the given number of spaces. public static void printString(String s, int count) { for (int i = 1; i <= count; i++) { System.out.print(s); }