EVENT DRIVEN
PROGRAMMING
WITH JAVA
August 6, 2009
INTRODUCTION TO JAVA
August 6, 2009
Java is related to C++, which is a direct
descendent of C
From C, Java derives its syntax
Many of Javas object-oriented features were
influenced by C++
Java was conceived by James Gosling, Patrick
Naughton, Chris Warth, Ed Frank, and Mike
Sheridan at Sun Microsystems, Inc. in 1991
August 6, 2009
This language was initially called Oak but
was renamed Java in 1995
Java can be used to create two types of
programs: applications and applets
An application is a program that runs on your
computer, under the operating system of that
computer
An applet is an application designed to be
transmitted over the Internet and executed
by a Java-compatible Web browser
August 6, 2009
An applet is actually a tiny Java
program, dynamically downloaded
across the network, just like an image,
sound file, or video clip
An applet is a program that can react
to user input and dynamically change
not just run the same animation or
sound over and over
August 6, 2009
Security
When you use a Java-compatible Web
browser, you can safely download Java
applets without fear of viral infection or
malicious intent
Java achieves this protection by
confining a Java program to the Java
execution access to other parts of the
computer
environment
and
not
allowing it
August 6, 2009
Java is portable across many types of
computers and operating systems
that are in use throughout the world
August 6, 2009
Javas Magic: The Bytecode
The output of a Java compiler is not
executable code ; rather, it is
bytecode
Bytecode is
instructions
by the Java
called the
(JVM)
August 6, 2009
a highly optimized set of
designed to be executed
run-time system, which is
Java Virtual Machine
8
August 6, 2009
August 6, 2009
10
August 6, 2009
11
August 6, 2009
12
August 6, 2009
13
JVM is an interpreter for bytecode
August 6, 2009
14
Translating a Java program into bytecode
helps makes it much easier to run a program
in a wide variety of environments
The reason is straightforward: only the JVM
needs to be implemented for each platform
When a program is interpreted, it generally
runs substantially slower than it would run if
compiled to executable code
The use of bytecode enables the Java runtime system to execute programs much faster
than you might expect
August 6, 2009
15
Sun supplies its Just In Time (JIT)
compiler for bytecode, which is included
in the Java 2 release
When the JIT compiler is part of the JVM,
it compiles bytecode into executable
code in real time, on a piece-by-piece,
demand basis
The JIT compiler compiles code as it is
needed, during execution
August 6, 2009
16
The Java Buzzwords
Simple
Secure
Portable
Object-oriented
Robust
Multithreaded
Architecture-neutral
Interpreted
High performance
Distributed
Dynamic
August 6, 2009
17
Simple
If you already understand the basic concepts
of object-oriented programming,
Java will be even easier
learning
Because Java inherits the C/C++ syntax and
many of the object-oriented features of C++,
most programmers have little trouble
learning Java
Beyond its similarities with C/C++, Java has
another attribute that makes it easy to learn:
it makes an effort not to have surprising
features
August 6, 2009
18
Object oriented
The object model in Java is simple
and easy to extend, while simple
types, such as integers, are kept as
high-performance nonobjects
August 6, 2009
19
Robust
Ability to create robust programs was
given a high priority in the design of Java
To better understand how Java is robust,
consider two of the main reasons for
program failure: memory management
mistakes
and
mishandled
exceptional conditions (that is, runtime errors)
August 6, 2009
20
Memory management can be a difficult,
tedious task in traditional programming
environments
For example, in C/C++, the programmer
must manually allocate and free all dynamic
memory
Programmers will either forget to free
memory that has been previously allocated
or, worse, try to free some memory that
another part of their code is still using
August 6, 2009
21
Java
virtually
eliminates
these
problems by managing memory
allocation and deallocation for you
Java
provides
exception handling
August 6, 2009
object-oriented
22
Multithreaded
Java supports multithreaded programming,
which allows you to write programs that do
many things simultaneously
The Java run-time system comes with an
elegant yet sophisticated solution for
multiprocess synchronization that enables
you to construct smoothly running
interactive systems
August 6, 2009
23
Architecture-Neutral
Operating system upgrades, processor
upgrades, and changes in core system
resources can all combine to make a
program malfunction
Java designers made several hard
decisions in Java language and Java
Virtual Machine in an attempt to alter
this situation
Their goal was write once; run
anywhere, any time, forever.
August 6, 2009
24
Interpreted and High
enables
the creation of cross-platform
Performance
Java
programs by compiling into an intermediate
representation called Java bytecode
This code can be interpreted on any system
that provides a Java Virtual Machine
the Java bytecode was carefully designed so
that it would be easy to translate directly
into native machine code for very high
performance by using a just-in-time compiler
August 6, 2009
25
Distributed
Java is designed for the distributed
environment of the Internet, because
it handles TCP/IP protocols
Remote Method Invocation (RMI)
feature of Java brings an unparalleled
level of abstraction to client/server
programming
August 6, 2009
26
Dynamic
Java programs carry with them
substantial amounts of run-time type
information that is used to verify and
resolve accesses to objects at run time.
Makes it possible to dynamically link
code in a safe and expedient manner.
Small fragments of bytecode may be
dynamically updated on a running
system
August 6, 2009
27
An Overview of Java
August 6, 2009
28
Object-oriented programming is at
the core of Java
all computer programs consist of two
elements: code and data
A program can be conceptually
organized around its code or around
its data
August 6, 2009
29
That is, some programs are written
around what is happening and
others are written around who is
being affected.
The first way is called the processoriented model
The process-oriented model can be
thought of as code acting on data
August 6, 2009
30
The second approach, Objectoriented programming organizes a
program around its data (that is,
objects) and a set of well-defined
interfaces to that data
Characterized as data controlling
access to the code
August 6, 2009
31
Concept of Abstraction focus is on
essential features.
Humans manage complexity through
abstraction which is through the use of
hierarchical classifications.
Data can be transformed into component
objects. A sequence of process steps can
become a collection of messages
between these objects - essence of OOP
August 6, 2009
32
The Three OOP Principles:
Encapsulation - is the mechanism
that binds together code and the data
it manipulates, and keeps both safe
from outside interference and misuse
class, member variables and methods
Inheritance - the process by which
one object acquires the properties of
another object
August 6, 2009
33
August 6, 2009
34
August 6, 2009
35
Polymorphism - is a feature that
allows one interface to be used for a
general class of actions one
interface , multiple methods
Polymorphism, encapsulation and
inheritance works together - every
java program involves these.
August 6, 2009
36
A First Simple Program
/* This is a simple Java program.
Call this file "Example.java".*/
class Example {
// Your program begins with a call to main().
public static void main(String args[]) {
System.out.println("This is a simple Java
program.");
}
}
August 6, 2009
37
Compiling the Program
C:\>javac Example.java
The javac compiler creates a file
called Example.class that contains
the bytecode version of the program
The output of javac is not code that
can be directly executed
August 6, 2009
38
To actually run the program, you must
use the Java interpreter, called java.
C:\>java Example
When a class member is preceded by
public, then that member may be
accessed by code outside the class in
which it is declared
August 6, 2009
39
The keyword static allows main( ) to be
called without having to instantiate a
particular instance of the class
The keyword void simply tells the
compiler that main( ) does not return a
value
String[ ] args declares a parameter
named args, which is an array of
instances of the class String.
args
receives any command-line arguments.
August 6, 2009
40
A Second Short Program
class Example2 {
public static void main(String args[]) {
int num; // this declares a variable called num
num = 100; // this assigns num the value 100
System.out.println("This is num: " + num);
num = num * 2;
System.out.print("The value of num * 2 is ");
System.out.println(num);
}
}
August 6, 2009
41
Two Control Statements
The if Statement:
if(condition) statement;
if(num < 100)
System.out.println("num is less than
100");
August 6, 2009
42
The for Loop:
for(initialization; condition; iteration)
statement;
class ForTest {
public static void main(String args[]) {
int x;
for(x = 0; x<10; x = x+1)
System.out.println("This is x: " + x);
}
}
August 6, 2009
43
Using Blocks of Code:
using { and }
August 6, 2009
44
Lexical Issues
Whitespace:
Java is a free-form language
In Java, whitespace is a space, tab, or
newline
Identifiers:
- Identifiers are used for class names,
method
names, and variable names
- Java is case-sensitive
August 6, 2009
45
August 6, 2009
46
Literals:
A constant value in Java is created by
using a literal representation of it
August 6, 2009
47
Comments
There are three types of comments defined by
Java.
Single-line and multiline
The third type is called a documentation comment
This type of comment is used to produce an HTML
file that documents your program
The documentation comment begins with a /**
and ends with a */
August 6, 2009
48
Separators
August 6, 2009
49
The Java Keywords
There are 50 reserved keywords
currently
defined
in
the
Java
language (enum)
August 6, 2009
50
August 6, 2009
51