java object oriented programming (oop)

249
Introduction to Object-Oriented Programming Prof. Erwin M. Globio, MSIT Java Training Specialist http://eglobiotraining.com Lesson 1

Upload: prof-erwin-globio

Post on 10-May-2015

1.622 views

Category:

Education


15 download

DESCRIPTION

You may now download this Presentation. For more updates, please LIKE our Facebook Page: http://www.facebook.com/eglobiotraining/

TRANSCRIPT

Page 1: JAVA Object Oriented Programming (OOP)

Introduction to

Object-Oriented Programming

Prof. Erwin M. Globio, MSIT Java Training Specialist

http://eglobiotraining.com

Lesson 1

Page 2: JAVA Object Oriented Programming (OOP)

Object Oriented Programming

Model Real World Objects

Encapsulate Data and Function

Page 3: JAVA Object Oriented Programming (OOP)

Java is used for Networking

Has many classes to program

Internet communications

Java-enabled devices

mobile phones

Web pages with additional

animation and functionality

Java servlets

Page 4: JAVA Object Oriented Programming (OOP)

Java is Simple

Derived from C/C++

Simpler than C/C++.

No preprocessors

Pointers were eliminated

Common data structures that use

pointers such as stacks, lists and

trees are available

Page 5: JAVA Object Oriented Programming (OOP)

Java is Robust

Employs strong type checking

Every data structure is defined

and its type is checked during

compilation and runtime

Built-in exception handling

Garbage collection is done

automatically

Page 6: JAVA Object Oriented Programming (OOP)

Java is Dynamic

There are many available Java

resources in the Internet.

Using interfaces

Classes are dynamically loaded.

Page 7: JAVA Object Oriented Programming (OOP)

Java is Secure

System breakers can not gain

access to system resources

the Java bytecode verifier

loaded classes can not access the

file system

a public-key encryption system

(in the future)

Page 8: JAVA Object Oriented Programming (OOP)

Java is Free

Java can be downloaded from the

Internet for FREE

Just visit http://java.sun.com/

Page 9: JAVA Object Oriented Programming (OOP)

Java is Portable

SYNTAX:

javac <filename>.java

EXAMPLE:

javac Welcome.java

You can compile your Java code from the command line.

Page 10: JAVA Object Oriented Programming (OOP)

Java is Portable

SYNTAX:

java <filename>

EXAMPLE:

java Welcome

Java program can then execute on any machine which has the Java Virtual Machine, thus, making it portable.

Page 11: JAVA Object Oriented Programming (OOP)

Java is Portable

Java Virtual Machine

Java code (*.java)

bytecodes (*.class)

Java Compiler

MAC PC UNIX

Page 12: JAVA Object Oriented Programming (OOP)

IDE: BlueJ

Download the appropriate version

Check the system requirements

Page 13: JAVA Object Oriented Programming (OOP)

IDE

Install J2SE 1.4.2 (Java 2 SDK version

1.4.2) or newer first before installing BlueJ

Download BlueJ: http://www.bluej.org/download/download.html

Page 14: JAVA Object Oriented Programming (OOP)

IDE: BlueJ

Minimum Requirements:

Pentium II processor or its

equivalent

64Mb main memory

Recommended:

400MHz Pentium III processor

or above and a 128Mb main

memory

Page 15: JAVA Object Oriented Programming (OOP)

Launch BlueJ

Let‟s make your

first Java project

using BlueJ…

Page 16: JAVA Object Oriented Programming (OOP)

Sample codes

package Group.Student;

public class Welcome{

public void printWelcome() {

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

}

}

Page 17: JAVA Object Oriented Programming (OOP)

Sample codes

/*

This class contains the main() method

*/

package Group.Student;

public class Main {

public static void main(String args[]) {

Welcome Greet= new Welcome();

Greet.printWelcome();

}

}

Page 18: JAVA Object Oriented Programming (OOP)

Common Programming Errors

compile-time errors

runtime errors

Page 19: JAVA Object Oriented Programming (OOP)

Compile Time Error

Page 20: JAVA Object Oriented Programming (OOP)

Compile Time Error

Page 21: JAVA Object Oriented Programming (OOP)

Compile Time Error

Page 22: JAVA Object Oriented Programming (OOP)

Run-Time Error

Page 23: JAVA Object Oriented Programming (OOP)

Run-Time Error

Page 24: JAVA Object Oriented Programming (OOP)

Word Bank

class

object

interface

message

method

inheritance

encapsulation

compile-time errors

runtime errors

Page 25: JAVA Object Oriented Programming (OOP)

End of Lesson 1

Summary…

Page 26: JAVA Object Oriented Programming (OOP)

End of Lesson 2

Laboratory Exercise

Page 27: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

Self-check

Create a class and describe it in terms of its attributes (data) and functions

(methods). Then, instantiate at least 2 objects. Use the tables below.

//write the class name here

Class Human

//write the data of the class here

Name

Age

Birthday

//write the methods of the class here

Grow

Give_Name

Get_Name

Get_Age

//write the object name here

Man

//write the data of the object

here

Name: Jonathan

Age: 29

Birthday: March 4, 1975

//write the methods of the object

here

Grow

Give_Name

Get_Name

Get_Age

Page 28: JAVA Object Oriented Programming (OOP)

Self-check

Create a class and describe it in terms of its attributes (data) and functions

(methods). Then, instantiate at least 2 objects. Use the tables below.

//write the class name here

//write the data of the class

here

//write the methods of the

class here

//write the object name here

//write the data of the object

here

//write the methods of the

object here

Page 29: JAVA Object Oriented Programming (OOP)

Skills Workout

Type the Java program given in this

lesson in the specified package.

Compile and run it. If errors are

encountered, debug it.

Page 30: JAVA Object Oriented Programming (OOP)

Your First Java Program

Lesson 2

Page 31: JAVA Object Oriented Programming (OOP)

Welcome.java

public class Welcome{

public void printWelcome() {

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

}

}

Page 32: JAVA Object Oriented Programming (OOP)

Explaining Welcome.java

Line 1 A single line comment.

A comment is read by he java compiler but, as a

command, it is actually ignored.

Any text followed two slash symbols(//) is

considered a comment.

Example:

// Welcome to Java

Page 33: JAVA Object Oriented Programming (OOP)

Explaining Welcome.java

Line 2 defines the beginning of the Welcome

class. When you declare a class as public, it

can be accessed and used by the other class.

Notice that there is also an open brace to indicate

the start of the scope of the class.

To declare a class here is the syntax

<method>class<class_name>

Example: public class Welcome{

Page 34: JAVA Object Oriented Programming (OOP)

Explaining Welcome.java

Void is the return type for the printWelcome()

Method. A method that returns void returns nothing. Return

type are discussed further in lesson 8

Example: public void printWelcome() {

Line 3 shows the start of the method printWelcome().

Syntax :

<modifier> <return_type> <method_name>

(<argument_list>) { <statements>) }

Page 35: JAVA Object Oriented Programming (OOP)

Explaining Welcome.java

Example:

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

Line 4 shows how to print text in java. The

println() method displays the message inside the

parentheses on the screen, and then the cursor is

placed on the next line. If you want cursor to go to

the next available space after printing, use print()

method.

Syntax:

System.out.println(String);

Page 36: JAVA Object Oriented Programming (OOP)

Explaining Welcome.java

Line 5 and 6 }

}

Contains closing braces. The braces on line 5 closes the method printWelcome() and the braces on line 6 closes the class Welcome.Take note that the opening brace on line 3 is paired with the closing brace on line 5 and the brace on line 2 is paired with the closing brace on line 6

Page 37: JAVA Object Oriented Programming (OOP)

Explaining Main.java

/*

This class contains the main() method

*/

public class Main {

public static void main(String args[]) {

Welcome Greet= new Welcome();

Greet.printWelcome();

}

}

Page 38: JAVA Object Oriented Programming (OOP)

Explaining Main.java Line 1-3

Contains a multi-line comment. Anyting in between /* and */ is considered a comment.

/*

This class contains the main() method

*/

Page 39: JAVA Object Oriented Programming (OOP)

Explaining Main.java

Line 5

Declares the Main class. the brace after the class indicates the start of the class.

public class Main {

Page 40: JAVA Object Oriented Programming (OOP)

Explaining Main.java Line 6

Program execution starts from line 6. The Java interpreter should see this main method definition as

is, except for args which is user defined.

public class Main {

Page 41: JAVA Object Oriented Programming (OOP)

Explaining Main.java Line 7 shows how an object is defined in Java. Here, the

object Greet is created. The word “Greet” is user defined. (You can even have your name in its place!). The general syntax for defining an object in Java is:

Syntax:

<class_name> <object_name> = new<class_name>(<arguments>);

Example: Welcome Greet= new Welcome();

Page 42: JAVA Object Oriented Programming (OOP)

Explaining Main.java Line 8

Illustrates how a method of a class is called. If you look at the Welcome class, you’ll notice that we declared a mehod named printWelcome().By declaring an instance of the Welcome class (in tis case, the Greet variable is an instance of a Welcome class, courtesy of line 7), you can execute the method withi the specific class.

Syntax: <class_name>.<method_name>(<arguments>);

Example: Greet.printWelcome();

Page 43: JAVA Object Oriented Programming (OOP)

Explaining Main.java Line 9-10

}

}

Contains wo closing braces. The brace on line 9 closes the main method and brace on line 10 indicates the end of the scoope of the class Main.

Page 44: JAVA Object Oriented Programming (OOP)

Word Bank

new - used in telling the compiler to create

an object from the specified class.

public - modifier that indicates a class,

method, or class variable can be

accessed by any object or method directly.

Page 45: JAVA Object Oriented Programming (OOP)

End of Lesson 2

Summary…

Page 46: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

Syntax Review SYNTAX EXAMPLE/S

package <top_package_name>[.<subpackage_name>]*;

package Group.Student;

import <top_package_name>[.<subpackage_name>]. <class_name>;

import School.Section.Student;

import School.Section.*;

<modifier> class <class_name> public class First

<class_name> <object_name> = new <class_name> (<arguments>);

Welcome Greet= new Welcome();

< package_name>.<class_name> <object_name> = new <package_name>.<class_name>(<arguments>);

School.Section.Student Alma = new School.Section.Student ();

<modifier> <return_type> <method_name> (<argument_list>) { <statements>}

public static void main(String args[]) { }

public void printWelcome( ) { }

Page 47: JAVA Object Oriented Programming (OOP)

Syntax Review

SYNTAX EXAMPLE/S

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

System.out.print (String); System.out.print("Hello");

/*

multi-line comment

*/

/*

This class contains the main() method

*/

//single line comment // author@

//prints_a_msg

/**

Java doc multi-line comment

*/

/**

This method will compute the sum of two

integers and return the result.

*/

Page 48: JAVA Object Oriented Programming (OOP)

Self-check

Below is a simple Java program that will print your name and age on the

screen. Fill the missing portions with the correct code. Type the program,

compile and run it.

1 /*

2 This class contains the main() method

3 */

4 package Group.Student;

5

6 public class First {

7 public static void main(String args[]) {

8 Name ____________= new Name();

9 myName.________________();

10 }

11 }

First.java //filename

Page 49: JAVA Object Oriented Programming (OOP)

Self-check

Below is a simple Java program that will print your name and age on the

screen. Fill the missing portions with the correct code. Type the program,

compile and run it.

1 package Group.Student;

2 // author@

3 public class __________{

4 public void printName() {

5 System.out.print("____________");// prints your name

6 System.out.println("____________");//prints your age

7 }

8 }

Name.java //filename

Page 50: JAVA Object Oriented Programming (OOP)

End of Lesson 2

Laboratory Exercise

Page 51: JAVA Object Oriented Programming (OOP)

Data Types, Literals, Keywords and

Identifiers

Lesson 3

Page 52: JAVA Object Oriented Programming (OOP)

Magic words

Casting – process of converting a value to the

type of variable.

Constant – identifier whose value can never be

changed once initialized.

Identifier – user-defined name for methods,

classes, objects, variables and labels.

Page 53: JAVA Object Oriented Programming (OOP)

Literals – values assigned to variables or constant

Unicode – universal code that has a unique number to represent each character.

Variable – identifier whose value can be changed.

Java keyword – word used by the Java compiler for a specific purpose

Page 54: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

Java Keywords

Page 55: JAVA Object Oriented Programming (OOP)

Java Keywords

Some key points about Java keywords:

• const and goto are keywords but are

not used in Java.

• true and false are boolean literals that

should not be used as identifiers.

• null is also considered a literal but is

not allowed as an identifier.

Page 56: JAVA Object Oriented Programming (OOP)

Identifiers

Rules for Identifiers:

• The first character of your identifier can start with a

Unicode letter.

• It can be composed of alphanumeric characters and

underscores.

• there is no maximum length

• create identifiers that are descriptive of their purpose.

• Your identifier must have no embedded spaces.

• Special characters such as ? and like are not accepted.

Page 57: JAVA Object Oriented Programming (OOP)

Data Types

Java has two sets of data types:

• primitive

• reference (or non-primitive).

Page 58: JAVA Object Oriented Programming (OOP)

Data Types

Data Type Default

boolean false

char „\u0000‟

byte 0

short 0

int 0

long 0

float 0L

double 0.0D

Page 59: JAVA Object Oriented Programming (OOP)

Data Types

Data Type Examples

boolean true

char „A‟,‟z‟,‟\n‟,‟6‟

byte 1

short 11

int 167

long 11167

float 63.5F

double 63.5

Page 60: JAVA Object Oriented Programming (OOP)

Variables

Variable Declaration Syntax:

<data_type> <identifier>;

Examples: boolean Passed;

char EquivalentGrade’;

byte YearLevel;

short Classes;

int Faculty_No;

long Student_No;

float Average;

Page 61: JAVA Object Oriented Programming (OOP)

Variables and Literals

Variable and Literal Declaration Syntax: <data_type> <identifier>=<literal>;

Examples: boolean Passed=true;

char EquivalentGrade=’F’;

byte YearLevel=2;

short Classes=19;

int Faculty_No=6781;

long Student_No=76667;

float Average=76.87F;

Page 62: JAVA Object Oriented Programming (OOP)

Variables and Literals

Examples: boolean Passed =true, Switch;

char EquivalentGrade=’F’,ch1, ch2;

byte Bytes, YearLevel =2;

short SH, Classes =19;

int Faculty_No =6781, Num1;

long Student_No =76667, Employee_No, Long1;

float Average=96.89F, Salary;

double Logarithm=0.8795564564, Tax, SSS;

String LastName=”Your LastName”,FirstName=”Your FirstName”,

MiddleName;

You can also declare several variables for

a specific data type in one statement by

separating each identifier with a comma(,)

Page 63: JAVA Object Oriented Programming (OOP)

Constants

Syntax for declaring constants:

static final <type> <identifier> =

<literal>;

final <type> <identifier> = <literal>;

Example: static final String Student_ID=”098774656”;

Page 64: JAVA Object Oriented Programming (OOP)

Type Conversion/ Casting

Casting

• the process of assigning a value of a

specific type to a variable of another

type.

• The general rule in type conversion is:

• upward casts are automatically done.

• downward casts should be expressed

explicitly.

Page 65: JAVA Object Oriented Programming (OOP)

Sample Code package Group.Lesson3;

public class Core

{

public Core(){ }

/**

* The main method illustrates implicit casting from char to int

* and explicit casting.

*/

public static void main(String[] args)

{

int x=10,Average=0;

byte Quiz_1=10,Quiz_2=9;

char c='a';

Average=(int) (Quiz_1+Quiz_2)/2; //explicit casting

x=c; //implicit casting from char to int

System.out.println("The Unicode equivalent of the character 'a' is : "+x);

System.out.println("This is the average of two quizzes : "+Average);

}

}

Page 66: JAVA Object Oriented Programming (OOP)

End of Lesson 3

Summary…

Page 67: JAVA Object Oriented Programming (OOP)

Self-check I. Write I if the given is not an acceptable Java identifier on the space provided

before each number. Otherwise, write V.

________________ 1.) Salary

________________ 2.) $dollar

________________ 3.) _main

________________ 4.) const

________________ 5.) previous year

________________ 6.) yahoo!

________________ 7.) else

________________ 8.) Float

________________ 9.) <date>

________________10.) 2_Version

II. Write C if the given statement is correct on the space provided before each

number. Otherwise, write I. Correct statements do not contain bugs.

________________1.) System.out.print(“Ingat ka!”, V);

________________2.) boolean B=1;

________________3.) double=5.67F;

________________4.) char c=(char) 56;

________________5.) System.out.print(„ I love you! „);

Page 68: JAVA Object Oriented Programming (OOP)

Self-check III.Below is a simple Java program that will print your name and age on the screen.

Fill the missing portions with the correct code. Type the program, compile and

run it.

public class First

{

public ________________(){ }//Constructor for objects of class Core

public static void main(String[] args)

{

int I=90;

short S=4;

________________;//statement to cast I to S

System.out.println(“I=___________________ );//print I

System.out.println(“S=___________________ );//print S

}

}

Page 69: JAVA Object Oriented Programming (OOP)

End of Lesson 10

LABORATORY EXERCISE

Page 70: JAVA Object Oriented Programming (OOP)

Java Operators

Lesson 4

Page 71: JAVA Object Oriented Programming (OOP)

Operators

• Unary

• Binary

• Ternary

• Shorthand

Page 72: JAVA Object Oriented Programming (OOP)

Arithmetic Operator

Operators

+ Addition

- Subtraction

* Multiplication

/ Division

% Modulo

++ Increment

-- Decrement

Page 73: JAVA Object Oriented Programming (OOP)

The Arithmetic_operators program package Group.Lesson4.Arithmetic;

public class Arithmetic_operators

{

public Arithmetic_operators() { } // Constructor

public static void main(String[] args)

{

int x=30, y= 2;

int Add=0,Subtract=0,Multiply=0,Divide=0;

int Modulo=0,Inc1=0,Inc2=0,Dec1=0,Dec2=0;

Add=x+y;

Subtract=x-y;

Multiply=x*y;

Divide=(int)x/y;

Modulo=x%y;

Page 74: JAVA Object Oriented Programming (OOP)

The Arithmetic_operators program (Continued) System.out.println("30+2="+Add+"\n30-2="+Subtract);

System.out.println("30*2="+Multiply+"\n30/2="+Divide+"\n30%2="+Modulo);

System.out.println("x="+x+"\ny="+y);

x++;

++y;

System.out.println("x="+x+"\ny="+y);

--x;

y--;

System.out.println("x="+x+"\ny="+y);

Inc1=x++;

Inc2=++y;

System.out.println("Inc1="+Inc1+"\nInc2="+Inc2);

System.out.println("x="+x+"\ny="+y);

Dec1=--x;

Dec2=y--;

System.out.println("Inc1="+Inc1+"\nInc2="+Inc2);

System.out.println("x="+x+"\ny="+y);

}

}

Page 75: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

The Arithmetic_operators program output

Page 76: JAVA Object Oriented Programming (OOP)

Relational Operator

> Greater than

>= Greater than or equal to

< Less than

<= Less than or equal to

= = Equal to

!= Not Equal to

Page 77: JAVA Object Oriented Programming (OOP)

The Relational_operators program

package Group.Lesson4.Relational;

public class Relational_operators

{

public Relational_operators() { }// Constructor for objects of class

Relational_operators

public static void main(String[] args)//execution begins here

{

//local variables

int x = 5, y = 7;

boolean Relational_Equal=false, Relational_NotEqual=false;

boolean Relational_LessThan=false, Relational_LessThanOrEqualTo=false;

boolean Relational_GreaterThan=false;

boolean Relational_GreaterThanOrEqualTo=false;

Page 78: JAVA Object Oriented Programming (OOP)

//evaluate expressions

Relational_Equal= x==y;

Relational_NotEqual= x!=y;

Relational_LessThan= x<y;

Relational_LessThanOrEqualTo= x<=y;

Relational_GreaterThan= x>y;

Relational_GreaterThanOrEqualTo= x>=y;

//print results

System.out.println("x=5 y=7");

System.out.println("x==y "+Relational_Equal);

System.out.println("x!=y "+Relational_NotEqual);

System.out.println("x<y "+Relational_LessThan);

System.out.println("x<=y

"+Relational_LessThanOrEqualTo);

System.out.println("x>y "+Relational_GreaterThan);

System.out.println("x>=y

"+Relational_GreaterThanOrEqualTo);

}

}

The Relational_operators program (Continued)

Page 79: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

The Relational_operators program output

Page 80: JAVA Object Oriented Programming (OOP)

Logical Operator

Operators Description

! NOT

|| OR

&& AND

| short-circuit OR

& short-circuit AND

Page 81: JAVA Object Oriented Programming (OOP)

Logical Operator- Truth Tables

Operand1 RESULT

! true false

! false true

The NOT (!) operator

Page 82: JAVA Object Oriented Programming (OOP)

The OR (|) operator

Operand1 Operand2 RESULT

true | true true

true | false true

false | true true

false | false false

Logical Operator- Truth Tables

Page 83: JAVA Object Oriented Programming (OOP)

The XOR (^) operator

Operand1 Operand2 RESULT

true ^ true false

true ^ false true

false ^ true true

false ^ false false

Logical Operator- Truth Tables

Page 84: JAVA Object Oriented Programming (OOP)

The AND (&) operator

Operand1 Operand2 RESULT

true & true true

true & false false

false & true false

false & false false

Logical Operator- Truth Tables

Page 85: JAVA Object Oriented Programming (OOP)

The Logical_operators program package Group.Lesson4.Logical;

public class Logical_operators

{

// Constructor for objects of class Logical_operators

public Logical_operators(){}

public static void main(String[] args)//execution begins here

{

//local variables

int x = 6 , y = 7;

boolean Logical_OR=false, Logical_OR_ShortCircuit=false;

boolean Logical_AND=false, Logical_AND_ShortCircuit=false;

boolean Logical_NOT=false, Logical_XOR=false;

System.out.println("x=6 y=7");

Logical_OR_ShortCircuit= (x<y)| (x++==y);

System.out.println("(x<y)| (x++==y) "+Logical_OR_ShortCircuit);

Logical_OR= (x<y)||(x++==y);

System.out.println("(x<y)| (x++==y) "+Logical_OR);

Page 86: JAVA Object Oriented Programming (OOP)

Logical_AND_ShortCircuit=(x<y)& (x==y++);

System.out.println("(x>y)& (x++==y) “ +Logical_AND_ShortCircuit);

Logical_AND= (x<y)&&(x++==y);

System.out.println("(x>y)&&(x++==y) "+Logical_AND);

Logical_NOT= !(x>y)||(x++==y);

System.out.println("!(x>y)||(x++==y) "+Logical_NOT);

Logical_XOR= (x>y)^ (x++==y);

System.out.println("(x>y)^ (x++==y) "+Logical_XOR);

System.out.println("!((x>y)^ (x++==y)) "+!Logical_XOR);//NEGATE

}

The Logical_operators program (Continued)

Page 87: JAVA Object Oriented Programming (OOP)

[http://www.techfactors.ph] TechFactors Inc. ©2005

The Logical_operators program output

Page 88: JAVA Object Oriented Programming (OOP)

REVIEW

Try converting 16 and 27 to bits.

Hope you got these answers: 16=0000000000010000

27=0000000000011011

RECALL: How do you get the equivalent of a certain number in bits?

ANSWER: You divide the number by 2 until you reach 0. Jot down the

remainder for each division operation and that‟s the equivalent.

RECALL: How do you convert a bit sequence to integer?

ANSWER: You multiply each bit by powers of 2. Then, add all the

products to get the equivalent.

RECALL: How many bits does an integer have?

ANSWER: 16 bits

Page 89: JAVA Object Oriented Programming (OOP)

REVIEW

Example: 4=0000000000000100

-4=1111111111111100

If you have a negative number, you still

have to convert the same way you would if it

were a positive number. Then, get the

complement and add 1. That‟s it!

Page 90: JAVA Object Oriented Programming (OOP)

Bitwise Operator

Operators Description

~ Complement

& AND

| OR

^ XOR (Exclusive OR)

<< Left Shift

>> Right Shift

>>> Unsigned Right Shift

Page 91: JAVA Object Oriented Programming (OOP)

Bitwise Operator - Truth Tables

The BITWISE COMPLEMENT

Operand1 RESULT

~ 1 0

~ 0 1

Page 92: JAVA Object Oriented Programming (OOP)

The BITWISE OR (|)

Operand1 Operand2 RESULT

1 | 1 1

1 | 0 1

0 | 1 1

0 | 0 0

Bitwise Operator - Truth Tables

Page 93: JAVA Object Oriented Programming (OOP)

The BITWISE XOR (^)

Operand1 Operand2 RESULT

1 ^ 1 0

1 ^ 0 1

0 ^ 1 1

0 ^ 0 0

Bitwise Operator - Truth Tables

Page 94: JAVA Object Oriented Programming (OOP)

The BITWISE AND (&)

Operand1 Operand2 RESULT

1 & 1 1

1 & 0 0

0 & 1 0

0 & 0 0

Bitwise Operator - Truth Tables

Page 95: JAVA Object Oriented Programming (OOP)

Bitwise Operator – Examples

x= 0000000000010000

~x= 1111111111101111

Therefore, ~x=-17.

x= 0000000000010000

y= 0000000000011011

Or= 0000000000011011

x= 0000000000010000

y= 0000000000011011

And= 0000000000010000

x= 0000000000010000

y= 0000000000011011

Xor= 0000000000001011

x= 0000000000010000

Left_shift=

0000000010000000

Left_shift = 128

z= 1111111111111100

Right_shift= 1111111111111111

Right_shift= -1

Negative=1111111111111100

Negative=0011111111111111

Negative= 1073741823

Page 96: JAVA Object Oriented Programming (OOP)

The Bitwise_operators program package Group.Lesson4.Bitwise;

public class Bitwise_operators

{

//Constructor for objects of class Bitwise_operators

public Bitwise_operators() { }

public static void main(String[] args)//execution begins here

{

//local variables

int x = 16 , y = 27, z=-4, Negative=-4;

int Complement=0,Or=0,And=0,Xor=0,Left_shift=0;

int Right_shift=0, Unsigned_Right_shift=0;

//operations

Complement = ~x;

Or = x|y;

And = x&y;

Xor = x^y;

Left_shift = x<<3;

Right_shift = z>>2;

Unsigned_Right_shift= Negative>>>2;

Page 97: JAVA Object Oriented Programming (OOP)

//print results

System.out.println("x=16 y=7 z=-4");

System.out.println("~x = "+Complement);

System.out.println("x|y = "+Or);

System.out.println("x&y = "+And);

System.out.println("x^y = "+Xor);

System.out.println("x<<3 = "+Left_shift);

System.out.println("z>>2 = "+Right_shift);

System.out.println("Negative>>>2 = "+Unsigned_Right_shift);

}

}

The Bitwise_operators program (continued)

Page 98: JAVA Object Oriented Programming (OOP)

The Bitwise_operators program output

Page 99: JAVA Object Oriented Programming (OOP)

Shorthand Operator with Assignment

Operators Description

+= Assignment With Addition

-= Assignment With Subtraction

*= Assignment With Multiplication

/= Assignment With Division

%= Assignment With Modulo

&= Assignment With Bitwise And

|= Assignment With Bitwise Or

^= Assignment With Bitwise XOR

<<= Assignment With Left Shift

>>= Assignment With Right Shift

>>>= Assignment With Unsigned Right

Shift

Page 100: JAVA Object Oriented Programming (OOP)

The Shorthand_operators program

package Group.Lesson4.Shorthand;

public class Shorthand_operators

{ //Constructor for objects of class Shorthand_operators

public Shorthand_operators(){ }

public static void main(String[] args)//execution begins here

{ //local variables

int Assign_With_Addition=4, Assign_With_Subtraction=4, Assign_With_Multiplication=4;

double Assign_With_Division=7;

int Assign_With_Modulo=7, Assign_With_Bitwise_And=7;

int Assign_With_Bitwise_Or=23, Assign_With_Bitwise_XOR=23, Assign_With_LeftShift=23;

int Assign_With_RightShift=10, Assign_With_UnsignedRightShift=10;

Assign_With_Addition +=2;

Assign_With_Subtraction -=2;

Assign_With_Multiplication *=2;

Assign_With_Division /=2;

Assign_With_Modulo %=2;

Assign_With_Bitwise_And &=2;

Assign_With_Bitwise_Or |=2;

Assign_With_Bitwise_XOR ^=2;

Assign_With_LeftShift <<=2;

Assign_With_RightShift >>=2;

Assign_With_UnsignedRightShift >>>=2;

System.out.println(" Results");

Page 101: JAVA Object Oriented Programming (OOP)

System.out.println("Assign_With_Addition+=2 "+Assign_With_Addition);

System.out.println("Assign_With_Subtraction-=2 "+Assign_With_Subtraction);

System.out.println("Assign_With_Multiplication*=2 "+Assign_With_Multiplication);

System.out.println("Assign_With_Division/=2 "+Assign_With_Division);

System.out.println("Assign_With_Modulo%=2 "+Assign_With_Modulo );

System.out.println("Assign_With_Bitwise_And&=2 "+Assign_With_Bitwise_And);

System.out.println("Assign_With_Bitwise_Or|=2 "+Assign_With_Bitwise_Or );

System.out.println("Assign_With_Bitwise_XOR^=2 "+Assign_With_Bitwise_XOR);

System.out.println("Assign_With_LeftShift<<=2 "+Assign_With_LeftShift);

System.out.println("Assign_With_RightShift>>=2 "+Assign_With_RightShift);

System.out.println("Assign_With_UnsignedRightShift>>>=2 "+Assign_With_UnsignedRightShift);

}

}

The Shorthand_operators program (continued)

Page 102: JAVA Object Oriented Programming (OOP)

The Shorthand_operators program output

Page 103: JAVA Object Oriented Programming (OOP)

Operator Precedence

Page 104: JAVA Object Oriented Programming (OOP)

Word Bank

expression

boolean expressions

truth value

truth table

shorthand operators

bit

sign bit

Page 105: JAVA Object Oriented Programming (OOP)

End of Lesson 4

Summary…

Page 106: JAVA Object Oriented Programming (OOP)

Self-check

Evaluate the given expressions/statements. Write

the result on the blanks provided before each

number. Given that a=3, b=4,c=6.

1.x=a++;

2.y=--b;

3.!((++a)!=4)&&(--b==4))

4.(c++!=b)|(a++==b)

5.t=a+b*c/3-2;

Page 107: JAVA Object Oriented Programming (OOP)

Decisions

Lesson 5

Page 108: JAVA Object Oriented Programming (OOP)

Decision making

In life we make decisions. Many times our decision are based on how we evaluate the situation. Certain situation need to be evaluated carefully in order to make the correct results or decision.

Page 109: JAVA Object Oriented Programming (OOP)

In Java , decisions are made using statements like if, if else, nested-if and switch.

In this lesson , we will examine hot these conditional statements are applied to simple programming problems.

Page 110: JAVA Object Oriented Programming (OOP)

Decision Statements If Statement: public class If_Statement

{

public static void main (String [] args)

{

int x = 0;

System.out.println ("Value is:" + x);

if(x%2==0)

{

System.out.println ("VAlue is an even number.");

}

if (x%2 ==1)

{

System.out.println ("Value is an odd number.");

}

}

• }

Page 111: JAVA Object Oriented Programming (OOP)

Wrapper Class

Primitive Data

Type

Wrapper Class

boolean Boolean

char Character

byte Byte

short Short

int Integer

long Long

float Float

double Double

Page 112: JAVA Object Oriented Programming (OOP)

if Statement

Syntax:

if (<boolean condition is true>)

{

<statement/s>

}

Example: if(x!=0){

x=(int)x/2;

}

Page 113: JAVA Object Oriented Programming (OOP)

The If_Statement program

package Lesson5.If;

import java.io.*;

public class If_Statement

{

//Constructor for objects of class If_Statement

public If_Statement(){ }

public static void main(String[] args) throws IOException

{

BufferedReader dataIn=new BufferedReader(new InputStreamReader(System.in));

int x=0;

String Str_1;

System.out.print("Enter an integer value: ");

Str_1=dataIn.readLine();

x=Integer.parseInt(Str_1);

if(x!=0){

x=(int)x/2;

}

System.out.println("x= "+x);

}

}

Page 114: JAVA Object Oriented Programming (OOP)

if-else Statement

Example: if (A%2==0) {

System.out.println (A+" is an EVEN number");

} else {

System.out.println (A+" is an ODD number");

}

Syntax:

if (<boolean condition is true>){

<statement/s>

}

else

{

<statement/s>

}

Page 115: JAVA Object Oriented Programming (OOP)

package Lesson5.If_Else;

import java.io.*;

public class IfElse {

public IfElse() { }

public static void main(String[] args)throws IOException

{

BufferedReader dataIn=new BufferedReader(new InputStreamReader(System.in));

//declare local variables

int A=0;

String Str_A;

//input

System.out.print("Enter an integer value for A: ");

Str_A=dataIn.readLine();

A=Integer.parseInt(Str_A);

//determine if input is odd or even and print

if (A%2==0) {

System.out.println (A+" is an EVEN number");

} else {

System.out.println (A+" is an ODD number");

}

}

}

The IfElse program

Page 116: JAVA Object Oriented Programming (OOP)

nested-if Statement

Syntax: if (<boolean condition is true>){

<statement/s>

}

else if (<boolean condition is true>) {

<statement/s>

}

else

{

<statement/s>

}

Page 117: JAVA Object Oriented Programming (OOP)

Example:

if (number1>number2) {

System.out.println (number1+" is greater than "+number2);

} else if (number1<number2){

System.out.println (number1+" is less than "+number2);

} else {//number1==number2

System.out.println (number1+" is equal to "+number2);

}

nested-if Statement

Page 118: JAVA Object Oriented Programming (OOP)

public class NestedIf {

public NestedIf() { }

public static void main(String[] args)throws IOException

{

BufferedReader dataIn=new BufferedReader(new InputStreamReader(System.in));

//declare local variables

double number1=0.0,number2=0.0;

String Str_number1,Str_number2;

//input Str_number1 and convert it to an integer (number1)

System.out.print("Enter a number: ");

Str_number1=dataIn.readLine();

number1=Double.parseDouble(Str_number1);

//input Str_number2 and convert it to an integer (number2)

System.out.print("Enter another number: ");

Str_number2=dataIn.readLine();

number2=Double.parseDouble(Str_number2);

//determine if number1 is greater than, less than or equal to number2

if (number1>number2) {

System.out.println (number1+" is greater than "+number2);

} else if (number1<number2){

System.out.println (number1+" is less than "+number2);

} else {//number1==number2

System.out.println (number1+" is equal to "+number2);

}

}

}

The NestedIf program and output

Page 119: JAVA Object Oriented Programming (OOP)

switch Statement

Syntax: switch(<expression>) {

case <constant1>:

<statements>

break;

case <constant2>:

<statements>

break;

:

:

default:

<statements>

break;

}

Page 120: JAVA Object Oriented Programming (OOP)

Example:

switch(month){

case 1:System.out.println("January has 31 days");

break;

case 2:System.out.println("February has 28 or 29 days");

break;

case 3:System.out.println("March has 31 days");

.

.

.

default:System.out.println("Sorry that is not a valid month!");

break;

}

switch Statement

Page 121: JAVA Object Oriented Programming (OOP)

public Switch_case(){ }//Constructor for objects of class Switch_case

public static void main(String[] args) throws IOException{

BufferedReader dataIn=new BufferedReader(new

InputStreamReader(System.in));

int month=0;

String Str_month;

System.out.print("Enter month [1-12]: ");

Str_month=dataIn.readLine();

month=Integer.parseInt(Str_month);

switch(month){

case 1:System.out.println("January has 31 days");

break;

case 2:System.out.println("February has 28 or 29 days");

break;

case 3:System.out.println("March has 31 days");

break;

case 4:System.out.println("April has 30 days");

break;

case 5:System.out.println("May has 31 days");

break;

The Switch_case program

Page 122: JAVA Object Oriented Programming (OOP)

case 6:System.out.println("June has 30 days");

break;

case 7:System.out.println("July has 31 days");

break;

case 8:System.out.println("August has 31 days");

break;

case 9:System.out.println("September has 30 days");

break;

case 10:System.out.println("October has 31 days");

break;

case 11:System.out.println("November has 30 days");

break;

case 12:System.out.println("December has 31 days");

break;

default:System.out.println("Sorry that is not a valid month!");

break; }}}

The Switch_case program (continued) and output

Page 123: JAVA Object Oriented Programming (OOP)

Word Bank

Wrapper class

Page 124: JAVA Object Oriented Programming (OOP)

End of Lesson 5

Summary…

Page 125: JAVA Object Oriented Programming (OOP)

End of Lesson 10

LABORATORY EXERCISE

Page 126: JAVA Object Oriented Programming (OOP)

Syntax Review

SYNTAX EXAMPLE/S

if (<boolean condition is

true>) {

<statement/s>

}

if(x!=0){

x=(int)x/2;

}

if (<boolean condition is

true>){

<statement/s>

}

else

{

<statement/s>

}

if (A%2==0) {

System.out.println (A+" is EVEN");

}

else

{

System.out.println (A+" is ODD ");

}

Page 127: JAVA Object Oriented Programming (OOP)

Syntax Review SYNTAX EXAMPLE/S

if (<boolean condition is true>){

<statement/s>

}

else if (<boolean condition is true>) {

<statement/s>

}

else{

<statement/s>

}

if (number1>number2) {

System.out.println (number1+" is greater than "+number2);

} else if (number1<number2){

System.out.println (number1+" is less than "+number2);

} else {//number1==number2

System.out.println (number1+" is equal to "+number2);

}

switch(<expression>) {

case

<constant1>:<statements>

break;

case

<constant2>:<statements>

break;

:

:

default:

<statements>

break;

}

switch(Number){

case 1:System.out.println("One ");

break;

case 2:System.out.println("Two");

break;

case 3:System.out.println("Three");

break;

default:System.out.println("Sorry!");

break;

}

Page 128: JAVA Object Oriented Programming (OOP)

Self-check

In the next slide is a simple Java program

that will determine if a number is zero, positive or

negative then print the appropriate message on

the screen. Fill the missing portions with the

correct code. Type the program, then compile and

run it.

Page 129: JAVA Object Oriented Programming (OOP)

Self-check public class NestedIf {

public NestedIf() { }//constructor

public static void main(String[] args)

{

int number=3;

if (__________) // FILL-IN THE BLANK

{

System.out.println (number+” is ZERO!”);

}

else if (___________) //FILL-IN THE BLANK

{

System.out.println (number+" is a POSITIVE number!”);

}

else

{

System.out.println (number+" is a NEGATIVE number!”);

}

}

}

Page 130: JAVA Object Oriented Programming (OOP)

Loops

Lesson 6

Page 131: JAVA Object Oriented Programming (OOP)

General Topics

• for structure

• while structure

• do-while structure

Page 132: JAVA Object Oriented Programming (OOP)

loop

A loop is a structure in Java that

permits a set of instructions to

be repeated

Page 133: JAVA Object Oriented Programming (OOP)

The for loop is usually used when the number of iterations that needs to be done is already known.

The while loop checks whether the prerequisite condition to execute the code within the loop is true or not. If it is true, then the code loop is executed.

The do-while loop executes the code within it first regardless of whether the condition is true or not before testing the given condition.

Page 134: JAVA Object Oriented Programming (OOP)

3 Main Parts of for loop Initialization - initial values of variables

that will be used in the loop.

Test condition - a boolean expression that

should be satisfied for the loop to

continue executing the statements

within the loop’s scope; as long as the

condition is true.

Increment/Operations- dictates the change

in value of the loop control variable

everytime the loop is repeated.

Page 135: JAVA Object Oriented Programming (OOP)

for loop

Syntax: for (<initialization>;<condition>;<increment>)

{

<statement/s>

}

Example:

for(int Ctr=1;Ctr<=5;Ctr++){

System.out.println(Ctr);

}

Page 136: JAVA Object Oriented Programming (OOP)

The For_loop program and output

package Lesson6.For;

public class For_loop

{

public For_loop() { }

public static void main(String[] args)

{

for(int Ctr=1;Ctr<=5;Ctr++){

System.out.println(Ctr);

}

}

}

Page 137: JAVA Object Oriented Programming (OOP)

while loop

Syntax: while (boolean condition is true)

{

<statement/s>

}

Example:

int Ctr=1;

while(Ctr<=5){

System.out.println(Ctr);

Ctr++;

}

Page 138: JAVA Object Oriented Programming (OOP)

Sample Code and output

public class While_Loop

{

//Constructor for objects of class While_loop

public While_Loop() { }

public static void main(String[] args)

{

int Ctr=1;

while(Ctr<=5){

System.out.println(Ctr);

Ctr++;

}

}

}

Page 139: JAVA Object Oriented Programming (OOP)

do-while loop

Syntax: do {

<statement/s>

} while (<boolean condition is true>);

Example:

int Ctr=1;

do{

System.out.println(Ctr);

Ctr++;

}while(Ctr<=5);

Page 140: JAVA Object Oriented Programming (OOP)

Sample Code

public class DoWhile

{

public DoWhile() { }

public static void main(String[] args)

{

int Ctr=1;

do{

System.out.println(Ctr);

Ctr++;

}while(Ctr<=5);

}

}

Page 141: JAVA Object Oriented Programming (OOP)

End of Lesson 6

Summary…

Page 142: JAVA Object Oriented Programming (OOP)

Self-check

In the next slides are three

simple Java programs. Fill

the missing portions with

the correct code. Type the

programs, compile and run

them.

Page 143: JAVA Object Oriented Programming (OOP)

Self-check (For_loop2)

public class For_loop2

{

//Constructor for objects of class For_loop2

public For_loop2() { }

/**

* main()-prints all even numbers from 1-10

automatically using a for loop

*

* @param String[] args

* @return nothing

*/

public static void main(String[] args)

{

for(int Ctr=____;Ctr<=_____;Ctr____){

System.out.println(Ctr);

}

}

}

Page 144: JAVA Object Oriented Programming (OOP)

Self-check (DoWhile2)

public class DoWhile2

{

//Constructor for objects of class DoWhile2

public DoWhile2() { }

/**

* main()-prints the numbers 1-10 automatically

using a do_while loop

*

* @param String[] args

* @return nothing

*/

public static void main(String[] args)

{

int Ctr=________;

do{

System.out.println(Ctr);

Ctr______;

}while(Ctr<=_________);

}

}

Page 145: JAVA Object Oriented Programming (OOP)

Self-check (While_Loop2)

public class While_Loop2

{

//Constructor for objects of class While_loop2

public While_Loop2() { }

/**

* main()-prints odd numbers from 2 to 20

automatically using a while loop

*

* @param String[] args

* @return nothing

*/

public static void main(String[] args)

{

int Ctr=____________;

while(Ctr<=__________){

System.out.println(Ctr);

Ctr_______________;

}

}

}

Page 146: JAVA Object Oriented Programming (OOP)

End of Lesson

LABORATORY EXERCISE

Page 147: JAVA Object Oriented Programming (OOP)

More Loops

Page 148: JAVA Object Oriented Programming (OOP)

General Topics

• Nested loops

• continue

• break

Page 149: JAVA Object Oriented Programming (OOP)

Nested_For loops

The Nested_For program prints the multiplication

table. To do this, it has two loops. One loop is

inside the other. This is why it is called a nested

loop.

Page 150: JAVA Object Oriented Programming (OOP)

Nested_For loops

public class Nested_For

{

// Constructor for objects of class Nested_For

public Nested_For(){ }

public static void main(String [] args)

{

for(int Row=1;Row<=10;Row++){

for(int Column=1;Column<=10;Column++){

System.out.print(Row*Column+"\t");

}

System.out.println();

}

}

}

Page 151: JAVA Object Oriented Programming (OOP)

To see how this program behaves at any given time,

we need to set breakpoints. To do that, just click on

line number.

Nested_For loops – how it behaves

Click on line 15.

Page 152: JAVA Object Oriented Programming (OOP)

Run the program by right-clicking on the Nested_For

icon, click on void main(String [] args).

Nested_For loops – how it behaves

Then, click on the

Ok button.

Page 153: JAVA Object Oriented Programming (OOP)

Nested_For loops – how it behaves

– how it behaves

Page 154: JAVA Object Oriented Programming (OOP)

Nested_For loops – how it behaves

Page 155: JAVA Object Oriented Programming (OOP)

Nested_For loops – Output

Page 156: JAVA Object Oriented Programming (OOP)

The difference is the

inclusion of the if

statement on line 17

and the continue

statement on line 18.

Continue_Loop

Page 157: JAVA Object Oriented Programming (OOP)

Continue_Loop

public class Continue_Loop

{

// Constructor for objects of class Continue_Loop

public Continue_Loop(){ }

public static void main(String [] args)

{

for(int Row=1;Row<=10;Row++){

for(int Column=1;Column<=10;Column++){

if(Column==4){

continue;

}

System.out.print(Row*Column+"\t");

}

System.out.println();

}

}

}

Page 158: JAVA Object Oriented Programming (OOP)

Continue_Loop - Output

The column containing the multiples of 4 is not included.

Page 159: JAVA Object Oriented Programming (OOP)

Loop_Break

This program is again

similar to the previous

programs in this lesson,

except for the inclusion

of the if and break

statements. The output

shows 3 columns only.

Page 160: JAVA Object Oriented Programming (OOP)

Loop_Break

public class Loop_Break

{

//Constructor for objects of class Loop_Break

public Loop_Break(){ }

public static void main(String [] args)

{

for(int Row=1;Row<=10;Row++){

for(int Column=1;Column<=10;Column++){

if(Column==4){

break;

}

System.out.print(Row*Column+"\t");

}

System.out.println();

}

}

}

Page 161: JAVA Object Oriented Programming (OOP)

Labels

public class Labels

{

//Constructor for objects of class Labels

public Labels() { }

public static void main(String [] args)

{

here: for(int Row=1;Row<=10;Row++){

for(int Column=1;Column<=10;Column++){

System.out.print(Row*Column+"\t");

if(Column==4){

break here;

}

}

System.out.println();

}

}

}

Page 162: JAVA Object Oriented Programming (OOP)

Word Bank

Nested loops

Page 163: JAVA Object Oriented Programming (OOP)

Self-check

I. A Java program that prints the multiplication table is given using nested

while loops. Fill-in the missing portions.

public class Multiplication_Table

{

// Constructor for objects of class Multiplication_Table

public Multiplication_Table (){ }

public static void main(String [] args)

{

int Row=_______; //indicate the initial value

while(Row<____){

Row++;

int Column=_____; //indicate the initial

value

while(Column<_____){

Column++;

System.out.print(Row*Column+"\t");

}

System.out.println();

}

}

}

Page 164: JAVA Object Oriented Programming (OOP)

Self-check

II. A Java program that prints the given output using nested do-while loops.

Fill-in the missing portions.

Page 165: JAVA Object Oriented Programming (OOP)

Self-check

public class Table{

// Constructor for objects of class Table

public Table(){ }

public static void main(String [] args) {

int Row=_______; //indicate the initial value

do{

Row++;

int Column=_____; //indicate the

initial value

do{

Column++;

if(_______){

continue;

}

System.out.print(Row*Column+"\t");

} while(Column<_____);

System.out.println();

} while(Row<____);

}

}

Page 166: JAVA Object Oriented Programming (OOP)

LESSON 7

Exceptions

Page 167: JAVA Object Oriented Programming (OOP)

Exceptions

Unexpected errors or events within our program

Page 168: JAVA Object Oriented Programming (OOP)

import java.io.*; public class Exception1{ public static void main(String[] args){ BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));

int x=0; String Str_1; System.out.print(“Enter an integer value:”); try{ Str_1 = dataIn.readLine(); x = Integer.parseInt(Str_1); } catch(Exception e){ System.out.println(“Error reported”); } x = (int)x/2; System.out.println(“x= ”+x); } }

Page 169: JAVA Object Oriented Programming (OOP)

import java.io.*; public class Exception2{

public static void main(String[] args){ BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));

int x=0, y=0; String Str_1, Str_2;

System.out.print(“Enter an integer value: ”); try{

Str_1 = dataIn.readLine();

System.out.print(“Enter another value: ”); Str_2 = dataIn.readLine();

x = Integer.parseInt(Str_1); y = Integer.parseInt(Str_2);

x = x/y; }

Page 170: JAVA Object Oriented Programming (OOP)

catch(ArithmeticException e){

System.out.println(“Divide by zero error.”);

}

catch(NumberFormatException e){

System.out.println(“Invalid number entered.”);

}

catch(Exception e){

System.out.println(“Invalid number entered.”);

}

finally{

System.out.println(“x= ”+x);

}

}

}

Page 171: JAVA Object Oriented Programming (OOP)

Exceptions

Exception classes

try

catch

finally

Page 172: JAVA Object Oriented Programming (OOP)

Exception classes

Help handle errors

Included within Java installation package

Page 173: JAVA Object Oriented Programming (OOP)

try-catch

At least one catch for every try

catch statements should catch different exceptions

try-catch order

catch immediately after a try

Page 174: JAVA Object Oriented Programming (OOP)

End of Lesson

LABORATORY EXERCISE

Page 175: JAVA Object Oriented Programming (OOP)

Classes

Lesson 8

Page 176: JAVA Object Oriented Programming (OOP)

General Topics

• Classes

• Inheritance

• Interface

• Objects

• Constructors

• Overloading Methods

• Overriding Methods

Page 177: JAVA Object Oriented Programming (OOP)

Classes

Page 178: JAVA Object Oriented Programming (OOP)

Accessibility

Page 179: JAVA Object Oriented Programming (OOP)

Syntax

<modifier> class <class_name>

[extends <superclass>] {

<declaration/s>

}

Example:

public class Student extends Person

Page 180: JAVA Object Oriented Programming (OOP)

Syntax

<modifier> class <name>

[extends <superclass>]

[implements <interfaces>] {

<declaration/s>

}

Example:

public class Teacher

extends Person

implements Employee

Page 181: JAVA Object Oriented Programming (OOP)

Syntax

<modifiers> class

<class_name>{

[<attribute_declarations>]

[<constructor_declarations>]

[<method_declarations>]

}

Page 182: JAVA Object Oriented Programming (OOP)

The Person program

package Lesson8;

public class Person extends Object

{

private String name;

private int age;

private Date birthday;

// class constructor

public Person() {

name = "secret";

age = 0;

birthday = new Date(7,7);

}

//overloaded constructor

public Person(String name, int age, Date birthday){

this.name = name;

this.age = age;

this.birthday = birthday;

}

Page 183: JAVA Object Oriented Programming (OOP)

The Person program (continued) //accessor methods - setters

public void setName(String X){

name= X;

}

public void setAge(int X) {

age=X;

}

public void setBirthday(Date X){

birthday=X;

}

public void setDetails(String X, int Y, Date Z){

name= X;

age=Y;

birthday = Z;

}

//accessor methods - getters

public String getName(){

return name;

}

Page 184: JAVA Object Oriented Programming (OOP)

The Person program (continued)

public int getAge(){

return age;

}

//this method greets you on your bday and increments age

public void happyBirthday(Date date){

System.out.println("Today is

"+date.month+"/"+date.month+"/2005.");

if (birthday.day == date.day && birthday.month == date.month){

System.out.println("Happy birthday, "+ this.name + ".");

age++;

System.out.println("You are now "+age+" years old.");

}

else {

System.out.println( "It's not " + this.name + "'s birthday today.");

}

}

}

Page 185: JAVA Object Oriented Programming (OOP)

The Someone program package Lesson8;

public class Someone

{

public static void main (String args[]){

Date dateToday = new Date(3,7);

Date bdayLesley= new Date(23,10);

Person Angelina=new Person();

Student Stevenson = new Student("Stevenson",20,new Date(22,10),4);

Student Allan =new Student(3);

Teacher Lesley= new Teacher("Lesley",28,bdayLesley,14000.25);

Angelina.setName("Angel");

Angelina.setAge(69);

Angelina.setBirthday(dateToday);

System.out.println("Greetings, "+Angelina.getName());

Angelina.happyBirthday(dateToday);

System.out.println();

Allan.setDetails("Allan",20,new Date(3,5));

}

Page 186: JAVA Object Oriented Programming (OOP)

The Date program

package Lesson8;

public class Date

{ // instance variables - replace the example below with your own

int day, month, year;

//Constructor for objects of class Date with no parameters

public Date()

{ // initialize instance variables

day = 1;

month=1;

year=2005;

}

Page 187: JAVA Object Oriented Programming (OOP)

The Date program (continued) //Constructor for objects of class Date with day & month as parameters

public Date(int this_Day,int this_Month)

{ // initialise instance variables

if((this_Month>=1)&&(this_Month<=12)){

month=this_Month;

switch(month){

case 1: case 3: case 5: case 7: case 8: case 10:

case 12:if((this_Day>=1)&&(this_Day<=31)){day = this_Day;}

else {day=1;}

break;

case 4: case 6: case 9:

case 11:if((this_Day>=1)&&(this_Day<=30)){ day = this_Day;}

else {day=1;}

break;

case 2:if((this_Day>=1)&&(this_Day<=28)){day = this_Day;}

else {day=1;}

break;

}

} else { month=1; }

year=2005; }

Page 188: JAVA Object Oriented Programming (OOP)

The Date program (continued)

public void print_Date(){//prints the date mm/dd/yyyy

System.out.println(month+"/"+day+"/"+year); }

}

Page 189: JAVA Object Oriented Programming (OOP)

The Student program package Lesson8;

public class Student extends Person

{

private int yearlvl;

//constructors

public Student(){

super();

yearlvl=1;

}

public Student(int yearlvl) {

super();

if((yearlvl<=4)&&(yearlvl>=1)){

this.yearlvl=yearlvl;

} else {

this.yearlvl=1;

}

}

Page 190: JAVA Object Oriented Programming (OOP)

The Student program (continued)

public Student(String name, int age, Date birthday, int

yearlvl){

super(name, age, birthday);

if((yearlvl<=4)&&(yearlvl>=1)){

this.yearlvl=yearlvl;

} else {

this.yearlvl=1;

}

System.out.print("Hi, "+name+". ");

System.out.print(“Your birthday this year is on ");

birthday.print_Date();

System.out.println("You are "+age+" years old.");

System.out.println();

}

Page 191: JAVA Object Oriented Programming (OOP)

The Student program (continued)

//accessor methods

public void setYearlvl(int yearlvl){

if((yearlvl<=4)&&(yearlvl>=1)){

this.yearlvl=yearlvl;

} else {

this.yearlvl=1;

}

}

public void setDetails(String name, int age, Date birthday){

super.setDetails(name,age,birthday);

System.out.print("Hello, "+name+". ");

System.out.print("Your birthday this year is on ");

birthday.print_Date();

System.out.println("You are "+age+" years old.");

System.out.println();

}

Page 192: JAVA Object Oriented Programming (OOP)

The Student program (continued)

public void setDetails(String name, int age, Date birthday, int

yearlvl){

super.setDetails(name,age,birthday);

if((yearlvl<=4)&&(yearlvl>=1)){

this.yearlvl=yearlvl;

} else {

this.yearlvl=1;

}

System.out.print("Hello, "+name+". ");

System.out.print(" Your birthday this year is on ");

birthday.print_Date();

System.out.println("You are "+age+" years old.");

System.out.println();

}

public int getYearlvl(){

return yearlvl;

}

}

Page 193: JAVA Object Oriented Programming (OOP)

The Teacher program

package Lesson8;

public class Teacher extends Person implements Employee

{

private double salary;

// constructors

public Teacher(){

super();

salary = 4000;

}

public Teacher(double salary) {

super();

this.salary = salary;

}

Page 194: JAVA Object Oriented Programming (OOP)

The Teacher program (continued)

public Teacher(String name, int age, Date birthday, double salary){

super(name, age, birthday);

this.salary= salary;

System.out.println("Good morning, "+name+". Your salary is "+salary+".");

System.out.println(" Your birthday this year is on ");

birthday.print_Date();

System.out.println("You are "+age+" years old.");

System.out.println();

}

//accessor methods

public void setSalary(double salary) {

this.salary = salary;

}

Page 195: JAVA Object Oriented Programming (OOP)

The Teacher program (continued)

public void setDetails(String name, int age, Date birthday, double salary){

super.setDetails(name, age, birthday);

this.salary = salary;

System.out.println("Good afternoon, "+name+". Your salary is "+salary+".");

System.out.println(" Your birthday this year is on ");

birthday.print_Date();

System.out.println("You are now "+age+" years old.");

System.out.println();

}

public double getSalary(){

return salary;

}

}

Page 196: JAVA Object Oriented Programming (OOP)

The Employee program

package Lesson8;

public interface Employee

{

public void setSalary(double salary);

public void setDetails(String name, int age, Date birthday, double salary);

public double getSalary();

}

Page 197: JAVA Object Oriented Programming (OOP)

Word Bank

Superclass

Subclass

Inheritance

Interface

Method

Signature

Overloading Constructor

Overriding Method

Page 198: JAVA Object Oriented Programming (OOP)

End of Lesson 8

SUMMARY

Page 199: JAVA Object Oriented Programming (OOP)

Syntax Review

The constructor of the superclass that has no parameters can be called this way:

super ( );

The constructor of the superclass that has parameters can be called this way:

super (<argument list> );

The syntax to call a method of the superclass is:

super.<method_name> (<argument list> );

Page 200: JAVA Object Oriented Programming (OOP)

Syntax Review

SYNTAX EXAMPLE/S

<modifier> class <class_name>

[extends <superclass>]

public class Student

extends Person

<modifier> class <name>

[extends <superclass>]

[implements <interfaces>]

public class Teacher

extends Person

implements Employee

Page 201: JAVA Object Oriented Programming (OOP)

Syntax Review (continued)

SYNTAX EXAMPLE/S

<modifiers> class <class_name>{

[<attribute_declarations>]

[<constructor_declarations>]

[<method_declarations>]

}

public class Person extends Object{

//attribute declarations

private String name;

private int age;

private Date birthday;

// class constructor

public Person() {

name = "secret";

age = 0;

birthday = new Date(7,7);

}

//accessor methods - setters

public void setName(String X){

name= X;

}

}

Page 202: JAVA Object Oriented Programming (OOP)

Self-check 1

A. Supply all the method signatures of Student to the

interface Learner, except for the constructors.

public interface Learner{

}

B. Create a constructor for Person with name and

age as parameters. Make sure that you assign

values to all the attributes of the class Person.

I. Use the applications given on our lesson for exercise A and B.

Page 203: JAVA Object Oriented Programming (OOP)

Self-check 2

II. Use this diagram in answering the next exercises.

Page 204: JAVA Object Oriented Programming (OOP)

Self-check

public interface FlyingObject{

}

A. Supply all the method signatures

of Plane to the interface

FlyingObject, except for the

constructors.

Page 205: JAVA Object Oriented Programming (OOP)

End of Lesson

LABORATORY EXERCISE

Page 206: JAVA Object Oriented Programming (OOP)

Arrays

Lesson 9

Page 207: JAVA Object Oriented Programming (OOP)

General Topics

• Single-dimensional arrays

• Array of Objects

• Multidimensional arrays

Page 208: JAVA Object Oriented Programming (OOP)

The Single_Array program

public class Single_Array

{

//Constructor for objects of class Single_Array

public Single_Array() { }

public static void main(String[] args){

int [] GradeLevel=new int [6];

int [] YearLevel={1,2,3,4};

System.out.print("The contents of the YearLevel array: ");

print_Single_Array(YearLevel);

System.out.print("The contents of the GradeLevel array: ");

print_Single_Array(GradeLevel);

System.arraycopy(YearLevel,0,GradeLevel,1,YearLevel.length);

System.out.print("The contents of the GradeLevel array after

copying: ");

print_Single_Array(GradeLevel);

for(int Index=1;Index<GradeLevel.length;Index++){

GradeLevel[Index]=Index*2;

}

System.out.print("The contents of the GradeLevel array after

assigning values: ");

print_Single_Array(GradeLevel);

}

Page 209: JAVA Object Oriented Programming (OOP)

public static void print_Single_Array(int[] Array){

for(int subscript=0;subscript<Array.length;subscript++){

System.out.print(Array[subscript]); //prints the array

element

if((subscript+1)<Array.length){ //prints a comma in-

between elements

System.out.print(", ");

}

}

System.out.println();

}

}

The Single_Array program (continued) and output

Page 210: JAVA Object Oriented Programming (OOP)

Single Dimensional Array

SYNTAX:

<data_type> [ ] <array_identifier> = new <data_type>[<no_of_elements>];

<data_type> <array_identifier> [ ] = new <data_type>[<no_of_elements>];

[0] [1] [2] [3]

YearLevel 1 2 3 4

First Element Last Element

Example:

Page 211: JAVA Object Oriented Programming (OOP)

System.arraycopy

SYNTAX:

System.arraycopy(<Array_source>,

<Array_sourcePosition>,

<Array_destination>,

<Array_destinationPosition>,

<numberOfElements>);

Page 212: JAVA Object Oriented Programming (OOP)

The Date program

package Group.Lesson9.Array_Object;

/**

* @author Lesley Abe

* @version 1

*/

public class Date

{ // instance variables - replace the example below with your own

private int day, month, year;

//Constructor for objects of class Date with no parameters

public Date()

{ // initialize instance variables

day = 1;

month=1;

year=2005;

}

//Constructor for objects of class Date with day & month as parameters

Page 213: JAVA Object Oriented Programming (OOP)

The Date program (continued) public Date(int this_Day,int this_Month)

{ // initialise instance variables

if((this_Month>=1)&&(this_Month<=12)){

month=this_Month;

switch(month){

case 1: case 3: case 5: case 7: case 8: case 10:

case 12:if((this_Day>=1)&&(this_Day<=31)){day = this_Day;}

else {day=1;}

break;

case 4: case 6: case 9:

case 11:if((this_Day>=1)&&(this_Day<=30)){ day = this_Day;}

else {day=1;}

break;

case 2:if((this_Day>=1)&&(this_Day<=28)){day = this_Day;}

else {day=1;}

break;

}

} else { month=1; }

year=2005;

}

Page 214: JAVA Object Oriented Programming (OOP)

The Date program (continued)

public static void main(String[] args)

{

Date[] Birthdays={ new Date(23,10), new Date(22,3) };

Date[] Holidays=new Date[4];

Holidays[0]=new Date(25,12);

Holidays[1]=new Date(1,5);

Holidays[2]=new Date(1,11);

Holidays[3]=new Date(1,1);

}

}

Page 215: JAVA Object Oriented Programming (OOP)

The Two_Dimensional_Array program

public class Two_Dimensional_Array

{ //Constructor for objects of class Two_Dimensional_Array

public Two_Dimensional_Array() { }

public static void main(String[] args)

{

final int YearLevel=4; // this is a constant

final int Section=2; //this is a constant

String TeacherName [] [] = new String [YearLevel] [Section];

String Student [] [] = new String [YearLevel] [ ]; //non-rectangular array

//String Student [] [] = new String [] [YearLevel]; //this is illegal!

//assign teachers to all the classes in high school

TeacherName [0] [0] = "Lesley Abe";

TeacherName [0] [1] = "Arturo Jacinto Jr.";

TeacherName [1] [0] = "Olive Hernandez";

TeacherName [1] [1] = "Alvin Ramirez";

TeacherName [2] [0] = "Christopher Ramos";

TeacherName [2] [1] = "Gabriela Alejandra Dans-Lee";

TeacherName [3] [0] = "Joyce Cayamanda";

TeacherName [3] [1] = "Ana Lisa Galinato";

Page 216: JAVA Object Oriented Programming (OOP)

The Two_Dimensional_Array program (continued)

//indicate how many student assistants per year level

Student [0]=new String [2];

Student [1]=new String [2];

Student [2]=new String [1];

Student [3]=new String [1];

//assign student assistants per year level

Student [0] [0]= "Stevenson Lee";

Student [0] [1]= "Brian Loya";

Student [1] [0]= "Joselino Luna";

Student [1] [1]= "Allan Valdez";

Student [2] [0]= "John Dionisio";

Student [3] [0]= "Geoffrey Chua";

}

}

Page 217: JAVA Object Oriented Programming (OOP)

The Two_Dimensional_Array program (continued)

public static void main(String[] args)

{

Date[] Birthdays={ new Date(23,10), new

Date(22,3) };

Date[] Holidays=new Date[4];

Holidays[0]=new Date(25,12);

Holidays[1]=new Date(1,5);

Holidays[2]=new Date(1,11);

Holidays[3]=new Date(1,1);

}

}

Page 218: JAVA Object Oriented Programming (OOP)

Multi-Dimensional Array

SYNTAX:

<data_type> [ ][ ] <array_identifier> =

new <data_type>[<size1>][<size2>];

<data_type> <array_identifier> [ ] [ ]

= new

<data_type>[<size1>][<size2>];

Page 219: JAVA Object Oriented Programming (OOP)

Word Bank

Page 220: JAVA Object Oriented Programming (OOP)

End of Lesson 9

SUMMARY

Page 221: JAVA Object Oriented Programming (OOP)

Syntax Review

SYNTAX EXAMPLE/S

<data_type> [ ] <array_identifier> = new <data_type>[<no_of_elements>];

int [ ] GradeLevel=new int [6];

<data_type> < array_identifier> [ ] = new <data_type>[<no_of_elements>];

int GradeLevel [ ] =new int [6];

<data_type> [ ] < array_identifier> = {< elements separated by commas>};

int [ ] YearLevel={1,2,3,4};

< array_identifier> [<Index>] = <value>; GradeLevel[Index]=Index*2;

<data_type> [ ][ ] <array_identifier> = new <data_type>[<size1>][<size2>];

String [ ] [ ] TeacherName = new String [YearLevel] [ ];

<data_type> <array_identifier> [ ] [ ] = new <data_type>[<size1>][<size2>];

String TeacherName [ ] [ ] = new String [YearLevel] [Section];

< array_identifier> [<Index1>] [<Index2>] = <value>;

TeacherName [0] [0] = "Lesley Abe";

System.arraycopy(<Array_source>, <Array_sourcePosition>, <Array_destination>, <Array_destinationPosition>, <numberOfElements>);

System.arraycopy(YearLevel,0,GradeLevel,1,YearLevel.length);

Page 222: JAVA Object Oriented Programming (OOP)

Self-check 1

public class Array1

{

//Constructor for objects of class Array1

public Array1() { }

public static void main(String[] args){

String [] __________={“Math”,”Science”,_________ };

String [] MyTeachers={______________ };

System.out.print("Here are my subjects: ");

print_Array1(MySubjects);

System.out.print("My favorite subject is: "+________);

System.out.print("My favorite teacher is: "+________);

}

//method that prints the contents of an array of String

public static void __________(_______[] Array){

for(intsubscript=0;subscript<Array.length;subscript++){

//prints the array element

System.out.print(__________); if(____________________){

//prints a comma in-between elements

System.out.print(", ");

}

}

System.out.println();

}

}

Page 223: JAVA Object Oriented Programming (OOP)

Self-check 2

public class Array2

{

// Constructor for objects of class Array2

public Array2 (){ }

public static void main(String[] args)

{

final int Row=5;

final int Column=5;

int [] [] Table=new int [Row][Column];

for(int Row_Ctr=0;Row_Ctr<Row;Row_Ctr++){

for(int Col_Ctr=0;Col_Ctr<Column;Col_Ctr++){

Table[Row_Ctr][Col_Ctr]= Row_Ctr+Col_Ctr;

}

}

}

}

Page 224: JAVA Object Oriented Programming (OOP)

Self-check 2 (continued)

What are the values of the following:

Table[0][0]= ___________

Table[2][1]= ___________

Table[1][3]= ___________

Table[4][4]= ___________

Table[3][2]= ___________

Page 225: JAVA Object Oriented Programming (OOP)

End of Lesson

LABORATORY EXERCISE

Page 226: JAVA Object Oriented Programming (OOP)

GUI

Lesson 10

Page 227: JAVA Object Oriented Programming (OOP)

General Topics

• Abstract Window Toolkit (AWT)

- java.awt package

- components

• Containers

• Layout Managers

Page 228: JAVA Object Oriented Programming (OOP)

Layout

SYNTAX:

FlowLayout( )

FlowLayout(int align)

FlowLayout(int align, int hgap, int

vgap)

Examples:

setLayout(FlowLayout());

setLayout(FlowLayout(FlowLayout.LEF

T));

setLayout(FlowLayout(FlowLayout.RIG

HT,23,10));

Page 229: JAVA Object Oriented Programming (OOP)

Layout

SYNTAX:

GridLayout( );

GridLayout(int rows, int cols);

GridLayout(int rows, int cols, int hgap, int vgap);

Examples:

setLayout(GridLayout());

SouthPanel.setLayout(new GridLayout(4,3));

Page 230: JAVA Object Oriented Programming (OOP)

Layout

SYNTAX:

BorderLayout( );

Examples:

setLayout(new BorderLayout());

Page 231: JAVA Object Oriented Programming (OOP)

Sample GUI Project

Page 232: JAVA Object Oriented Programming (OOP)

Project Output

Page 233: JAVA Object Oriented Programming (OOP)

The DrawTest program package Group.Lesson10;

import java.awt.event.*;

import java.awt.*;

public class DrawTest {

DrawPanel panel;

DrawControls controls;

public static void main(String args[]) {

Frame Shapes = new Frame("Basic Shapes");

DrawPanel panel = new DrawPanel();

DrawControls controls = new DrawControls(panel);

Shapes.add("Center", panel);

Shapes.add("West",controls);

Shapes.setSize(400,300);

Shapes.setVisible(true);

Shapes.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

);

}

}

Page 234: JAVA Object Oriented Programming (OOP)

The DrawPanel program

package Group.Lesson10;

import java.awt.event.*;

import java.awt.*;

public class DrawPanel extends Panel {

public static final int NONE = 0;

public static final int RECTANGLE = 1;

public static final int CIRCLE = 2;

public static final int SQUARE = 3;

public static final int TRIANGLE = 4;

int mode = NONE;

public DrawPanel() {

setBackground(Color.white);

}

Page 235: JAVA Object Oriented Programming (OOP)

The DrawPanel program (continued)

public void setDrawMode(int mode) {

switch (mode) {

case NONE:

case RECTANGLE:

this.mode = mode;

case SQUARE:

this.mode = mode;

break;

case CIRCLE:

this.mode = mode;

break;

case TRIANGLE:

this.mode = mode;

break;

}

repaint();

}

Page 236: JAVA Object Oriented Programming (OOP)

The DrawPanel program (continued)

public void paint(Graphics g) {

if (mode == RECTANGLE) {

g.fillRect(100, 60, 100,150);

}

if (mode == CIRCLE) {

g.fillOval(100, 90, 100, 100);

}

if (mode == SQUARE) {

g.fillRect(100, 90, 100, 100);

}

if (mode == TRIANGLE) {

int xpoints[] = {90, 150, 210};

int ypoints[] = {90, 200, 90};

int points = 3;

g.fillPolygon(xpoints, ypoints, points);

}

}

}

Page 237: JAVA Object Oriented Programming (OOP)

Methods Used

fillRect(int x, int y, int width, int height)

fillOval(int x, int y, int width, int height)

fillPolygon(Polygon p)

Page 238: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

package Group.Lesson10;

import java.awt.event.*;

import java.awt.*;

class DrawControls extends Panel implements ItemListener {

DrawPanel target;

Panel NorthPanel = new Panel();

Panel CenterPanel = new Panel();

Panel SouthPanel = new Panel();

private static int Shape = 0;

private static Color targetColor = Color.red;

public DrawControls(DrawPanel target) {

this.target = target;

setLayout(new BorderLayout());

setBackground(Color.lightGray);

target.setForeground(Color.red);

NorthPanel.setBackground(Color.lightGray );

NorthPanel.setLayout(new GridLayout(6,1));

Page 239: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

add(NorthPanel, BorderLayout.NORTH);

CheckboxGroup group = new CheckboxGroup();

Checkbox b;

NorthPanel.add(new Label(" Shapes "));

NorthPanel.add(b = new Checkbox("Rectangle", group, false));

b.addItemListener(this);

NorthPanel.add(b = new Checkbox("Circle", group, false));

b.addItemListener(this);

NorthPanel.add(b = new Checkbox("Square", group, false));

b.addItemListener(this);

NorthPanel.add(b = new Checkbox("Triangle", group, false));

b.addItemListener(this);

Page 240: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

CenterPanel.setLayout(new GridLayout(4,1));

add(CenterPanel,BorderLayout.CENTER);

CenterPanel.add(new Label(" Colors "));

Choice colors = new Choice();

colors.addItemListener(this);

colors.addItem("red");

colors.addItem("green");

colors.addItem("blue");

colors.addItem("pink");

colors.addItem("orange");

colors.addItem("black");

colors.setBackground(Color.white);

CenterPanel.add(colors);

Page 241: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

SouthPanel.setLayout(new GridLayout(4,3));

add(SouthPanel, BorderLayout.SOUTH);

Button CLEAR = new Button("CLEAR");

Button DRAW = new Button("DRAW");

CLEAR.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent event){

onCommand(1);

}

}

);

DRAW.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent event){

onCommand(2);

}

}

);

SouthPanel.add(CLEAR);

SouthPanel.add(DRAW);

}

Page 242: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

private void onCommand(int btnNUMBER) {

switch(btnNUMBER){

case 1:

target.setForeground(Color.white);

target.setDrawMode(0);

break;

case 2:

target.setForeground(targetColor);

target.setDrawMode(Shape);

break;

}

}

Page 243: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

public void itemStateChanged(ItemEvent e) {

if (e.getSource() instanceof Checkbox) {

Checkbox b = new Checkbox();

b = (Checkbox)e.getSource();

if ( b.getLabel().equals("Rectangle") ){

Shape = 1;

} else if ( b.getLabel().equals("Circle") ){

Shape = 2;

} else if ( b.getLabel().equals("Square") ){

Shape = 3;

} else if ( b.getLabel().equals("Triangle") ){

Shape = 4;

}

}

Page 244: JAVA Object Oriented Programming (OOP)

The DrawControl program (continued)

if (e.getSource() instanceof Choice) {

String choice = (String) e.getItem();

if (choice.equals("red")) {

targetColor=Color.red;

} else if (choice.equals("green")) {

targetColor=Color.green;

} else if (choice.equals("blue")) {

targetColor=Color.blue;

} else if (choice.equals("pink")) {

targetColor=Color.pink;

} else if (choice.equals("orange")) {

targetColor=Color.orange;

} else if (choice.equals("black")) {

targetColor=Color.black;

}

}

}

}

Page 245: JAVA Object Oriented Programming (OOP)

Some Features of AWT

• Frames

• Checkbox

• Checkbox Group: Radio Button

• Choice

• Button

Page 246: JAVA Object Oriented Programming (OOP)

Word Bank

• Abstract Class

• Component

• Frame

• Dialog

• Panel

• Layout Manager

Page 247: JAVA Object Oriented Programming (OOP)

End of Lesson 10

SUMMARY

Page 248: JAVA Object Oriented Programming (OOP)

Self-check package Lesson10;

import java.awt.event.*;

import java.awt.*;

public class MyPanel

{

public static void main(String args[]) {

Panel WestPanel = new ________; // initialize the panels

Panel CenterPanel = new ________;

Panel EastPanel = new ________;

Panel MainPanel = new ________;

Frame f = new Frame();

WestPanel.setLayout(new ________); // set panel layout

________.____(new Label(" 1 ")); // add item to west panel

________.____(new Label(" 2 "));

________.____(new Label(" 3 "));

________.____(new Label(" 4 "));

________.____(new Label(" 5 "));

________.____(new Label(" 6 "));

CenterPanel.add(new Label(" 1 "));

CenterPanel.add(new Label(" 2 "));

CenterPanel.add(new Label(" 3 "));

CenterPanel.add(new Label(" 4 "));

CenterPanel.add(new Label(" 5 "));

CenterPanel.add(new Label(" 6 "));

f.add(WestPanel,___________.______);

f.add(CenterPanel,BorderLayout.CENTER);

f.add(new Label("East"),BorderLayout.EAST);

f.add(new Label("North"),BorderLayout.NORTH);

f.add(new Label("South"),BorderLayout.SOUTH);

f.________(250,250);//set the window size

f.________(true); //allows the panel to be visible

f._______________(new _____________(){// listen for an event in the window

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}

);

}

}

Page 249: JAVA Object Oriented Programming (OOP)

End of Lesson 10

LABORATORY EXERCISE