Part II © Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved.

Slides:



Advertisements
Similar presentations
(C) 2010 Pearson Education, Inc. All rights reserved. Java™ How to Program, 8/e.
Advertisements

A Java API Package java.security  The Java Security Package contains classes and interfaces that are required by many Java programs.  This package is.
 2006 Pearson Education, Inc. All rights reserved Functions.
Chapter 5 C Functions The best way to develop and maintain a large program is to divide it into several smaller program modules, each of which is more.
 2006 Pearson Education, Inc. All rights reserved Functions.
 2000 Prentice Hall, Inc. All rights reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program Modules in C 5.3Math Library Functions 5.4Functions.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
Java: How to Program Methods Summary Yingcai Xiao.
 2006 Pearson Education, Inc. All rights reserved Functions and an Introduction to Recursion.
 2007 Pearson Education, Inc. All rights reserved C Functions.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 12 – Craps Game Application: Introducing Random.
1 JavaScript/Jscript 4 Functions. 2 Introduction Programs that solve real-world programs –More complex than programs from previous chapters Best way to.
FunctionsFunctions Systems Programming Concepts. Functions   Simple Function Example   Function Prototype and Declaration   Math Library Functions.
1 Lecture 3 Part 1 Functions with math and randomness.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "methods" in Java Purpose Reuse code Modularize the program This.
 Monday 10/18/2010  Content: Week 1 – Week 6  Format:  Multiple choice questions  Matching questions  Determine what’s wrong  Determine the results.
Dale Roberts Procedural Programming using Java Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and.
 2008 Pearson Education, Inc. All rights reserved Function Call Stack and Activation Records Data structure: collection of related data items.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. C How To Program - 4th edition Deitels Class 05 University.
4 th Week Spring 2011 Methods 1. Outline Introduction Why method ? Static methods vs. non-static methods Example: Math class Declare a method Signature.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
 2005 Pearson Education, Inc. All rights reserved. 1 Methods Called functions or procedures in other languages Modularize programs by separating its tasks.
 2005 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
Android How to Program, 2/e © Copyright by Pearson Education, Inc. All Rights Reserved.
4-Methods Dr. John P. Abraham Professor UTPA. Common ways of packaging code Properties Methods Classes Namespaces (related classes are grouped into a.
 2001 Deitel & Associates, Inc. All rights reserved. 1 Outline 16.1Introduction 16.2Program Modules in JavaScript 16.3Programmer-Defined Functions 16.4Function.
 2003 Prentice Hall, Inc. All rights reserved. 1 Chapter 6 - Functions.
Java™ How to Program, 9/e Presented by: Dr. José M. Reyes Álamo CET 3640 © Copyright by Pearson Education, Inc. All Rights Reserved.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
Chapter 6 Methods: A Deeper Look. Objectives In this chapter you will learn: How static methods and fields are associated with an entire class rather.
Methods: A Deeper Look. Template for Class Definition public class { } A.Import Statement B.Class Comments C.Class Name D.Data members E.Methods (inc.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
Java™ How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
CSCI 3328 Object Oriented Programming in C# Chapter 6: Methods 1 Xiang Lian The University of Texas Rio Grande Valley Edinburg, TX 78539
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Craps Game Application Introducing Random-Number Generation and Enum.
JavaScript: Functions © by Pearson Education, Inc. All Rights Reserved.
 2006 Pearson Education, Inc. All rights reserved Functions and an Introduction to Recursion.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 16 – Craps Game Application Introducing Random-Number.
Java How to Program, 9/e © Copyright by Pearson Education, Inc. All Rights Reserved.
 Static  Example for Static Field  Example for Static Method  Math class methods  Casting  Scope of Declaration  Method Overloading  Constructor.
 2000 Prentice Hall, Inc. All rights reserved Introduction Divide and conquer –Construct a program from smaller pieces or components –Each piece.
Introduction Modules Small pieces of a problem ▴ e.g., divide and conquer Facilitate design, implementation, operation and maintenance of large programs.
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
Part III © Copyright by Pearson Education, Inc. All Rights Reserved.
(C) 2010 Pearson Education, Inc. All rights reserved.  Best way to develop and maintain a large program is to construct it from small, simple pieces,
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
(C) 2010 Pearson Education, Inc. All rights reserved. Java How to Program, 8/e.
 2003 Prentice Hall, Inc. All rights reserved. 1 Functions and Recursion Outline Introduction Program Components in C++ Math Library Functions Functions.
 Pearson Education, Inc. All rights reserved Methods: A Deeper Look.
Mark Fontenot CSE Honors Principles of Computer Science I Note Set 6.
Functions.
Functions and an Introduction to Recursion
Methods Chapter 6.
Chapter 20 Generic Classes and Methods
Programming Fundamentals Lecture #7 Functions
Chapter 6 Methods: A Deeper Look
Chapter 5 - Functions Outline 5.1 Introduction
Chapter 6 Methods: A Deeper Look
MSIS 655 Advanced Business Applications Programming
CSE 1341 Topic 5 Methods © 2013 Ken Howard,
CSCI 3328 Object Oriented Programming in C# Chapter 6: Methods
6 Methods: A Deeper Look.
Chapter 5 Methods: A Deeper Look
Java Methods: A Deeper Look Academic 2019 Class: BIT23/BCS10 Chapter 06 Abdulaziz Yasin Nageye Faculty of Computing Java How to Program, 10/e 1 © Co py.
6 Functions.
Corresponds with Chapter 5
Presentation transcript:

Part II © Copyright by Pearson Education, Inc. All Rights Reserved.

 Stack data structure  Analogous to a pile of dishes  A dish is placed on the pile at the top (referred to as pushing the dish onto the stack).  A dish is removed from the pile from the top (referred to as popping the dish off the stack).  Last-in, first-out (LIFO) data structures  The last item pushed (inserted) on the stack is the first item popped (removed) from the stack. © Copyright by Pearson Education, Inc. All Rights Reserved.

 When a program calls a method, the called method must know how to return to its caller  The return address of the calling method is pushed onto the program-execution (or method-call) stack.  If a series of method calls occurs, the successive return addresses are pushed onto the stack in last-in, first-out order.  The program-execution stack also contains the memory for the local variables used in each invocation of a method during a program’s execution.  Stored as a portion of the program-execution stack known as the activation record or stack frame of the method call. © Copyright by Pearson Education, Inc. All Rights Reserved.

 When a method call is made, the activation record for that method call is pushed onto the program-execution stack.  When the method returns to its caller, the method’s activation record is popped off the stack and those local variables are no longer known to the program.  If more method calls occur than can have their activation records stored on the program-execution stack, an error known as a stack overflow occurs. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Argument promotion  Converting an argument’s value, if possible, to the type that the method expects to receive in its corresponding parameter.  Conversions may lead to compilation errors if Java’s promotion rules are not satisfied.  Promotion rules  specify which conversions are allowed.  apply to expressions containing values of two or more primitive types and to primitive-type values passed as arguments to methods.  Each value is promoted to the “highest” type in the expression.  Figure 6.4 lists the primitive types and the types to which each can be promoted. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Converting values to types lower in the table of Fig. 6.4 will result in different values if the lower type cannot represent the value of the higher type  In cases where information may be lost due to conversion, the Java compiler requires you to use a cast operator to explicitly force the conversion to occur— otherwise a compilation error occurs. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Java contains many predefined classes that are grouped into categories of related classes called packages.  A great strength of Java is the Java API’s thousands of classes.  Some key Java API packages are described in Fig  Overview of the packages in Java SE 6:  download.oracle.com/javase/6/docs/api/ overview-summary.html  Java API documentation  download.oracle.com/javase/6/docs/api/ © Copyright by Pearson Education, Inc. All Rights Reserved.

 Simulation and game playing  element of chance  Class Random (package java.util )  static method random of class Math.  Objects of class Random can produce random boolean, byte, float, double, int, long and Gaussian values  Math method random can produce only double values in the range 0.0  x  1.0.  Documentation for class Random  download.oracle.com/javase/6/docs/api/java/ util/Random.html © Copyright by Pearson Education, Inc. All Rights Reserved.

 Class Random produces pseudorandom numbers  A sequence of values produced by a complex mathematical calculation.  The calculation uses the current time of day to seed the random-number generator.  The range of values produced directly by Random method nextInt often differs from the range of values required in a particular Java application.  Random method nextInt that receives an int argument returns a value from 0 up to, but not including, the argument’s value. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Rolling a Six-Sided Die  face = 1 + randomNumbers.nextInt( 6 );  The argument 6 —called the scaling factor—represents the number of unique values that nextInt should produce (0–5)  This is called scaling the range of values  A six-sided die has the numbers 1–6 on its faces, not 0–5.  We shift the range of numbers produced by adding a shifting value—in this case 1—to our previous result, as in  The shifting value ( 1 ) specifies the first value in the desired range of random integers. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Fig 6.7: Rolling a Six-Sided Die 6,000,000 Times © Copyright by Pearson Education, Inc. All Rights Reserved.

 Generalize the scaling and shifting of random numbers: number = shiftingValue + randomNumbers.nextInt( scalingFactor ); where shiftingValue specifies the first number in the desired range of consecutive integers and scalingFactor specifies how many numbers are in the range.  It’s also possible to choose integers at random from sets of values other than ranges of consecutive integers: number = shiftingValue + differenceBetweenValues * randomNumbers.nextInt( scalingFactor ); where shiftingValue specifies the first number in the desired range of values, differenceBetweenValues represents the constant difference between consecutive numbers in the sequence and scalingFactor specifies how many numbers are in the range. © Copyright by Pearson Education, Inc. All Rights Reserved.

 When debugging an application, it’s sometimes useful to repeat the exact same sequence of pseudorandom numbers.  To do so, create a Random object as follows:  Random randomNumbers = new Random( seedValue );  seedValue (of type long ) seeds the random-number calculation.  You can set a Random object’s seed at any time during program execution by calling the object’s set method. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Basic rules for the dice game Craps:  You roll two dice. Each die has six faces, which contain one, two, three, four, five and six spots, respectively. After the dice have come to rest, the sum of the spots on the two upward faces is calculated. If the sum is 7 or 11 on the first throw, you win. If the sum is 2, 3 or 12 on the first throw (called “craps”), you lose (i.e., the “house” wins). If the sum is 4, 5, 6, 8, 9 or 10 on the first throw, that sum becomes your “point.” To win, you must continue rolling the dice until you “make your point” (i.e., roll that same point value). You lose by rolling a 7 before making your point. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Notes:  myPoint is initialized to 0 to ensure that the application will compile.  If you do not initialize myPoint, the compiler issues an error, because myPoint is not assigned a value in every case of the switch statement, and thus the program could try to use myPoint before it is assigned a value.  gameStatus is assigned a value in every case of the switch statement—thus, it’s guaranteed to be initialized before it’s used and does not need to be initialized. © Copyright by Pearson Education, Inc. All Rights Reserved.

 enum type Status  A n enumeration in its simplest form declares a set of constants represented by identifiers.  Special kind of class that is introduced by the keyword enum and a type name.  Braces delimit an enum declaration’s body.  Inside the braces is a comma-separated list of enumeration constants, each representing a unique value.  The identifiers in an enum must be unique.  Variables of an enum type can be assigned only the constants declared in the enumeration. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Why Some Constants Are Not Defined as enum Constants  Java does not allow an int to be compared to an enumeration constant.  Java does not provide an easy way to convert an int value to a particular enum constant.  Translating an int into an enum constant could be done with a separate switch statement.  This would be cumbersome and not improve the readability of the program (thus defeating the purpose of using an enum ). © Copyright by Pearson Education, Inc. All Rights Reserved.

 Declarations introduce names that can be used to refer to such Java entities.  The scope of a declaration is the portion of the program that can refer to the declared entity by its name.  Such an entity is said to be “in scope” for that portion of the program.  More scope information, see the Java Language Specification, Section 6.3: Scope of a Declaration  java.sun.com/docs/books/jls/third_edition/ html/names.html# © Copyright by Pearson Education, Inc. All Rights Reserved.

 Basic scope rules:  The scope of a parameter declaration is the body of the method in which the declaration appears.  The scope of a local-variable declaration is from the point at which the declaration appears to the end of that block.  The scope of a local-variable declaration that appears in the initialization section of a for statement’s header is the body of the for statement and the other expressions in the header.  A method or field’s scope is the entire body of the class.  Any block may contain variable declarations.  If a local variable or parameter in a method has the same name as a field of the class, the field is “hidden” until the block terminates execution—this is called shadowing. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Method overloading  Methods of the same name declared in the same class  Must have different sets of parameters  Compiler selects the appropriate method to call by examining the number, types and order of the arguments in the call.  Used to create several methods with the same name that perform the same or similar tasks, but on different types or different numbers of arguments.  Literal integer values are treated as type int, so the method call in line 9 invokes the version of square that specifies an int parameter.  Literal floating-point values are treated as type double, so the method call in line 10 invokes the version of square that specifies a double parameter. © Copyright by Pearson Education, Inc. All Rights Reserved.

 Distinguishing Between Overloaded Methods  The compiler distinguishes overloaded methods by their signatures—the methods’ names and the number, types and order of their parameters.  Return types of overloaded methods  Method calls cannot be distinguished by return type.  Figure 6.10 illustrates the errors generated when two methods have the same signature and different return types.  Overloaded methods can have different return types if the methods have different parameter lists.  Overloaded methods need not have the same number of parameters. © Copyright by Pearson Education, Inc. All Rights Reserved.