java programming for android

116
Java Programming For Android Ideas for Today and Tomorrow

Upload: techinerd

Post on 10-May-2015

356 views

Category:

Software


3 download

DESCRIPTION

Slide Lectures delivered by Sir Faisal Khan at Sir Syed University Of Engineering & Technology,Karachi.

TRANSCRIPT

Page 1: Java Programming For Android

Java Programming For AndroidIdeas for Today and Tomorrow

Page 2: Java Programming For Android

Why Java? Java is a known language, developers know it and

don't have to learn it It runs in a Virtual Machine, so no need to

recompile it for every phone out there and easy to secure

Large number of development tools for Java already available.

Several mobile phones already used java me, so java was known in the industry

Page 3: Java Programming For Android

Introduction to Java Programming. What this course will Teach You? Create Java™ technology applications that

leverage the object-oriented features of the Java language, such as encapsulation, inheritance, and polymorphism

Execute a Java technology application from the command-line

Use Java technology data types and expressions Use Java technology flow control constructs Use arrays and other data collections Implement error-handling techniques using

exception handling

Page 4: Java Programming For Android

Introduction to Java Programming. What this course will Teach You… This course will give you and overview of How to

write Native Application using Android Platform Basic Features of Android Technology Architecture of Android Android Activity Life Cycle

Page 5: Java Programming For Android

How This course will Progress

Section 1- Introduction to Java Getting Started with Java Programming The IDEA Tour Identifiers, Keywords, and Types Expressions and Flow Control Arrays Class Design Advance Class Features Exception and Assertions

Page 6: Java Programming For Android

Section 1Introduction to Java Java technology is:

A programming language A development environment An application environment A deployment environment It is similar in syntax to C++. It is used for developing Desktop, Web and Mobile

Application

Page 7: Java Programming For Android

Primary Goals for Choosing Java Provides an easy-to-use language by:

Avoiding many pitfalls of other languages Being object-oriented Enabling users to create streamlined and clear code Provides an interpreted environment for:

Improved speed of development Code portability

Enables users to run more than one thread of activity Loads classes dynamically; that is, at the time they are

actually needed Supports changing programs dynamically during

runtime by loading classes from disparate sources Furnishes better security

Page 8: Java Programming For Android

Primary Goals of Chosing Java Cont…. The following features fulfill these goals:

The Java Virtual Machine (JVM™) Garbage collection The Java Runtime Environment (JRE) JVM tool interface

Page 9: Java Programming For Android

Introduction to JavaDay 2

Page 10: Java Programming For Android

Day 1-Recap Installation of Java Standard Development

Kit(JDK) Setting up JVM Parameters

Setting JAVA_HOME Setting Path for JDK tool support

Writing First Hello World Program Compiling Java Files Running Java Programs

Page 11: Java Programming For Android

Before Moving to Java

Lets look what is object oriented paradigm Discuss about Modelling, Abstraction,

Encapsulation, Inheritance, Polymorphism, Classes and, Objects

Discuss Reusability, Reliability, Extensibility, Adaptability, Manageability, Security in Object Oriented World

Page 12: Java Programming For Android

Software Design Concepts What is your understanding of software analysis

and design? What is your understanding of design and code

reuse? Define the term object-oriented.

Page 13: Java Programming For Android

The Analysis and Design Phase Analysis describes what the system needs to do:

Modelling the real-world, including actors and activities, objects, and behaviours

Design describes how the system does it: Modelling the relationships and interactions between

objects and actors in the system Finding useful abstractions to help simplify the problem

or solution

Page 14: Java Programming For Android

Declaring, Initializing, and Using Variables

Page 15: Java Programming For Android

Objectives After completing this lesson, you should be able

to: Identify the uses of variables and define the syntax for

a variable List the eight Java programming language primitive

data types Declare, initialize, and use variables and constants

according to Java programming language guidelines and coding standards

Modify variable values by using operators Use promotion and type casting

Page 16: Java Programming For Android

Relevance

• A variable refers to something that can change. Variables can contain one of a set of values. Where have you seen variables before?

• What types of data do you think variables can hold?

Page 17: Java Programming For Android

Topics Identify the uses of variables and define the syntax for

a variable List the eight Java programming language primitive

data types Declare, initialize, and use variables and constants Modify variable values by using operators Use promotion and type casting

Page 18: Java Programming For Android

Identifying Variable Use and SyntaxExample:

public class Shirt {

public int shirtID = 0; // Default ID for the shirt

public String description = "-description required-"; // default

// The color codes are R=Red, B=Blue, G=Green, U=Unset

public char colorCode = 'U';

public double price = 0.0; // Default price for all shirts

public int quantityInStock = 0; // Default quantity for

all shirts

// This method displays the values for an item public void displayInformation() {

System.out.println("Shirt ID: " + shirtID);

Page 19: Java Programming For Android

Identifying Variable Use and Syntax Example:

public void displayDescription {        String displayString = "";        displayString = "Shirt description: " + description;        System.out.println(displayString);  }

Page 20: Java Programming For Android

Uses of Variables Holding unique data for an object instance Assigning the value of one variable to another Representing values within a mathematical expression Printing the values to the screen Holding references to other objects

Page 21: Java Programming For Android

Variable Declaration and Initialization• Syntax (fields):[modifiers] type identifier [= value];

• Syntax (local variables):type identifier [= value];

• Examples:public int shirtID = 0;public String description = "-description

required-";public char colorCode = 'U';public double price = 0.0;public int quantityInStock = 0;

Page 22: Java Programming For Android

Topics Identify the uses of variables and define the syntax for

a variable List the eight Java programming language primitive

data types Declare, initialize, and use variables and constants Modify variable values by using operators Use promotion and type casting

Page 23: Java Programming For Android

Describing Primitive Data Types• Integral types (byte, short, int, and long)• Floating point types (float and double)• Textual type (char)• Logical type (boolean)

Page 24: Java Programming For Android

Integral Primitive TypesType Length Range Examples of

Allowed Literal Values

byte 8 bits –27 to 27 – 1 (–128 to 127, or 256 possible values)

2–1140b10 (binary number)

short 16 bits –215 to 215 – 1 (–32,768 to 32,767, or 65,535 possible values)

2–32699

int (default type for integral literals)

32 bits –231 to 231 –1 (–2,147,483,648 to 2,147,483,647, or 4,294,967,296 possible values)

2147334778123_456_678

Page 25: Java Programming For Android

Integral Primitive TypesType Length Range Examples of

Allowed Literal Values

long 64 bits –263 to 263 – 1(–9,223,372,036854,775,808 to 9,223,372,036854,775,807, or 18,446,744,073,709,551,616 possible values)

2–2036854775808L1L

Page 26: Java Programming For Android

Floating Point Primitive TypesType Float Length Examples of Allowed Literal Values

float 32 bits 99F–327456,99.01F4.2E6F (engineering notation for 4.2 * 106)

double(default type for floating point literals)

64 bits –11112.1E12 99970132745699.999

public double price = 0.0; // Default price for all shirts

Page 27: Java Programming For Android

Textual Primitive Type• The only primitive textual data type is char.• It is used for a single character (16 bits).• Example:

– public char colorCode = 'U';

Page 28: Java Programming For Android

Logical Primitive Type• The only data type is boolean.• It can store only true or false.• It holds the result of an expression that evaluates to

either true or false.

Page 29: Java Programming For Android

Topics Identify the uses of variables and define the syntax for

a variable List the eight Java programming language primitive

data types Declare, initialize, and use variables and constants Modify variable values by using operators Use promotion and type casting

Page 30: Java Programming For Android

Naming a VariableRules:

• Variable identifiers must start with either an uppercase or lowercase letter, an underscore (_), or a dollar sign ($).

• Variable identifiers cannot contain punctuation, spaces, or dashes.

• Java technology keywords cannot be used.

Page 31: Java Programming For Android

Naming a VariableGuidelines:

• Begin each variable with a lowercase letter. Subsequent words should be capitalized (for example, myVariable).

• Choose names that are mnemonic and that indicate to the casual observer the intent of the variable.

Page 32: Java Programming For Android

Assigning a Value to a Variable• Example:

– double price = 12.99;• Example (boolean):

– boolean isOpen = false;

Page 33: Java Programming For Android

Declaring and Initializing Several Variables in One Line of Code

• Syntax:– type identifier = value [, identifier = value];

• Example:– double price = 0.0, wholesalePrice = 0.0;

Page 34: Java Programming For Android

Additional Ways to Declare Variables and Assign Values to Variables

• Assigning literal values:– int ID = 0;– float pi = 3.14F;– char myChar = 'G';– boolean isOpen = false;

• Assigning the value of one variable to another variable:– int ID = 0;– int saleID = ID;

Page 35: Java Programming For Android

Additional Ways to Declare Variables and Assign Values to Variables

• Assigning the result of an expression to integral, floating point, or boolean variables:

– float numberOrdered = 908.5F;– float casePrice = 19.99F;– float price = (casePrice * numberOrdered);

– int hour = 12;– boolean isOpen = (hour > 8);

• Assigning the return value of a method call to a variable

Page 36: Java Programming For Android

Constants• Variable (can change):

– double salesTax = 6.25;• Constant (cannot change):

– final int NUMBER_OF_MONTHS = 12;• Guideline: Constants should be capitalized, with words

separated by an underscore (_).

Page 37: Java Programming For Android

Storing Primitives and Constants in Memory

Local variable declared inside a method

Objects with fields

Stack memory Heap memory

Page 38: Java Programming For Android

Topics Identify the uses of variables and define the syntax for

a variable List the eight Java programming language primitive

data types Declare, initialize, and use variables and constants Modify variable values by using operators Use promotion and type casting

Page 39: Java Programming For Android

Standard Mathematical OperatorsPurpose Operator Example Comments

Addition + sum = num1 + num2;If num1 is 10 and num2 is 2, sum is 12.

Subtraction – diff = num1 – num2;If num1 is 10 and num2 is 2, diff is 8.

Multiplication * prod = num1 * num2;If num1 is 10 and num2 is 2, prod is 20.

Division / quot = num1 / num2;If num1 is 31 and num2 is 6, quot is 5.

Division returns an integer value (with no remainder).

Page 40: Java Programming For Android

Standard Mathematical OperatorsPurpose Operator Example Comments

Remainder % mod = num1 % num2;If num1 is 31 and num2 is 6, mod is 1.

Remainder finds the remainder of the first number divided by the second number. 5 R

6 31 30 ----- 1Remainder always gives an answer with the same sign as the first operand.

1

Page 41: Java Programming For Android

Increment and Decrement Operators (++ and --)The long way:

age = age + 1;or count = count – 1;

Page 42: Java Programming For Android

Increment and Decrement Operators (++ and --) The short way:

Operator Purpose Example Notes

++ Pre-increment (++variable)

int i = 6;int j = ++i;i is 7, j is 7

Post-increment (variable++)

int i = 6;int j = i++;i is 7, j is 6

The value of i is assigned to j before i is incremented. Therefore, j is assigned 6.

Page 43: Java Programming For Android

Increment and Decrement Operators (++ and --)

Operator Purpose Example Notes

-- Pre-decrement(--variable)

int i = 6;int j = --i;i is 5, j is 5

Post-decrement(variable--)

int i = 6;int j = i--;i is 5, j is 6

The value i is assigned to j before i is decremented. Therefore, j is assigned 6.

Page 44: Java Programming For Android

Increment and Decrement Operators (++ and ––)

Examples:

int count=15;int a, b, c, d;a = count++;b = count;c = ++count;d = count;System.out.println(a + ", " + b + ", " + c + ", " +

d);

Page 45: Java Programming For Android

Operator PrecedenceHere is an example of the need for rules of precedence.Is the answer to the following problem 34 or 9?

c = 25 - 5 * 4 / 2 - 10 + 4;

Page 46: Java Programming For Android

Operator PrecedenceRules of precedence:

1. Operators within a pair of parentheses2. Increment and decrement operators3. Multiplication and division operators, evaluated from left to right4. Addition and subtraction operators, evaluated from left to right

Page 47: Java Programming For Android

Using Parentheses Examples:

c = (((25 - 5) * 4) / (2 - 10)) + 4;c = ((20 * 4) / (2 - 10)) + 4;c = (80 / (2 - 10)) + 4;c = (80 / -8) + 4;c = -10 + 4;c = -6;

Page 48: Java Programming For Android

Topics Identify the uses of variables and define the syntax for a

variable List the eight Java programming language primitive data types Declare, initialize, and use variables and constants Modify variable values by using operators Use promotion and type casting

Page 49: Java Programming For Android

Using Promotion and Type Casting• Example of potential issue:

int num1 = 53; // 32 bits of memory to hold the valueint num2 = 47; // 32 bits of memory to hold the valuebyte num3; // 8 bits of memory reservednum3 = (num1 + num2); // causes compiler error

• Example of potential solution:int num1 = 53;int num2 = 47;int num3;num3 = (num1 + num2);

Page 50: Java Programming For Android

Promotion• Automatic promotions:

– If you assign a smaller type to a larger type– If you assign an integral type to a floating point type

• Example of automatic promotions:

long big = 6;

Page 51: Java Programming For Android

Type Casting• Syntax:identifier = (target_type) value

• Example of potential issue:int num1 = 53; // 32 bits of memory to hold the valueint num2 = 47; // 32 bits of memory to hold the valuebyte num3; // 8 bits of memory reservednum3 = (num1 + num2); // causes compiler error

• Example of potential solution:int num1 = 53; // 32 bits of memory to hold the valueint num2 = 47; // 32 bits of memory to hold the valuebyte num3; // 8 bits of memory reservednum3 = (byte)(num1 + num2); // no data loss

Page 52: Java Programming For Android

Type CastingExamples:

int myInt;long myLong = 99L; myInt = (int) (myLong); // No data loss, only zeroes. // A much larger number would // result in data loss.int myInt;long myLong = 123987654321L; myInt = (int) (myLong); // Number is "chopped"

Page 53: Java Programming For Android

Compiler Assumptions for Integral and Floating Point Data Types

• Example of potential problem:short a, b, c;a = 1 ;b = 2 ;c = a + b ; //compiler error

• Example of potential solutions:– Declare c as an int type in the original declaration:

int c;• Type cast the (a+b) result in the assignment line:

c = (short)(a+b);

Page 54: Java Programming For Android

Floating Point Data Types and Assignment

• Example of potential problem:float float1 = 27.9;//compiler error

• Example of potential solutions:– The F notifies the compiler that 27.9 is a float value:

float float1 = 27.9F;

• 27.9 is cast to a float type: float float1 = (float) 27.9;

Page 55: Java Programming For Android

public class Person { public int ageYears = 32;

public void calculateAge() {

int ageDays = ageYears * 365; long ageSeconds = ageYears * 365 * 24L *

60 * 60;

System.out.println("You are " + ageDays + " days old.");

System.out.println("You are " + ageSeconds + " seconds old.");

} // end of calculateAge method } // end of class

Example

Page 56: Java Programming For Android

Summary In this lesson, you should have learned how to:

Identify the uses of variables and define the syntax for a variable

List the eight Java programming language primitive data types

Declare, initialize, and use variables and constants according to Java programming language guidelines and coding standards

Modify variable values by using operators Use promotion and type casting

Page 57: Java Programming For Android

Using Loop Constructs

Page 58: Java Programming For Android

Objectives

After completing this lesson, you should be able to: Create a while loop Nest a while loop Develop and nest a for loop Code and nest a do/while loop Use an ArrayList in a for loop Compare loop constructs

Page 59: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 60: Java Programming For Android

Loops Loops are frequently used in programs to repeat

blocks of statements until an expression is false. There are three main types of loops:

while loop: Repeats while an expression is true do/while loop: Executes once and then continues

to repeat while true for loop: Repeats a set number of times

Page 61: Java Programming For Android

Repeating Behavior

Are we there yet?

while (!areWeThereYet) {

read book; argue with sibling; ask, "Are we there yet?";

}

Woohoo!;Get out of car;

Page 62: Java Programming For Android

Creating while Loops

Syntax:while (boolean_expression) {

code_block;

} // end of while construct

// program continues here

If the boolean expression is true, this code block executes.

If the boolean expression is false, program continues here.

Page 63: Java Programming For Android

while Loop in Elevator public void setFloor() { // Normally you would pass the desiredFloor as an argument to the // setFloor method. However, because you have not learned how to // do this yet, desiredFloor is set to a specific number (5) // below.

int desiredFloor = 5; while ( currentFloor != desiredFloor ){ if (currentFloor < desiredFloor) { goUp(); } else { goDown(); } } }

If the boolean expression returns true, execute the while loop.

Page 64: Java Programming For Android

Types of Variables public class Elevator { public boolean doorOpen=false; public int currentFloor = 1; public final int TOP_FLOOR = 10; public final int BOTTOM_FLOOR = 1;

... < lines of code omitted > ...

public void setFloor() { int desiredFloor = 5; while ( currentFloor != desiredFloor ){ if (currentFloor < desiredFloor) { goUp(); } else { goDown(); } } // end of while loop } // end of method } // end of class

Local variable

Instance variables (fields)

Scope of desiredFloor

Page 65: Java Programming For Android

while Loop: Example 1Example: float square = 4; // number to find sq root of float squareRoot = square; // first guess while (squareRoot * squareRoot - square > 0.001) { // How accurate? squareRoot = (squareRoot + square/squareRoot)/2; System.out.println("Next try will be " + squareRoot); } System.out.println("Square root of " + square + " is " + squareRoot);

Result: Next try will be 2.5 Next try will be 2.05 Next try will be 2.0006099 Next try will be 2.0 The square root of 4.0 is 2.0

Page 66: Java Programming For Android

while Loop: Example 2Example: int initialSum = 500; int interest = 7; // per cent int years = 0; int currentSum = initialSum * 100; // Convert to pennies while ( currentSum <= 100000 ) { currentSum += currentSum * interest/100; years++; System.out.println("Year " + years + ": " + currentSum/100); }

Result: ... < some results not shown > ... Year 9: 919 Year 10: 983 Year 11: 1052

The while loop iterates 11 times before the boolean test

evaluates to true.

Check if money has doubled yet.

If not doubled, add another

year’s interest.

Page 67: Java Programming For Android

while Loop with Counter

System.out.println(" /*"); int counter = 0; while ( counter < 4 ) { System.out.println(" *"); counter ++; } System.out.println(" */");

/* * * * * */

Output:

Example:

Print an asterisk and increment the counter.

Check to see if counter has exceeded

4.

Declare and initialize a

counter variable.

Page 68: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 69: Java Programming For Android

for Loop int counter = 0; while ( counter < 4 ) { System.out.println(" *"); counter ++; }

for ( int counter = 0 ; counter < 4 ; counter++ ) {

System.out.println(" *");

}

for loop:

while loop:

counter increment goes here

Counter increment goes here.

Boolean expression remains here.

counter variable initialization moves here

Counter variable initialization moves here.

Page 70: Java Programming For Android

Developing a for Loop

Syntax:for (initialize[,initialize]; boolean_expression; update[,update]) {

code_block;}

for (String i = "|", t = "------"; i.length() < 7 ; i += "|", t = t.substring(1) ) {

System.out.println(i + t);

}

Example:

The three parts of the for loop

Page 71: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 72: Java Programming For Android

Nested for Loop

Code: int height = 4; int width = 10;

for (int rowCount = 0; rowCount < height; rowCount++ ) {

for (int colCount = 0; colCount < width; colCount++ ) { System.out.print("@"); } System.out.println(); }

Page 73: Java Programming For Android

Nested while Loop

Code: String name = "Lenny"; String guess = ""; int numTries = 0;

while (!guess.equals(name.toLowerCase())) { guess = ""; while (guess.length() < name.length()) { char asciiChar = (char)(Math.random() * 26 + 97); guess = guess + asciiChar; } numTries++; } System.out.println(name + " found after " + numTries + " tries!");

Page 74: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 75: Java Programming For Android

Loops and Arrays One of the most common uses of loops is when

working with sets of data. All types of loops are useful:

while loops (to check for a particular value for loops (to go through the entire array) Enhanced for loops

Page 76: Java Programming For Android

for Loop with Arrays

ages (array of int types)

127 8212 …

for (int i = 0; i < ages.length; i++ ) { System.out.println("Age is " + ages[i] );}

index starts at zeroIndex starts at 0.Last index of array is

ages.length – 1.

ages[i] accesses array values as i goes from 0 to

ages.length – 1.

Page 77: Java Programming For Android

Setting Values in an Array

ages (array of int types)

1010 1010 …

for (int i = 0; int < ages.length; i++ ) { ages[i] = 10;}

Loop accesses each element of array in turn.

Each element in the array is set to 10.

Page 78: Java Programming For Android

Enhanced for Loop with Arrays

ages (array of int types)

127 8212 …

for (int age : ages ) { System.out.println("Age is " + age );}

Loop accesses each element of array in turn.

Each iteration returns the next element of the

array in age.

Page 79: Java Programming For Android

Enhanced for Loop with ArrayLists

names (ArrayList of String types)

George …

for (String name : names ) { System.out.println("Name is " + name);}

Loop accesses each element of ArrayList in turn.

Each iteration returns the next element of the

ArrayList in name.

Jill Xinyi Ravi

Page 80: Java Programming For Android

Output:

Using break with Loopsbreak example: int passmark = 12; boolean passed = false; int[] score = { 4, 6, 2, 8, 12, 34, 9 }; for (int unitScore : score ) { if ( unitScore > passmark ) { passed = true; break; } } System.out.println("One or more units passed? " + passed);

One or more units passed? true

There is no need to go through the loop again,

so use break.

Page 81: Java Programming For Android

Using continue with Loopscontinue example: int passMark = 15; int passesReqd = 3; int[] score = { 4, 6, 2, 8, 12, 34, 9 }; for (int unitScore : score ) { if (score[i] < passMark) { continue; } passesReqd--; // Other processing } System.out.println("Units still reqd " + Math.max(0,passesReqd));

If unit failed, go on to check next unit.

Page 82: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 83: Java Programming For Android

Coding a do/while Loop

Syntax:

do {

code_block;} while (boolean_expression); // Semicolon is mandatory.

Page 84: Java Programming For Android

Coding a do/while Loop

setFloor() { // Normally you would pass the desiredFloor as an argument to the // setFloor method. However, because you have not learned how to // do this yet, desiredFloor is set to a specific number (5) // below. int desiredFloor = 5; do { if (currentFloor < desiredFloor) { goUp(); } else if (currentFloor > desiredFloor) { goDown(); } } while (currentFloor != desiredFloor); }

Page 85: Java Programming For Android

Topics Create a while loop Develop a for loop Nest a for loop and a while loop Use an array in a for loop Code and nest a do/while loop Compare loop constructs

Page 86: Java Programming For Android

Comparing Loop Constructs• Use the while loop to iterate indefinitely through statements

and to perform the statements zero or more times.• Use the do/while loop to iterate indefinitely through

statements and to perform the statements one or more times.• Use the for loop to step through statements a predefined

number of times.

Page 87: Java Programming For Android

Summary

In this lesson, you should have learned how to: Create a while loop Nest a while loop Develop and nest a for loop Code and nest a do/while loop Use an ArrayList in a for loop Compare loop constructs

Page 88: Java Programming For Android

Day 3

Page 89: Java Programming For Android

Using Operators and Decision Constructs

Page 90: Java Programming For Android

Objectives

After completing this lesson, you should be able to:

Use a relational operator Test equality between strings Use a conditional operator Create if and if/else constructs Nest an if statement Chain an if/else statement Use a switch statement

Page 91: Java Programming For Android

Relevance

• When you have to make a decision that has several different paths, how do you ultimately choose one path over all the other paths?

• For example, what are all of the things that go through your mind when you are going to purchase an item?

Page 92: Java Programming For Android

Topics Use relational and conditional operators Create if and if/else constructs Chain an if/else statement Use a switch statement

Page 93: Java Programming For Android

Using Relational and Conditional Operators

Page 94: Java Programming For Android

Elevator Examplepublic class Elevator { public boolean doorOpen=false; // Doors are closed by default public int currentFloor = 1; // All elevators start on first floor public final int TOP_FLOOR = 10; public final int MIN_FLOORS = 1; public void openDoor() {

System.out.println("Opening door."); doorOpen = true; System.out.println("Door is open.");

} public void closeDoor() {

System.out.println("Closing door."); doorOpen = false; System.out.println("Door is closed."); }

...

Close door.

Open door.

Page 95: Java Programming For Android

ElevatorTest.java File public class ElevatorTest {

public static void main(String args[]) {

Elevator myElevator = new Elevator();

myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); myElevator.goUp(); myElevator.goUp(); myElevator.goUp(); myElevator.openDoor(); myElevator.closeDoor(); myElevator.goDown(); myElevator.openDoor(); myElevator.goDown(); myElevator.openDoor(); }}

Page 96: Java Programming For Android

Relational OperatorsCondition Operator Example

Is equal to == int i=1;(i == 1)

Is not equal to != int i=2;(i != 1)

Is less than < int i=0;(i < 1)

Is less than or equal to <= int i=1;(i <= 1)

Is greater than > int i=2;(i > 1)

Is greater than or equal to

>= int i=1;(i >= 1)

Page 97: Java Programming For Android

Testing Equality Between Strings Example:

public class Employees {

public String name1 = "Fred Smith"; public String name2 = "Joseph Smith";

public void areNamesEqual() {

if (name1.equals(name2)) { System.out.println("Same name.");

} else {

System.out.println("Different name."); } }

}

Page 98: Java Programming For Android

Common Conditional Operators

Operation Operator Example

If one condition AND another condition

&& int i = 2;int j = 8;((i < 1) && (j > 6))

If either one condition OR another condition

|| int i = 2;int j = 8;((i < 1) || (j > 10))

NOT ! int i = 2;(!(i < 3))

Page 99: Java Programming For Android

Ternary Conditional Operator

Operation Operator Example

If someCondition is true, assign the value of value1 to result. Otherwise, assign the value of value2 to result.

?: someCondition ? value1 : value2

Page 100: Java Programming For Android

Topics Use relational and conditional operators Create if and if/else constructs Chain an if/else statement Use a switch statement

Page 101: Java Programming For Android

Creating if and if/else Constructs An if statement, or an if construct, executes a block of

code if an expression is true.

Page 102: Java Programming For Android

if Construct Syntax:

if (boolean_expression) { code_block;} // end of if construct// program continues here

Example of potential output:Opening door.Door is open.Closing door.Door is closed.Going down one floor.Floor: 0 This is an error in logic.Going up one floor.Floor: 1Going up one floor.Floor: 2...

Page 103: Java Programming For Android

if Construct: Example

... public void goDown() {

if (currentFloor == MIN_FLOORS) { System.out.println("Cannot Go down"); } if (currentFloor > MIN_FLOORS) { System.out.println("Going down one floor."); currentFloor--; System.out.println("Floor: " + currentFloor); } } }

Elevator cannot go down, and an error is displayed.

Elevator can go down, and current floor plus new floor are displayed.

Page 104: Java Programming For Android

if Construct: OutputExample potential output:• Opening door.• Door is open.• Closing door.• Door is closed.

• Cannot Go down Elevator logic prevents problem.

• Going up one floor.• Floor: 2• Going up one floor.• Floor: 3• ...

Page 105: Java Programming For Android

Nested if Statements ...

public void goDown() { if (currentFloor == MIN_FLOORS) {

System.out.println("Cannot Go down"); } if (currentFloor > MIN_FLOORS) {

if (!doorOpen) { System.out.println("Going down one floor."); currentFloor--; System.out.println("Floor: " + currentFloor);

} } }

}

Nested if statement

Page 106: Java Programming For Android

if/else ConstructSyntax:if (boolean_expression) {

<code_block1>

} // end of if construct

else { <code_block2>

} // end of else construct

// program continues here

Page 107: Java Programming For Android

if/else Construct: Example public void goUp() { System.out.println("Going up one floor."); currentFloor++; System.out.println("Floor: " + currentFloor); }

public void goDown() {

if (currentFloor == MIN_FLOORS) { System.out.println("Cannot Go down"); } else { System.out.println("Going down one floor."); currentFloor--; System.out.println("Floor: " + currentFloor);} } } }

Executed if expression is true

Executed if expression is false

Page 108: Java Programming For Android

if/else ConstructExample potential output:Opening door.Door is open.Closing door.Door is closed.Cannot Go down Elevator logic prevents problem.Going up one floor.Floor: 2Going up one floor.Floor: 3...

Page 109: Java Programming For Android

Topics Use relational and conditional operators Create if and if/else constructs Chain an if/else statement Use a switch statement

Page 110: Java Programming For Android

Chaining if/else ConstructsSyntax:if (boolean_expression) {

<code_block1>

} // end of if construct

else if (boolean_expression){

<code_block2>

} // end of else if construct

else {

<code_block3>}// program continues here

Page 111: Java Programming For Android

Chaining if/else Constructs... public void calculateNumDays() {

if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {

System.out.println("There are 31 days in that month."); }

else if (month == 2) { System.out.println("There are 28 days in that month."); }

else if (month == 4 || month == 6 || month == 9 || month == 11) { System.out.println("There are 30 days in that month.");

} else { System.out.println("Invalid month.");

...

Executes when if statement is true

Executes when first if statement is false and else statement is true

Executes when first if statement is false, first else statement is false, and this else statement is trueExecutes when all

statements are false

1

2

3

4

Page 112: Java Programming For Android

Topics Use relational and conditional operators Create if and if/else constructs Chain an if/else statement Use a switch statement

Page 113: Java Programming For Android

Using the switch ConstructSyntax:

switch (variable) {    case literal_value:

     <code_block>     [break;]

    case another_literal_value:        <code_block>

     [break;]    [default:]

     <code_block>}

Page 114: Java Programming For Android

Using the switch Construct: Example

public class SwitchDate {

public int month = 10;

public void calculateNumDays() {

switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("There are 31 days in that

month."); break; ...

Page 115: Java Programming For Android

When To Use switch Constructs

• Equality tests • Tests against a single value, such as customerStatus

• Tests against the value of an int, short, byte, or char type and String

• Tests against a fixed value known at compile time

Page 116: Java Programming For Android

Summary In this lesson, you should have learned how to:

Use a relational operator Test equality between strings Use a conditional operator Create if and if/else constructs Nest an if statement Chain an if/else statement Use a switch statement