Presentation is loading. Please wait.

Presentation is loading. Please wait.

Air Force Institute of Technology Electrical and Computer Engineering

Similar presentations


Presentation on theme: "Air Force Institute of Technology Electrical and Computer Engineering"— Presentation transcript:

1 Maj Joel Young Joel.Young@afit.edu
Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Topic 2: Fundamental Programming Structures in Java Maj Joel Young 10-Apr-17 Maj Joel Young

2 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 32767 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 Java Identifiers Naming Rules Variables 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 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 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 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 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 Java Operators Operators/Order of Precedence Operator Operation
() 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 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 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 Java Statements Import Statements (discussed later)
Class/Interface Declarations (discussed later) Assignments Conditionals Loops Miscellaneous (mixed in other discussions)

11 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 Java Conditional Constructs
“if” Statements if with code block if (boolean_expr) { statements } if with single statement statement;

13 Java Conditional Constructs
if” Statements (Continued) if-else if (boolean_expr) { statements for true } else statements for false if statements false true

14 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) Operator Operation == 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 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) | (i2 > i1) // true i2 != i1 // true (i1 < i2) | ((i1/i4) > 1) // Divide by 0 exception (i1 < i2) || ((i1/i4) > 1) // true (i1 < i2) | (i1++ > 1) // true, i1 contains 2 (i1 < i2) || (i1++ > 1) // true, i1 contains 1 b1 && b2 && b3 // false (b1 || b2) && b3 // true b1 && (i1 == (i3 – i2)) // true

16 Java Conditional Constructs
if-else” Statement Example if statements false true 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”);

17 Java Conditional Constructs
The Switch Statement switch (integer_expression) { case int_value_1: statements break; case int_value_2: case int_value_n: default: } if true statements false

18 Don’t forget the “break”
switch (integer_expression) { case int_value_1: statements // No break! case int_value_2: break; case int_value_n: default: } if true statements false

19 Java Conditional Constructs
Example int n = 5; switch (n) { case 1: n = n + 1; break; case 5: n = n + 2; default: n = n – 1; } if true statements false

20 Java Conditional Constructs
Example char c = ‘b’; int n = 0; switch (c) { case ‘a’: n = n + 1; break; case ‘b’: n = n + 2; default: n = n – 1; } if true statements false

21 Java Looping Constructs
while loop Exit condition evaluated at top do loop Exit condition evaluated at bottom for loop Includes a initialization statements Includes a update statements for each iteration

22 Java Looping Constructs
while loop while (boolean_expr) { statements } do loop do if statements false true if statements false true

23 Java Looping Constructs
for loop for (init_stmnt; bool_expr; update_stmnt) { statements } if statements false true init update

24 Java Looping Constructs
for loop for (init_stmnt; bool_expr; update_stmnt) { statements } if statements false true init update

25 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 i--; while (i > 0); System.out.println("for loop"); for (i = 0; i < 10; i++) } // End main } // End Example

26 Homework Go to: http://developer.java.sun.com/developer/infodocs/
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 "Air Force Institute of Technology Electrical and Computer Engineering"

Similar presentations


Ads by Google