+ All Categories
Home > Documents > 02 - Java Fundamentals Handout

02 - Java Fundamentals Handout

Date post: 04-Jun-2018
Category:
Upload: adriana-leonte
View: 239 times
Download: 0 times
Share this document with a friend

of 13

Transcript
  • 8/13/2019 02 - Java Fundamentals Handout

    1/13

    10/15/13

    1

    Object OrientedProgrammingMihai Dasclu

    2CB, 2013 - 2014

    ProgrammingStyle andDocumentation

    Appropriate Comments

    Naming Conventions

    Proper Indentation and Spacing Lines

    Block Styles

    ObjectOrrientedProgramming

    2

    Appropriate Comments /* Include a summary at the beginning of the

    program to explain what the program does, its keyfeatures, its supporting data structures, and anyunique techniques it uses */

    // Include your name, class section, teaching

    //assistant, date, and a brief description at the

    //beginning of the program

    // strategic (before, overall) vs. tactical (intended forsingle lines of code can make code unreadable)

    // include copyright information

    // add descriptive information before function ObjectOrrientedProgramm

    ing

    3

    Naming Conventions Choose meaningful and descriptive names

    Variables and method names: Use lowercase. If the name consists of several words,

    concatenate all in one, use lowercase for the first word,and capitalize the first letter of each subsequent word inthe name. For example, the variables radius and area,and the method computeArea.

    Class names: Capitalize the first letter of each word in the name. For

    example, the class name ComputeArea.

    Constants: Capitalize all letters in constants, and use underscores to

    connect words. For example, the constant PI andMAX_VALUE

    ObjectOrrientedProgramm

    ing

    4

    Proper Indentation andSpacing Indentation

    Indent two spaces (or \t in Eclipse / NetBeans) Spacing

    Use blank line to separate segments of the code

    ObjectOrrientedProgramming

    5

    Block StylesNext-line & End-of-line

    ObjectOrrientedProgramming

    6

    public class Test

    {

    public static void main(String[] args)

    {

    System.out.println("Block Styles");

    }

    }

    public class Test {

    public static void main(String[] args) {

    System.out.println("Block Styles");

    }

    }

  • 8/13/2019 02 - Java Fundamentals Handout

    2/13

    10/15/13

    2

    Programming Errors Syntax Errors

    Detected by the compiler Runtime Errors

    Causes the program to abort Logic Errors

    Produces incorrect result

    ObjectOrrientedProgramming

    7

    Syntax Errors

    ObjectOrrientedProgramming

    8

    public class ShowSyntaxErrors {

    public static void main(String[] args) {

    i = 30;

    System.out.println(i + 4);

    }

    }

    Runtime Errors

    ObjectOrrientedProgramm

    ing

    9

    public class ShowRuntimeErrors {

    public static void main(String[] args) {

    int i = 1 / 0;

    }

    }

    Logic Errors

    ObjectOrrientedProgramm

    ing

    10

    public class ShowLogicErrors {

    // Determine if a number is between 1 and 100 inclusively

    public static void main(String[] args) {

    // Prompt the user to enter a number

    String input = JOptionPane.showInputDialog(null,

    "Please enter an integer:",

    "ShowLogicErrors", JOptionPane.QUESTION_MESSAGE);

    int number = Integer.parseInt(input);

    // Display the result

    System.out.println("The number is between 1 and 100, " +

    "inclusively? " + ((1 < number) && (number < 100)));

    System.exit(0);

    }

    }

    Debugging Bugs = logic errors are called

    Debugging= the process of finding and correctingerrors

    Common approach -> use a combination ofmethods to narrow down to the part of theprogram where the bug is located

    Hand-trace the program (i.e., catch errors by readingthe program)

    Insert print statements in order to show the values ofthe variables or the execution flow of the program

    This approach might work for a short, simple program.But for a large, complex program, the most effectiveapproach for debugging is to use a debugger utility. Ob

    jectOrrientedProgramming

    11

    Debugger A program that facilitates debugging & used to:

    Execute a single statement at a time

    Trace into or stepping over a method

    Set breakpoints

    Display variables

    Display call stack

    Modify variables

    http://www.vogella.com/articles/EclipseDebugging/article.html

    https://netbeans.org/features/java/debugger.html

    ObjectOrrientedProgramming

    12

  • 8/13/2019 02 - Java Fundamentals Handout

    3/13

    10/15/13

    3

    Elementaryprogramming

    ObjectOrrientedProgramming

    13

    Trace a Program Executionpublic class ComputeArea {

    /** Main method */

    public static void main(String[] args) {

    double radius;

    double area;

    // Assign a radius

    radius = 20;

    // Compute area

    area = radius * radius * 3.14159;

    // Display results

    System.out.println("The area for the circle of radius " +

    radius + " is " + area);

    }

    }

    14

    no valueradius

    allocate memoryfor radius

    ObjectOrrientedProgramming

    Trace a Program Executionpublic class ComputeArea {

    /** Main method */

    public static void main(String[] args) {

    double radius;

    double area;

    // Assign a radius

    radius = 20;

    // Compute area

    area = radius * radius * 3.14159;

    // Display results

    System.out.println("The area for the circle of radius " +

    radius + " is " + area);

    }

    }

    15

    no valueradius

    memory

    no valuearea

    allocate memoryfor area

    ObjectOrrientedProgramm

    ing

    Trace a Program Executionpublic class ComputeArea {

    /** Main method */

    public static void main(String[] args) {

    double radius;

    double area;

    // Assign a radius

    radius = 20;

    // Compute area

    area = radius * radius * 3.14159;

    // Display results

    System.out.println("The area for the circle of radius " +

    radius + " is " + area);

    }

    }

    16

    20radius

    no valuearea

    assign 20 to radius

    ObjectOrrientedProgramm

    ing

    Trace a Program Executionpublic class ComputeArea {

    /** Main method */

    public static void main(String[] args) {

    double radius;

    double area;

    // Assign a radius

    radius = 20;

    // Compute area

    area = radius * radius * 3.14159;

    // Display results

    System.out.println("The area for the circle of radius " +

    radius + " is " + area);

    }

    }

    17

    20radius

    memory

    1256.636area

    compute area and assign itto variable area

    ObjectOrrientedProgramming

    Trace a Program Executionpublic class ComputeArea {

    /** Main method */

    public static void main(String[] args) {

    double radius;

    double area;

    // Assign a radius

    radius = 20;

    // Compute area

    area = radius * radius * 3.14159;

    // Display results

    System.out.println("The area for the circle of radius " +

    radius + " is " + area);

    }

    }

    18

    20radius

    memory

    1256.636area

    print a message to theconsole

    ObjectOrrientedProgramming

  • 8/13/2019 02 - Java Fundamentals Handout

    4/13

    10/15/13

    4

    Reading Input from theConsole

    Create a Scanner objectScanner input = new Scanner(System.in);

    Use the methods next(), nextByte(),nextShort(), nextInt(), nextLong(), nextFloat(),nextDouble(), or nextBoolean() to obtain to astring, byte, short, int, long, float, double, orboolean value. For example,System.out.print("Enter a double value:");

    Scanner input = new Scanner(System.in);double d = input.nextDouble(); Object

    OrrientedProgramming

    19

    Getting Input from InputDialog Boxes String input =

    JOptionPane.showInputDialog( "Enter an input");

    String string =JOptionPane.showInputDialog(null, PromptingMessage, Dialog Title,JOptionPane.QUESTION_MESSAGE);

    ObjectOrrientedProgramming

    20

    Identifiers

    An identifier is a sequence ofcharacters that consist of letters,digits, underscores (_), and dollar signs($).

    An identifier must start with a letter,an underscore (_), or a dollar sign ($).It cannot start with a digit.An identifier cannot be a reserved word.An identifier cannot betrue, false,

    or null.

    An identifier can be of any length. ObjectOrrientedProgramm

    ing

    21

    Declaring Variablesint x; // Declare x to be an

    // integer variable;

    double radius; // Declare radius to

    // be a double variable;

    char a; // Declare a to be a

    // character variable;

    ObjectOrrientedProgramm

    ing

    22

    Assignment Statements x = 1; // Assign 1 to x;

    radius = 1.0; // Assign 1.0 to radius;

    a = 'A'; // Assign 'A' to a;

    ObjectOrrientedProgramming

    23

    Constantsfinal datatype CONSTANTNAME = VALUE;

    final double PI = 3.14159;

    final int SIZE = 3;

    ObjectOrrientedProgramming

    24

  • 8/13/2019 02 - Java Fundamentals Handout

    5/13

    10/15/13

    5

    Primitive Data Types &Operators byte: 8-bit signed [-128; 127]

    short: 16-bit signed [-32,768; 32,767]

    int: 32-bit signed [-2,147,483,648; 2,147,483,647] generally the defaultchoice

    long: 64-bit signed [-9,223,372,036,854,775,808;9,223,372,036,854,775,807] exceed int

    float: single-precision 32-bit IEEE 754 floating point; should never beused for precise values, such as currency (java.math.BigDecimal)

    double: double-precision 64-bit IEEE 754 floating point; usually thedefault choice for decimal values

    boolean: true and false; its "size" is not precisely defined

    char: 16-bit Unicode character ['\u0000' (or 0); '\uffff' (or 65,535]

    +, -, *, /, %

    Shortcut assignment with =

    ++, -- (pre and post)

    ObjectOrrientedProgramming

    25

    Default Values

    Data Type Default Value (for fields)byte 0

    short 0

    int 0

    long 0L

    float 0.0f

    double 0.0d

    char '\u0000'

    String (or any object) null

    boolean false

    ObjectOrrientedProgramming

    26

    Numeric Type Conversion Consider the following statements:

    byte i = 100; long k = i * 3 + 4; double d = i * 3.1 + k / 2;

    When performing a binary operation involving twooperands of different types, Java automaticallyconverts the operand based on the following rules:1. If one of the operands is double, the other is

    converted into double.

    2. Otherwise, if one of the operands isfloat, the otheris converted intofloat.

    3. Otherwise, if one of the operands is long, the otheris converted into long.

    4. Otherwise, both operands are converted into int.ObjectOrrientedProgramm

    ing

    27

    Type Casting Implicit casting

    double d = 3; (type widening) Explicit casting

    int i = (int) 3.0; (type narrowing) int i = (int) 3.9; (Fraction part is truncated)

    What is wrong? int x = 5 / 2.0;

    ObjectOrrientedProgramm

    ing

    28

    range increases

    byte, short, int, long, float, double

    Character Data Type char letter = 'A'; (ASCII)

    char numChar = '4'; (ASCII)

    char letter = '\u0041'; (Unicode)

    char numChar = '\u0034'; (Unicode)

    NOTE: The increment and decrement operators can alsobe used on char variables to get the next or precedingUnicode character. For example, the following statementsdisplay character b.

    char ch = 'a'; System.out.println(++ch);

    ObjectOrrientedProgramming

    29

    Four hexadecimal digits

    Escape Sequences forSpecial Characters Description Escape Sequence Unicode

    Backspace \b \u0008

    Tab \t \u0009

    Linefeed \n \u000A

    Carriage return \r \u000D

    Backslash \\ \u005C

    Single Quote \' \u0027

    Double Quote \" \u0022

    ObjectOrrientedProgramming

    30

  • 8/13/2019 02 - Java Fundamentals Handout

    6/13

    10/15/13

    6

    The String Type Char type represents only one character. To represent a

    string of characters:

    Stringmessage = "Welcome to Java";

    A predefined class in the Java library

    Not a primitive type, but a reference type

    // Three strings are concatenated

    String message = "Welcome " + "to " + "Java"; // String Chapter is concatenated with number 2

    String s = "Chapter" + 2; // s becomes Chapter2 // String Supplement is concatenated with character B

    String s1 = "Supplement" + 'B'; // s1 becomes SupplementB ObjectOrrientedProgramming

    31

    Converting Strings toIntegers or Doubles To convert a string into an int value, you can use

    the static parseInt method in the Integer class asfollows:

    int intValue = Integer.parseInt(intString); where intString is a numeric string such as 123.

    To convert a string into a double value, you canuse the static parseDouble method in the Doubleclass as follows:

    double doubleValue=Double.parseDouble(doubleString);

    ObjectOrrientedProgramming

    32

    ThebooleanType andOperators Often in a program you need to compare two values,

    such as whether i is greater than j => Boolean value:true or false.

    boolean b = (1 > 2);Operator Name

    < less than

    greater than

    >= greater than or equal to

    == equal to

    != not equal to ObjectOrrientedProgramm

    ing

    33

    if Statementsif (boolean-expression) {

    statement(s);

    }

    //else {

    // statement(s)-for-the-false-case;

    //}

    ObjectOrrientedProgramm

    ing

    34

    Multiple Alternative ifStatements The else clause matches the most recent if clause

    in the same block.

    ObjectOrrientedProgramming

    35

    if (score >= 90.0)grade = 'A';

    elseif (score >= 80.0)

    grade = 'B';elseif (score >= 70.0)

    grade = 'C';else

    if (score >= 60.0)

    grade = 'D';else

    grade = 'F';

    Equivalent

    if (score >= 90.0)grade = 'A';

    else if (score >= 80.0)grade = 'B';

    else if (score >= 70.0)grade = 'C';

    else if (score >= 60.0)

    grade = 'D';else

    grade = 'F';

    int i = 1;int j = 2;

    int k = 3;

    if (i > j)

    if(i > k)System.out.println("A");

    else

    System.out.println("B");

    int i = 1;int j = 2;int k = 3;

    if (i > j)if(i > k)System.out.println("A");

    elseSystem.out.println("B");

    Equivalent

    Common Errors Adding a semicolon at the end of an if clause is a

    common mistake.

    if (radius >= 0);

    {

    area = radius*radius*PI;

    System.out.println("The area for the circle of radius " +radius + " is " + area);

    }

    This mistake is hard to find, because it is not acompilation error or a runtime error, it is a logicerror.

    This error often occurs when you use the next-lineblock style. O

    bjectOrrientedProgramming

    36

    Wrong

  • 8/13/2019 02 - Java Fundamentals Handout

    7/13

    10/15/13

    7

    Efficiency

    ObjectOrrientedProgramming

    37

    Equivalent

    Equivalent

    if (number % 2 == 0) even = true;

    elseeven = false;

    boolean even= number % 2 == 0;

    if (even == true)System.out.println("It is even.");

    if (even)System.out.println("It is even.");

    Logical OperatorOperator Name

    ! not

    && and

    || or

    ^ exclusive or

    & bitwise and

    | bitwise or

    (1 == x) && ( 2 > x++)? (x=1)ObjectOrrientedProgramming

    38

    switch Statement Rules (1)

    ObjectOrrientedProgramm

    ing

    39

    The switch-expression must yield

    a value of char, byte, short, or int

    type and must always be enclosed

    in parentheses.

    The value1, ..., and valueN must

    have the same data type as the value

    of the switch-expression. The

    resulting statements in the case

    statement are executed when the

    value in the case statement matches

    the value of the switch-expression.

    Note that value1, ..., and valueN are

    constant expressions, meaning that

    they cannot contain variables in the

    expression, such as 1 + x.

    switch (switch-expression) {

    case value1: statement(s)1;

    break;

    case value2: statement(s)2;

    break;

    case valueN: statement(s)N;

    break;

    default: statement(s)-for-default;

    }

    switch Statement Rules (2)

    ObjectOrrientedProgramm

    ing

    40

    The keyword break isoptional, but it should be usedat the end of each c ase in orderto terminate the remainder ofthe switch statement. If the

    break statement is not present,the next case statement will beexecuted.

    switch (switch-expression) {

    case value1: statement(s)1;

    break;

    case value2: statement(s)2;

    break;

    case valueN: statement(s)N;

    break;

    default: statement(s)-for-default;

    }

    The default case, which isoptional, can be used to perform

    actions when none of the

    specified cases matches the

    switch-expression. The case statements are executed in sequential

    order, but the order of the cases (including the

    default case) does not matter. However, it is good

    programming style to follow the logical sequence of

    the cases and place the default case at the end.

    Trace switch statement (1)

    ObjectOrrientedProgramming

    41

    switch(ch) {

    case'a': System.out.println(ch);case'b': System.out.println(ch);case'c': System.out.println(ch);

    }

    Suppose ch is 'a':

    Trace switch statement (2)

    ObjectOrrientedProgramming

    42

    switch(ch) {

    case'a': System.out.println(ch);case'b': System.out.println(ch);case'c': System.out.println(ch);

    }

    This is 'a':

  • 8/13/2019 02 - Java Fundamentals Handout

    8/13

    10/15/13

    8

    Trace switch statement (3)

    ObjectOrrientedProgramming

    43

    switch(ch) {case'a': System.out.println(ch);case'b': System.out.println(ch);case'c': System.out.println(ch);

    }

    Execute this line

    Trace switch statement (4)

    ObjectOrrientedProgramming

    44

    switch(ch) {case'a': System.out.println(ch);case'b': System.out.println(ch);case'c': System.out.println(ch);

    }

    Execute this line

    Trace switch statement (5)

    ObjectOrrientedProgramm

    ing

    45

    switch(ch) {

    case'a': System.out.println(ch);case'b': System.out.println(ch);case'c': System.out.println(ch);

    }

    Execute this line

    Trace switch statement (1)

    ObjectOrrientedProgramm

    ing

    46

    switch(ch) {

    case'a': System.out.println(ch);break;

    case'b': System.out.println(ch);

    break;

    case'c': System.out.println(ch);break;

    }

    Suppose ch is 'a':

    Trace switch statement (2)

    ObjectOrrientedProgramming

    47

    switch(ch) {

    case'a': System.out.println(ch);break;

    case'b': System.out.println(ch);break;

    case'c': System.out.println(ch);break;

    }

    This is 'a':

    Trace switch statement (3)

    ObjectOrrientedProgramming

    48

    switch(ch) {

    case'a': System.out.println(ch);break;

    case'b': System.out.println(ch);break;

    case'c': System.out.println(ch);break;

    }

    Execute this line

  • 8/13/2019 02 - Java Fundamentals Handout

    9/13

    10/15/13

    9

    Conditional Operator (boolean-expression) ? exp1 : exp2

    if (num % 2 == 0)

    System.out.println(num + is even);

    else

    System.out.println(num + is odd);

    System.out.println((num % 2 == 0)? num + iseven :num + is odd);

    ObjectOrrientedProgramming

    49

    Formatting Output Use the printf statement.

    System.out.printf(format, items);

    Where format is a string that may consist of substrings and formatspecifiers. A format specifier specifies how an item should bedisplayed. An item may be a numeric value, character, boolean value,or a string. Each specifier begins with a percent sign.

    Specifier Output Example

    %b a boolean value t rue or fal se

    %c a character 'a'

    % d a dec im al i nt eger 200

    %f a floating-point number 45.460000

    %e a number in standard scientific notation 4.556000e+01

    %s a string "Java is cool"ObjectOrrientedProgramming

    50

    Formatting Example int count = 5;

    double amount = 45.56;

    System.out.printf(|count is %d \t| amount is %f\t|", count, amount);

    Display: |count is 5 |amount is 45.560000 |

    ObjectOrrientedProgramm

    ing

    51

    Operator Precedencevar++, var--

    +, - (Unary plus and minus), ++var,--var

    (type) Casting

    ! (Not)

    *,/,% (Multiplication, division, and remainder)

    +,- (Binary addition and subtraction)

    = (Comparison)

    ==,!=; (Equality)

    ^ (Exclusive OR)

    && (Conditional AND) Short-circuit AND

    || (Conditional OR) Short-circuit OR

    =,+=,-=,*=,/=,%= (Assignment operator) ObjectOrrientedProgramm

    ing

    52

    Operator Precedence andAssociativity

    The expression in the parentheses is evaluated first .(Parentheses can be nested, in which case the expression inthe inner parentheses is executed first.) When evaluatingan expression without parentheses, the operators areapplied according to the precedence rule and theassociativity rule.

    If operators with the same precedence are next to eachother, their associativity determines the order ofevaluation. All binary operators except assignmentoperators are left-associative.

    When two operators with the same precedence areevaluated, the associativityof the operators determines theorder of evaluation. All binary operators except assignmentoperators are left-associative. a b + c d is equivalent to ((a b) + c) d

    Assignment operators are right-associative. Therefore, theexpression a = b += c = 5 is equivalent to a = (b += (c = 5))

    ObjectOrrientedProgramming

    53

    Loops

    ObjectOrrientedProgramming

    54

  • 8/13/2019 02 - Java Fundamentals Handout

    10/13

    10/15/13

    10

    Loops - MotivationsSuppose you need to print a string (e.g., "Welcome toJava!") a hundred times. It would be tedious to haveto write the following statement a hundred times:

    System.out.println("Welcome to Java!");

    How do you solve this problem?

    55

    System.out.println("Welcome to Java!");System.out.println("Welcome to Java!");System.out.println("Welcome to Java!");

    System.out.println("Welcome to Java!");

    System.out.println("Welcome to Java!");

    System.out.println("Welcome to Java!");

    100times

    ObjectOrrientedProgramming

    Introducing while Loopswhile (loop-continuation-condition) {

    // loop-body;

    Statement(s);

    }

    Often the number of times a loop is executed is notpredetermined => use an input value to signify theend of the loop (a sentinel value)

    56

    intcount = 0;while(count < 100) {

    System.out.println("Welcome to Java");count++;

    }

    Trace it!

    ObjectOrrientedProgramming

    Caution Dont use floating-point values for equality checking in a loop

    control

    Consider the following code for computing 1 + 0.9 + 0.8 + ... + 0.1:

    double item = 1; double sum = 0;

    while (item != 0) { // No guarantee item will be 0

    sum += item;

    item -= 0.1;

    }

    System.out.println(sum);

    This loop seems OK on the surface, but can become an infiniteloop (because the floating-point arithmetic is approximated) Ob

    jectOrrientedProgramm

    ing

    57

    do-while & forLoopsdo {

    // Loop body;

    Statement(s);

    } while (loop-continuation-condition);

    for (initial-action; loop-continuation-condition; action-after-each-iteration) {

    // loop body;

    Statement(s);

    }

    58

    int i;

    for (i = 0; i < 100; i++ ) {

    System.out.println("Welcome to Java!");

    }

    Trace it!

    ObjectOrrientedProgramm

    ing

    Note The initial-action in a for loop a list of zero

    or more comma-separated expressions

    The action-after-each-iteration in a for loop a list of zero or more comma-separatedstatementsfor (int i = 1; i < 100; System.out.println(i++));

    for (int i = 0, j = 0; (i + j < 10); i++, j++) {

    // Do something

    }

    Therefore, the two for loops are correct Rarely used in practice

    59

    ObjectOrrientedProgramming

    Note If the loop-continuation-condition in a for loop is

    omitted, it is implicitly true.

    In case of infinite loops, it is better to use theequivalent while loop to avoid confusion

    60

    Equivalent

    for ( ; ; ) {// Do something

    }

    while (true) {// Do something

    }

    ObjectOrrientedProgramming

  • 8/13/2019 02 - Java Fundamentals Handout

    11/13

    10/15/13

    11

    Caution

    Adding a semicolon at the end of the forclause before the loop body is a commonmistake:

    61

    Logic Errors

    for (int i=0; i

  • 8/13/2019 02 - Java Fundamentals Handout

    12/13

    10/15/13

    12

    Usingbreakand continuew1: while (number < 20) {

    number++;

    sum += number;

    if (sum >= 100) break w1;

    }

    while (number < 20) {

    number++;

    if (number == 10 || number == 11) continue;

    sum += number;

    }

    67

    ObjectOrrientedProgramming Methods

    ObjectOrrientedProgramming

    68

    Problem

    69

    int sum = 0;for (int i = 1; i

  • 8/13/2019 02 - Java Fundamentals Handout

    13/13

    10/15/13

    13

    Calling Methods & Callstack

    73

    ObjectOrrientedProgramming

    public static void main(String[] args)

    {int i = 5;

    int j = 2;

    int k = max(i, j);

    System.out.println("The maximum between " + i +

    " and " + j + " is " + k);

    }

    public static int max(int num1, int num2) {

    int result;if (num1 > num2)

    result = num1;

    else

    result = num2;return result;

    }

    pass the value of i & jTrace call

    (a) The mainmethod is invoked.

    Space required forthe main method

    k:

    j: 2

    i: 5

    (b)The maxmethod is invoked.

    Space required for

    the max method

    num2: 2

    num1: 5

    (d) The max method is

    finished and the returnvalue is sent to k.

    (e) The mainmethod is finished.

    Stack is empty

    Space required for

    the main method

    k:

    j: 2i: 5

    Space required forthe main method

    k: 5

    j: 2

    i: 5

    (c)The max methodis being executed.

    Space required for

    the max methodresult: 5

    num2: 2

    num1: 5

    Space required for

    the main method

    k:j: 2

    i: 5

    CAUTION A return statement is required for a value-returning

    method

    The method shown below in (a) is logically correct,but it has a compilation error because the Javacompiler thinks it possible that this method does notreturn any value

    To fix this problem: delete if (n < 0)in (a), so that thecompiler will see a return statement to be reachedregardless of how the if statement is evaluated

    ObjectOrrientedProgramming

    74

    public static intsign(int n) {if(n > 0)

    return1;

    else if(n == 0)

    return0;

    elseif(n < 0)return1;

    }

    (a)

    Should be

    (b)

    public static intsign(int n) {

    if(n > 0)

    return1;

    else if(n == 0)

    return0;

    else

    return1;}

    Passing Parameters Suppose you invoke the method using

    nPrintln(Welcome to Java, 5);

    What is the output?

    Suppose you invoke the method using

    nPrintln(Computer Science, 15);

    What is the output?

    ObjectOrrientedProgramm

    ing

    75

    public static void nPrintln(String message, int n) {

    for (int i = 0; i < n; i++)

    System.out.println(message);

    }

    Overloading MethodsOverloading the maxMethod

    public static double max(doublenum1, double num2) {if (num1 > num2)return num1;

    else

    return num2;}

    76

    ObjectOrrientedProgramm

    ing


Recommended