Top Banner
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main 6 } // end class Hello Hello! A Simple Program: Printing a Line of Text Chapter 0 – Introduction to Programming
30

Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

Jan 02, 2016

Download

Documents

Rodger Sanders
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

Hello.java

Program Output

1 public class Hello { 2 public static void main( String [] args )3 {4 System.out.println( “Hello!" );5 } // end method main6 } // end class Hello

Hello!

A Simple Program: Printing a Line of Text

Chapter 0 – Introduction to Programming

Page 2: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

2

Type Size in bits Values Standard boolean 8 true or false

char 16 ’\u0000’ to ’\uFFFF’ (0 to 65535)

(ISO Unicode character set)

byte 8 –128 to +127

short 16 –32,768 to +32,767

int 32 –231 to 231 – 1

long 64 –263 to 263 – 1

float 32 Negative range: –3.4028234663852886E+38 to –1.40129846432481707e–45 Positive range: 1.40129846432481707e–45 to 3.4028234663852886E+38

(IEEE 754 floating point)

double 64 Negative range: –1.7976931348623157E+308 to –4.94065645841246544e–324 Positive range: 4.94065645841246544e–324 to 1.7976931348623157E+308

(IEEE 754 floating point)

Data Types

Page 3: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

3

Identifiers

• Identifiers are names for programming entities such as variables, classes, methods, etc.

• Rules for naming identifiers:1. consists of letters (a-z, A-Z), digits (0-9), underscore

(_)and dollar sign ($)

2. cannot start with a digit

3. cannot be reserved words (see next page)

• Example of Valid Identifiers: – a, aNumber, F101, Sales_2003$123, MyClass

• Example of Invalid Identifiers: – Go#, 3Hands, Star*Mars, final

Page 4: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

4

Reserved Words

abstract default if private this

boolean do implements protected throw

break double import public throws

byte else instanceof return transient case extends int short try

catch final interface static void

char finally long strictfp volatile

class float native super while

const for new switch

continue goto package synchronized

true false null

Page 5: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

5

Constants• A constant is an identifier that is similar to a variable except

that its value cannot be changed.

• The compiler will issue an error if you try to change a constant

• In Java, we use the final modifier to declare a constantfinal int MEANING_OF_LIFE = 42;

• Constants:

– give names to otherwise unclear literal values

– facilitate changes to the code• Avoid using literal constants

(e.g. salary = 2*hourly_rate + 60;)should use

salary = OT_FACTOR*hourly_rate + BASIC_RATE;

Page 6: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

6

Assignment

• An assignment statement changes the value of a variable

• The assignment operator is the = sign

• You can only assign a value to a variable that is consistent with the variable's declared type

• The expression on the right is evaluated and the result is stored in the variable on the left

• The value that was in total is overwritten

total = 55*salary;

Page 7: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

7

Arithmetic Operators

Operator(s) Operation(s) Order of evaluation (precedence) ( ) Parentheses Evaluated first. If the parentheses are nested,

the expression in the innermost pair is evaluated first. If there are several pairs of parentheses on the same level (i.e., not nested), they are evaluated left to right.

*, / and % Multiplication Division Modulus

Evaluated second. If there are several of this type of operator, they are evaluated from left to right.

+ or - Addition Subtraction

Evaluated last. If there are several of this type of operator, they are evaluated from left to right.

Fig. 2.17 Precedence of arithmetic operators.

Page 8: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

8

Assignment operator Sample expression Explanation Assigns Assume: int c = 3, d = 5, e = 4, f = 6, g = 12; += c += 7 c = c + 7 10 to c -= d -= 4 d = d - 4 1 to d *= e *= 5 e = e * 5 20 to e /= f /= 3 f = f / 3 2 to f %= g %= 9 g = g % 9 3 to g Fig. 4.12 Arithmetic assignment operators.

Arithmetic Operators

Page 9: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

9

Operator Called Sample expression Explanation ++ preincrement ++a Increment a by 1, then use

the new value of a in the expression in which a resides.

++ postincrement a++ Use the current value of a in the expression in which a resides, then increment a by 1.

-- predecrement --b Decrement b by 1, then use the new value of b in the expression in which b resides.

-- postdecrement b-- Use the current value of b in the expression in which b resides, then decrement b by 1.

Fig. 4.13 The increment and decrement operators.

Arithmetic Operators

Page 10: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

10

String Concatenation

• The plus operator (+) is used for arithmetic addition and string concatenation (joining two strings)

• The function to perform depends on the type of the information

e.g. 2 + 35 gives 37 but "2" + "35" gives "235"

• How about 2 + "35" or "2" + 35?

• Ans: "235"

• If both operands are strings, or if one is a string and one is a number, it performs string concatenation

• If both operands are numeric, it adds them

Page 11: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

11

Casting

• Casting - convert a type to another explicitly

• To cast, the type is put in parentheses in front of the value being converted

• For example, if total and count are integers, but we want a floating point result when dividing them, we can cast total:

result = (float) total / count;

• To avoid loss of accuracy, use

a = (double) 10/3; a = 10/(double) 3;

but NOT a = (double) (10/3);

Note: a=10/3.0 or a=10.0/3 also work

Page 12: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

12

Standard algebraic equality or relational operator

J ava equality or relational operator

Example of J ava condition

Meaning of J ava condition

Equality operators = == x == y x is equal to y != x != y x is not equal to y Relational operators > x > y x is greater than y < x < y x is less than y >= x >= y x is greater than or equal to y <= x <= y x is less than or equal to y

Fig. 2.19 Equality and relational operators.

Equality and Relational Operators

• e.g. a=2; b=4;if (a>b)

System.out.print("hot - ");

System.out.prinln("but not humid");

The output is but not humid.

Page 13: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

13

Logical Operators

• Logical operators– Allows for forming more complex conditions

– Combines simple conditions

• Java logical operators– && (logical AND)– & (boolean logical AND)– || (logical OR)– | (boolean logical inclusive OR)– ^ (boolean logical exclusive OR)– ! (logical NOT)

Page 14: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

14

The if/else Selection Structure

• Perform action (statement1) only when condition is true

• Perform different specified action (statement2) when condition is false

if ( condition )

statement1

else

statement2

Page 15: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

15

Conditional Operator

• The conditional operator is similar to an if-else statement, except that it is an expression that returns a value.

• For example: if (num1 > num2)

larger = num1;

else

larger = num2;

is the same aslarger = (num1 > num2) ? num1 : num2;

Page 16: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

16

Nested if statements

expression1

statement 3 expression2

statement 2 Statement 1

if (expression 1) if (expression 2) statement 1 else statement 2else statement 3

true

true

false

false

Page 17: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

17

The switch Multiple-Selection Structure

• switch structure– Used for multiple selections

• Syntaxexpression must be byte, short, int or char but NOT longswitch ( expression ) {

case label1:

statement(s);

break;

case label2:

statement(s);

break;

default:

statement(s);

}

Page 18: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

18

The for Repetition Structurefor ( expression1; expression2; expression3 ) {

statement;

}

can easily be rewritten as:

expression1;while ( expression2 ) { statement; expression3;}

Page 19: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

19

The while Repetition Structure

• The structure is:

while ( condition ) { statement1; statement2; statement3; ...

}

Loop Body

Page 20: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

20

The do/while Repetition Structure

• do/while structure– Similar to while structure

– Tests loop-continuation after performing body of loop

• i.e., loop body always executes at least once

• Syntaxdo { statements; ... } while ( condition );

Page 21: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

21

Nested Loop

• A loop inside the loop body of another loop.

• Example: Print the following pattern using nested for-loop.

public class NestedLoop1 { public static void main( String args[] ) { for ( int i = 1; i <= 7; i++ ) { // print each row for ( int j = 1; j <= 5; j++ ) { System.out.print( j ); } System.out.println(); } }}

Outer Loop

Inner Loop

12345123451234512345123451234512345

Page 22: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

22

Arrays

• Consider the declaration int[] c = new int[ 5 ];

- c is the array name– c.length accesses array c’s length (5)– c has 5 elements ( c[0], c[1], … c[4] )– c[1] = 20 assigns integer 20 to the second location of c

• An array of size N is indexed from zero to N-1• We can use initializer list to initialize array

elements asint[] n = { 10, 20, 30, 40, 50 };

The operator new is not needed.

Page 23: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

23

Arrays

• Declaring and Allocating arrays– Arrays are objects that occupy memory

– Allocated dynamically with operator new int[] c = new int[ 12 ];

– Equivalent to int[] c; // declare array c = new int[ 12 ]; // allocate array

• We can allocate arrays of objects too

String[] b = new String[ 100 ];

• Bear in mind– All primitive data type variables are allocated automatically.

– All object data type variables (including array) must be created by the programmer (using the new operator) explicitly.

Page 24: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

24

Arrays

• Multiple-subscripted arrays– Tables with rows and columns

• Double-subscripted (two-dimensional) array

• Declaring double-subscripted array b[2][2]

int b[][] = { { 1, 2 }, { 3, 4 } };– 1 and 2 initialize b[0][0] and b[0][1]– 3 and 4 initialize b[1][0] and b[1][1]

1 2

3 4

0 1

0

1

Page 25: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

25

Arrays

• Allocating multiple-subscripted arrays– Can be allocated dynamically

• 3-by-4 array

int b[][]; b = new int[ 3 ][ 4 ];

• Rows can have different number of columns

int c[][]; c = new int[ 2 ][ ]; // allocate rows c[ 0 ] = new int[ 5 ]; // allocate row 0 c[ 1 ] = new int[ 3 ]; // allocate row 1

b c

Page 26: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

26

a[ 0 ][ 0 ]

a[ 1 ][ 0 ]

a[ 2 ][ 0 ]

a[ 0 ][ 1 ]

a[ 1 ][ 1 ]

a[ 2 ][ 1 ]

a[ 0 ][ 2 ]

a[ 1 ][ 2 ]

a[ 2 ][ 2 ]

a[ 0 ][ 3 ]

a[ 1 ][ 3 ]

a[ 2 ][ 3 ]

Row 0

Row 2

Row 1

Column 0 Column 1 Column 2 Column 3

Column subscript (or index)

Row Subscript (or index)

Array name

Fig. 7.14 A double-subscripted array with three rows and four columns.

Arrays

Page 27: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

27

Method Definitions

• General format of a method:return-value-type method-name( parameter-list ) { declarations and statements}

• Method can also return values: return expression;

• Parameters must be correct

– When a method starts running, it must have the right number of parameters, and each parameter must be of the required type.

public int square( int y ) { return y * y; }

Access Modifier (discussed later)

Page 28: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

28

Type Allowed promotions

double None

float double long float or double int long, float or double char int, long, float or double short int, long, float or double byte short, int, long, float or double boolean None (boolean values are not considered to be numbers in Java)

Fig. 6.5 Allowed promotions for primitive data types.

– Specify how to convert types without data loss

Promotion Rules

Page 29: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

29

Scope Rules

• A method can see local variables and parameters that are within it’s scope (inside the box).

• A method can see out of the glass that surrounds it.

• But no outsider can see into the box.

Page 30: Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.

30

Method Overloading

• Method overloading– Several methods of the same name

– Different parameter set for each method• Number of parameters

• Parameter types

– Return type cannot be used to distinguish overloaded methods.

• Examples from Java Library– The class Arrays has many overloaded methods