Download Lecture 2 part a

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Object Orientated Programming
An Introduction to Java
• For the most accurate and up-to-date
tutorials, please access the latest version
from Sun's official website for the Java SE
Tutorials (Last Updated 9/23/2009), which
can be found at:
http://java.sun.com/docs/books/tutorial.
Features of OOP
•
•
•
•
•
Classes
Objects
Instantiation
Inheritance
Membership Functions
More OOP Features
•
•
•
•
•
Data Encapsulation
Polymorphism
Operator Overloading
Message Passing
Software Re-Use
History of Java
• Java
• Java, first released by Sun Microsystems in 1994
– Originally for intelligent consumer-electronic devices
– Then used for creating Web pages with dynamic content
– Now also used for:
• Develop large-scale enterprise applications
• Enhance WWW server functionality
• Provide applications for consumer devices (cell phones, etc.)
The Emergence of Java
• In the past decade Java has emerged in wide
use partially because of its similarity to C and to
C++
• Perhaps more important is its implementation
using a virtual machine that is intended to run
code unchanged on many different platforms.
• This last feature has made it very attractive to
larger development shops with heterogeneous
environments.
Key Benefits of Java
• Java is “write once, run anywhere”
– architecture neutral
– portable across different platforms
– Due to Java Virtual Machine (JVM)
• Security features
– highly configurable security levels prevent any piece of Java code
doing harm to the host system
• Network-centric platform
– easy to work with resources across a network and to create network
based applications
• Object Oriented
– an interacting collection of independent software components
– dynamic extensible programs
Key Benefits of Java
• Internationalisation
– uses 16 bit Unicode characters that represents the phonetic
and ideographic character sets of the entire world
• Performance
– although an interpreted language Java programs run almost
as fast as native C, C++ programs
• Simple and easy to develop
– powerful & well designed set of APIs
Java Class Libraries
• Classes
– Include methods that perform tasks
• Return information after task completion
– Used to build Java programs
• Java contains class libraries
– Known as Java APIs (Application Programming Interfaces)
Basics of a Typical Java Environment
• Java programs normally undergo five phases
– Edit
• Programmer writes program (and stores program on disk)
– Compile
• Compiler creates bytecodes from program
– Load
• Class loader stores bytecodes in memory
– Verify
• Verifier ensures bytecodes do not violate security
requirements
– Execute
• Interpreter translates bytecodes into machine language
Phase 1
Editor
Disk
Phase 2
Compiler
Disk
Program is created in an editor
and stored on disk in a file ending
with .java.
Compiler creates bytecodes and
stores them on disk in a file ending
with .class.
Primary
Memory
Phase 3
Class Loader
Disk
Phase 4
Bytecode Verifier
Class loader reads .class
files containing bytecodes
from disk and puts those
bytecodes in memory.
. ..
. .
.
Primary
Memory
Bytecode verifier confirms that
all bytecodes are valid and do
not violate Java’s security
restrictions.
. ..
. .
.
Primary
Memory
Phase 5
Interpreter
. ..
. .
.
Typical Java environment.
Interpreter reads bytecodes
and translates them into a
language that the computer
can understand, possibly
storing data values as the
program executes.
Java
In discussing java it is important to distinguish between :
1.
The Java Programming Language
2.
The Java Virtual Machine
3.
The Java Platform
Java
1.
The Java Programming Language is the language in
which Java applications, applets , servlets and
components are written. It is an object orientated
language like C++.
2.
The Java Virtual Machine, (or java interpreter) is the
crucial piece of every Java installation. Java
applications are portable, but they are only portable to
platforms to which a java virtual machine ( or java
interpreter ) has been ported.
3.
The Java Platform . All programs written in Java rely
on the set of predefined classes that comprise the java
platform. These classes are organised into related
groups known as packages. The java platform defines
packages for functionality such as input/output,
networking, graphics, user interface creation.
JVM
1001100101001
…
…
class myCode {
…
…
…
…
}
Compiled by
Java
compiler
myCode.class
Bytecode
Interpreted
by JVM
myCode.java
Source
Code
Application
runs
JVM
• JVM provides the run time environment for the bytecode
(Java Runtime Environment JRE)
– executes the bytecode and causes native machine
code instructions to execute on the CPU that the JVM
is on
 each target platform needs an implementation of the
JVM
Java Compiler
Errors
class myCode {
…
…
…
…
Compiler
Byte Code
}
myCode.java
Source
Code
Interpreter for
Computer A
(JVM)
Interpreter for
Computer B
(JVM)
Interpreter for
Computer C
(JVM)
Operation of the JRE
(Java Runtime Environment)
Runtime
Compile
java
Class Loader
______
________
Bytecode verifier
myCode.java
javac
______
________
Load from
hard disk,
network or
other source
Interpreter
RunTime
myCode.class
Hardware
JRE
• At runtime the java bytecode that makes up a java software program
are
– Loaded, checked and run in an interpreter
– In the case of applets you can download the bytecode and they are then
interpreted by the JVM built into the browser.
•
Bytecode verifier checks
–
–
–
–
Attributes correctly typed
Body of the methods check
Type checking
References to other types checked
Java Applications vs Java Applets
• There are two categories of Java Programs
– A Java Application –
• These are stand alone programs in the traditional sense
• Run independently
• Run under the java interpreter
– Java applets
• These are programs designed to run from browsers such as
Netscape or Sun’s HotJava.
• They don’t run independently
• Programs that can be included in web documents.
First Java Program (Application)
// First Program HelloWorld
public class HelloWorld {
public static void main(String args []){
System.out.println(“Hello world...”):
}
}
• A class definition is the basic block of a Java program
• Each program must have a main method to tell it
where to start executing
Notes
•
•
•
•
// First Program HelloWorld
Comments begin with //
Can also use C style comments
/* First Program HelloWorld */
Notes 2
• public class HelloWorld
• This begins a class definition for class
HelloWorld
• These classes are known as Programmer
defined classes or User defined classes
• The public and class terms are java
keywords which are always lowercase
• HelloWorld is the class identifier which
always start with an uppercase letter
Notes 3
• When you save your class definition in a
file the filename must be the same as the
class identifier with a .java extension
• So the HelloWorld class would be stored
in a HelloWorld.java file
Notes 4
• public static void main(String args [])
• Java applications automatically begin executing at
main
• Parentheses () after main indicate a program piece
called a method which define some operational
component of the class.
• Void indicates that the method will perform a task
without returning any information when it completes
• String args [] are used as input arguments to the
method. In this case we don’t use input but java
requires it anyway
Notes 5
•
•
•
•
•
•
System.out.println(“Hello world...”):
System.out is called the standard output object
This will display a line of text in the command
window
In Java , any source and destination for I/O is
considered a stream of bytes or characters.
To perform output we insert bytes or characters
into a stream. To perform input we extract bytes or
characters from a stream.
java.lang.System class contains three predefined
streams
•
•
•
System.out
System.err for errors
System.in
A First Java Program
• This is a Java application not a Java applet –
indicated by presence of main
• Source code exists in a file with same name as
the class and an extension of .java. So for the
previous example it is HelloWorld.java
• Java is case sensitive (like C.)
Using the JDK
• Create source files for
each class in your
program
• The name of source file
should be the same as
the name of class
public class myCode {
…
…
…
…
}
myCode.java
Source File
Compiling your source code
• Compile each class source
file into bytecode (class files)
• To compile a java source file
javac
myCode.java
• This creates a classfile called
myCode.class
1001101001110101011
…
…
…
…
myCode.class
Class File
To run your program
• To start your program running you run the
bytecode of the program control class
• The program control class has the main method
• To run bytecode – pass it to the JVM
java classFileName
e.g. java myProg
note no .class included