Presentation is loading. Please wait.

Presentation is loading. Please wait.

13-Apr-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Topic 2: Fundamental Programming Structures.

Similar presentations


Presentation on theme: "13-Apr-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Topic 2: Fundamental Programming Structures."— Presentation transcript:

1 13-Apr-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Topic 2: Fundamental Programming Structures in Java Maj Joel Young Maj Joel Young

2 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-152 Object-Oriented Programming Design Java Identifiers Identifiers –Used to name local variables –Names of attributes –Names of classes Primitive Data Types Available in Java (size in bytes) –byte (1), -128 to 127 –short (2), to –int (4), to –long (8), to –float (4), -3.4E38 to 3.4E38, 7 digit precision –double (8), -1.7E308 to 1.7E308, 17 digits precision –char (2), unicode characters –boolean (true, false), discrete values

3 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-153 Object-Oriented Programming Design Java Identifiers Naming Rules –Must start with a letter –After first letter, can consist of letters, digits (0,1,…,9) –The underscore “_” and the dollar sign “$” are considered letters Variables –All variables must be declared in Java –Can be declared almost anywhere (scope rules apply) –Variables have default initialization values –Integers: 0 –Reals: 0.0 –Boolean: False –Variables can be initialized in the declaration

4 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-154 Object-Oriented Programming Design Java Identifiers Example Declarations int speed;// integer, defaults to 0 int speed = 100;// integer, init to 100 long distance = L; // “L” needed for a long float delta = 25.67f;// “f” needed for a float double delta = 25.67;// Defaults to double double bigDelta = 67.8E200d;// “d” is optional here boolean status;// defaults to “false” boolean status = true; Potential Problems (for the C/C++ crew) long double delta = 3.67E204;// No “long double” in Java unsigned int = ;// No unsigned ints in Java

5 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-155 Object-Oriented Programming Design Java Types Arrays int[] numbers = new int[n] // Array of integers, size is n –size can be computed at run time, but can't be changed –allocated on heap (thus enabling run time size allocation) –invalid array accesses detected at run time (e.g. numbers[6];) –numbers.length; // read only variable specifying length of array –reference semantics int[] winning_numbers; winning_numbers = numbers; // refer to same array numbers[0] = 13; // changes both

6 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-156 Object-Oriented Programming Design Java Types Strings String message = "Error " + errnum; –strings are immutable – can't be changed, although variables can be changed (and old string left for garbage collection) –message = "Next error " + errnum2; –use StringBuffer to edit strings StringBuffer buf = new StringBuffer(greeting); buf.setCharAt( 4, '?'); greeting = buf.toString();

7 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-157 Object-Oriented Programming Design Java Types Strings –String comparison if (greeting == "hello" ) …. // error, compares location only if ( greeting.equals("hello")) …. // OK string1.compareTo(string2) // negative if string1 < string 2; // zero when equal, // positive if string1 > string2 string1.substring(2, 6); // return substring between position 2 and 5

8 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-158 Object-Oriented Programming Design Java Operators Operators/Order of Precedence OperatorOperationPrecedence () or [ ] or. or ++ or - - Parens, array indices, object invocation, increment, decrement 1 + or – or ~ Unary plus, unary minus, complement 2 * or / or % Multiplication, division, modulus 3 + or - Addition, subtraction 4 > Bitwise shifts 5 & Bitwise AND 6 ^ Bitwise XOR 7 | Bitwise OR 8

9 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-159 Object-Oriented Programming Design Java Operators Example Usage int anInt1 = 2, anInt2 = 1, anInt3; double aDbl1; anInt3 = anInt1 + anInt2 * 4; // anInt3 gets 6 anInt3 = (anInt1 + anInt2) * 4; // anInt3 gets 12 anInt3 = ++anInt2 * 2;// anInt3 gets 4 anInt2 = 1; anInt3 = anInt2++ * 2;// anInt3 gets 2 anInt2 = 1; anInt3 = anInt1 & anInt2;// anInt3 gets 0 anInt3 = anInt1 ^ anInt2;// anInt3 gets 3 anInt3 = anInt2 << 1;// anInt3 gets 2 anInt3 = 1 / 2;// anInt3 gets 0 aDbl1 = 1 / 2;// aDbl1 gets 0.0 aDbl1 = 1.0 / 2.0;// aDbl1 gets 0.5

10 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1510 Object-Oriented Programming Design Java Statements Import Statements (discussed later) Class/Interface Declarations (discussed later) Assignments Conditionals Loops Miscellaneous (mixed in other discussions)

11 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1511 Object-Oriented Programming Design Java Statements Assignments –General Format: variable = expression ; Where variable is a previously declared identifier and expression is a valid combo of identifiers, operators, and method (a.k.a. procedure or function) calls –Shortcuts: var *= expr ; // Equivalent to var = var * (expr); var /= expr ; // Equivalent to var = var / (expr); var += expr ; // Equivalent to var = var + (expr); var -= expr ; // Equivalent to var = var – (expr); var %= expr ; // Equivalent to var = var % (expr); var++;// Equivalent to var = var + 1; var--;// Equivalent to var = var - 1;

12 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1512 Object-Oriented Programming Design Java Conditional Constructs “if” Statements –if with code block if (boolean_expr) { statements } –if with single statement if (boolean_expr) statement;

13 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1513 Object-Oriented Programming Design Java Conditional Constructs if” Statements (Continued) –if-else if (boolean_expr) { statements for true } else { statements for false } if statements falsetrue statements

14 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1514 Object-Oriented Programming Design Java Conditional Constructs Boolean Expressions –Boolean expressions use conditional operators such that they result in a value of true or false –Conditional Operators (Not by order of precedence) OperatorOperation == or != Equality, not equal > or < Greater than, less than >= or <= Greater than or equal, less than or equal ! Unary negation (NOT) & or && Evaluation AND, short circuit AND | or || Evaluation OR, short circuit OR

15 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1515 Object-Oriented Programming Design Java Conditional Constructs Boolean Expression Examples int i1 = 1, i2 = 2, i3 = 3, i4 = 0; boolean b1 = true, b2 = false, b3 = true; i2 > i1 // true (i3 – i2) > i1// false (i3 – i2) >= i1// true (i2 > i1) & (i2 < i3)// true (i2 i1)// true i2 != i1// true (i1 1)// Divide by 0 exception (i1 1)// true (i1 1)// true, i1 contains 2 (i1 1)// true, i1 contains 1 b1 && b2 && b3// false (b1 || b2) && b3// true b1 && (i1 == (i3 – i2))// true

16 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1516 Object-Oriented Programming Design Java Conditional Constructs if-else” Statement Example class Example { static public void main(String args[]) { // A very contrived example int i1 = 1, i2 = 2; System.out.print(“Result: “); if (i1 > i2) { System.out.println(“i1 > i2”); } else { System.out.println(“i2 >= i1”); } if statements falsetrue statements

17 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1517 Object-Oriented Programming Design Java Conditional Constructs The Switch Statement switch (integer_expression) { case int_value_1: statements break; case int_value_2: statements break; … case int_value_n: statements break; default: statements } if true statements if false true statements if false true statements false

18 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1518 Object-Oriented Programming Design Don’t forget the “break” switch (integer_expression) { case int_value_1: statements // No break! case int_value_2: statements break; … case int_value_n: statements break; default: statements } if true statements if false true statements if false true statements false

19 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1519 Object-Oriented Programming Design Java Conditional Constructs Example int n = 5; switch (n) { case 1: n = n + 1; break; case 5: n = n + 2; break; default: n = n – 1; } if true statements if false true statements false

20 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1520 Object-Oriented Programming Design Java Conditional Constructs Example char c = ‘b’; int n = 0; switch (c) { case ‘a’: n = n + 1; break; case ‘b’: n = n + 2; break; default: n = n – 1; } if true statements if false true statements false

21 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1521 Object-Oriented Programming Design Java Looping Constructs while loop –Exit condition evaluated at top do loop –Exit condition evaluated at bottom for loop –Exit condition evaluated at top –Includes a initialization statements –Includes a update statements for each iteration

22 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1522 Object-Oriented Programming Design Java Looping Constructs while loop while (boolean_expr) { statements } do loop do { statements } while (boolean_expr) if statements false true if statements false true

23 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1523 Object-Oriented Programming Design Java Looping Constructs for loop for (init_stmnt; bool_expr; update_stmnt) { statements } if statements false true init update

24 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1524 Object-Oriented Programming Design Java Looping Constructs for loop for (init_stmnt; bool_expr; update_stmnt) { statements } if statements false true init update

25 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1525 Object-Oriented Programming Design Java Looping Constructs class Example { static public void main(String args[]) { int i = 0; System.out.println("while loop"); while (i < 10) { System.out.println(i); i++; } System.out.println("do loop"); do { System.out.println(i); i--; } while (i > 0); System.out.println("for loop"); for (i = 0; i < 10; i++) { System.out.println(i); } } // End main } // End Example

26 Air Force Institute of Technology Electrical and Computer Engineering 13-Apr-1526 Object-Oriented Programming Design Homework Go to: –Explore the Java API Docs and Tutorials Go to: –Explore: –Read the docs for the String class –Read the docs for the Integer class –Read the docs for the System class Enter the code from the Example class (cut and paste from pdf or ppt) and compile and run it.


Download ppt "13-Apr-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Topic 2: Fundamental Programming Structures."

Similar presentations


Ads by Google