Java
Java
Introduction
to
Object-Oriented
Programming
SYNTAX:
javac <filename>.java
EXAMPLE:
javac Welcome.java
Java is Portable
SYNTAX:
java <filename>
EXAMPLE:
java Welcome
Java is Portable
Java code
(*.java)
Java Compiler
bytecodes
(*.class)
Java Virtual
Machine
MAC PC UNIX
IDE: BlueJ
Download BlueJ:
http://www.bluej.org/download/download.html
Minimum Requirements:
Pentium II processor or its
equivalent
64Mb main memory
Recommended:
400MHz Pentium III processor
or above and a 128Mb main
memory
Launch BlueJ
/*
This class contains the main() method
*/
package Group.Student;
compile-time errors
runtime errors
Compile Time Error
Compile Time Error
Compile Time Error
Run-Time Error
Run-Time Error
Word Bank
class
object
interface
message
method
inheritance
encapsulation
compile-time errors
runtime errors
End of Lesson 1
Summary…
End of Lesson 2
Laboratory Exercise
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 object name here
Class Human Man
//write the data of the class here //write the data of the object
Name here
Age Name: Jonathan
Birthday Age: 29
Birthday: March 4, 1975
//write the methods of the class here //write the methods of the object
Grow here
Give_Name Grow
Get_Name Give_Name
Get_Age Get_Name
Get_Age
//write the class name here //write the object name here
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
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{
Explaining Welcome.java
Line 3 shows the start of the method printWelcome().
Syntax :
<modifier> <return_type> <method_name>
(<argument_list>) { <statements>) }
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
Explaining Main.java
/*
This class contains the main() method
*/
/*
This class contains the main() method
*/
Explaining Main.java
Line 5
Declares the Main class. the brace after the class
indicates the start of the class.
Summary…
Syntax Review
SYNTAX EXAMPLE/S
package package Group.Student;
<top_package_name>[.<subpackage_name>]*;
SYNTAX EXAMPLE/S
System.out.println(String); System.out.println("Welcome to Java!");
/* /*
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.
*/
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.
First.java //filename
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 }
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.
Name.java //filename
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 }
End of Lesson 2
Laboratory Exercise
Lesson 3
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;
Variables and Literals
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.
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);
}
}
End of Lesson 3
Summary…
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! „);
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
}
}
End of Lesson 10
LABORATORY EXERCISE
Lesson 4
Java Operators
Operators
• Unary
• Binary
• Ternary
• Shorthand
Arithmetic Operator
Operators
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulo
++ Increment
-- Decrement
The Arithmetic_operators
package program
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;
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);
}
}
The Arithmetic_operators program output
package Group.Lesson4.Relational;
Operators Description
! NOT
|| OR
&& AND
| short-circuit OR
Operand1 RESULT
! true false
! false true
Logical Operator- Truth Tables
System.out.println("x=6 y=7");
Logical_OR= (x<y)||(x++==y);
System.out.println("(x<y)| (x++==y) "+Logical_OR);
The Logical_operators program (Continued)
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);
Example:
4=0000000000000100
-4=1111111111111100
Bitwise Operator
Operators Description
~ Complement
& AND
| OR
^ XOR (Exclusive OR)
<< Left Shift
>> Right Shift
>>> Unsigned Right Shift
Bitwise Operator - Truth Tables
Operand1 RESULT
~ 1 0
~ 0 1
Bitwise Operator - Truth Tables
1 | 1 1
1 | 0 1
0 | 1 1
0 | 0 0
Bitwise Operator - Truth Tables
1 ^ 1 0
1 ^ 0 1
0 ^ 1 1
0 ^ 0 0
Bitwise Operator - Truth Tables
1 & 1 1
1 & 0 0
0 & 1 0
0 & 0 0
Bitwise Operator – Examples
x= 0000000000010000
~x= 1111111111101111 x= 0000000000010000
Therefore, ~x=-17. Left_shift=
0000000010000000
x= 0000000000010000 Left_shift = 128
y= 0000000000011011
Or= 0000000000011011 z= 1111111111111100
Right_shift= 1111111111111111
x= 0000000000010000 Right_shift= -1
y= 0000000000011011
And= 0000000000010000 Negative=1111111111111100
Negative=0011111111111111
x= 0000000000010000 Negative= 1073741823
y= 0000000000011011
Xor= 0000000000001011
The Bitwise_operators program
package Group.Lesson4.Bitwise;
//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 output
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
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");
The Shorthand_operators program (continued)
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 output
Operator Precedence
Word Bank
expression
boolean expressions
truth value
truth table
shorthand operators
bit
sign bit
End of Lesson 4
Summary…
Self-check
1.x=a++;
2.y=--b;
3.!((++a)!=4)&&(--b==4))
4.(c++!=b)|(a++==b)
5.t=a+b*c/3-2;
Lesson 5
Decisions
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.
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.
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.");
}
}
• }
Wrapper Class
Syntax:
if (<boolean condition is true>)
{
<statement/s>
}
Example:
if(x!=0){
x=(int)x/2;
}
The If_Statement program
package Lesson5.If;
import java.io.*;
public class If_Statement
{
//Constructor for objects of class If_Statement
public If_Statement(){ }
int x=0;
String Str_1;
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>
}
The IfElse program
package Lesson5.If_Else;
import java.io.*;
Syntax:
if (<boolean condition is true>){
<statement/s>
}
else if (<boolean condition is true>) {
<statement/s>
}
else
{
<statement/s>
}
nested-if Statement
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);
}
The NestedIf program and output
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);
}
}
}
switch Statement
Syntax:
switch(<expression>) {
case <constant1>:
<statements>
break;
case <constant2>:
<statements>
break;
:
:
default:
<statements>
break;
}
switch Statement
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;
}
The Switch_case program
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 (continued) and output
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; }}}
Word Bank
Wrapper class
End of Lesson 5
Summary…
End of Lesson 10
LABORATORY EXERCISE
Syntax Review
SYNTAX EXAMPLE/S
if (<boolean condition is if(x!=0){
true>) { x=(int)x/2;
<statement/s> }
}
if (<boolean condition is if (A%2==0) {
true>){ System.out.println (A+" is EVEN");
<statement/s> }
} else
else {
{ System.out.println (A+" is ODD ");
<statement/s> }
}
SYNTAX EXAMPLE/S
Syntax Review
if (<boolean condition is true>){ if (number1>number2) {
<statement/s> System.out.println (number1+" is greater than "+number2);
} } else if (number1<number2){
else if (<boolean condition is true>) { System.out.println (number1+" is less than "+number2);
<statement/s> } else {//number1==number2
} System.out.println (number1+" is equal to "+number2);
else{ }
<statement/s>
}
switch(<expression>) { switch(Number){
case case 1:System.out.println("One ");
<constant1>:<statements> break;
break; case 2:System.out.println("Two");
case break;
<constant2>:<statements> case 3:System.out.println("Three");
break; break;
: default:System.out.println("Sorry!");
: break;
default:
}
<statements>
break;
}
Self-check
Loops
General Topics
• for structure
• while structure
• do-while structure
loop
Syntax:
for (<initialization>;<condition>;<increment>)
{
<statement/s>
}
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);
}
}
}
while loop
Example:
int Ctr=1;
while(Ctr<=5){
System.out.println(Ctr);
Ctr++;
}
Syntax:
while (boolean condition is true)
{
<statement/s>
}
Sample Code and output
Syntax:
do {
<statement/s>
} while (<boolean condition is true>);
Sample Code
Summary…
Self-check
LABORATORY EXERCISE
More Loops
General Topics
• Nested loops
• continue
• break
Nested_For loops
– how it behaves
Nested_For loops – how it behaves
Nested_For loops – Output
Continue_Loop
Nested loops
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();
}
}
}
Self-check
II. A Java program that prints the given output using nested do-while loops.
Fill-in the missing portions.
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<____);
}
}
LESSON 7
Exceptions
Exceptions
Exception classes
try
catch
finally
Exception classes
LABORATORY EXERCISE
Lesson 8
Classes
General Topics
• Classes
• Inheritance
• Interface
• Objects
• Constructors
• Overloading Methods
• Overriding Methods
Classes
Accessibility
Syntax
Example:
<modifiers> class
<class_name>{
[<attribute_declarations>]
[<constructor_declarations>]
[<method_declarations>]
}
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;
}
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;
}
The Person program (continued)
public int getAge(){
return age;
}
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));
}
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;
}
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; }
The Date program (continued)
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;
}
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;
}
}
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();
}
Word Bank
Superclass
Subclass
Inheritance
Interface
Method
Signature
Overloading Constructor
Overriding Method
End of Lesson 8
SUMMARY
Syntax Review
SYNTAX EXAMPLE/S
<modifier> class <class_name> public class Student
[extends <superclass>]
extends Person
SYNTAX EXAMPLE/S
}
End of Lesson
LABORATORY EXERCISE
Lesson 9
Arrays
General Topics
• Single-dimensional arrays
• Array of Objects
• Multidimensional arrays
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);
}
The Single_Array program (continued) and
output
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();
}
}
Single Dimensional Array
SYNTAX:
Example:
First Element Last Element
YearLevel 1 2 3 4
System.arraycopy
SYNTAX:
System.arraycopy(<Array_source>,
<Array_sourcePosition>,
<Array_destination>,
<Array_destinationPosition>,
<numberOfElements>);
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
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;
}
The Date program (continued)
<data_type> [ ][ ] <array_identifier> =
new <data_type>[<size1>][<size2>];
<data_type> <array_identifier> [ ] [ ]
= new
<data_type>[<size1>][<size2>];
Word Bank
End of Lesson 9
SUMMARY
Syntax Review
SYNTAX EXAMPLE/S
}
//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();
}
}
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;
}
}
}
}
Self-check 2 (continued)
Table[0][0]= ___________
Table[2][1]= ___________
Table[1][3]= ___________
Table[4][4]= ___________
Table[3][2]= ___________
End of Lesson
LABORATORY EXERCISE
Lesson 10
GUI
General Topics
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));
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));
Layout
SYNTAX:
BorderLayout( );
Examples:
setLayout(new BorderLayout());
Sample GUI Project
Project Output
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);
}
}
);
}
}
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);
}
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();
}
The DrawPanel program (continued)
fillPolygon(Polygon p)
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));
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);
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);
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);
}
The DrawControl program (continued)
• Frames
• Checkbox
• Checkbox Group: Radio Button
• Choice
• Button
Word Bank
• Abstract Class
• Component
• Frame
• Dialog
• Panel
• Layout Manager
End of Lesson 10
SUMMARY
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);
}
}
);
}
}
End of Lesson 10
LABORATORY EXERCISE