Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
CSA 1019
Imperative and
OO Programming
Introduction
Introduction
Mr.
Mr. Charlie
Charlie Abela
Abela
Dept.
Dept.of
ofArtificial
ArtificialIntelligence
Intelligence
Course Objectives
Familiarise
with
both
the
Familiarise
with
both
the
Imperative
Imperative and
and the
the Object-Oriented
Object-Oriented
aspects
aspects of
of Java
Java
Build
structured,
reusable,
Build
structured,
reusable,
manageable
manageable platform
platform independent
independent
code.
code.
Charlie Abela
CSA1019: Introduction
2
Course Structure
Charlie Abela
Language
Language basics
basics
Core
Core Object
Object Orientated
Orientated Principles
Principles
Advanced
Advanced topics
topics
CSA1019: Introduction
3
Introduction
3hrs
3hrsof
oflectures
lecturesper
perweek
week
–– 1hr
1hrtutorial/practice
tutorial/practiceevery
everyweek
week
IMP:
IMP:Practice
PracticeMUST
MUSTbe
betaken
takenseriously
seriously
Course
Course slides
slides and
and resources
resources will
will be
be made
made
available
availableatat
http://staff.um.edu.mt/cabe2/lectures/csa1019.html
http://staff.um.edu.mt/cabe2/lectures/csa1019.html
11 assignment
assignment will
will be
be given
given (25%
(25% of
of final
final
mark)
mark)
Slides
Slides are
are detailed
detailed but
but you
you should
should make
make
your
yourown
ownnotes
notes
––
––
––
Charlie Abela
worked
workedexamples
examples
techniques
techniques
design
design
CSA1019: Introduction
4
Requirements
Recommended
Recommendedcourse
coursetextbooks
textbooks
–– Introduction
Introduction toto Java
Java Programming,
Programming, Y.
Y.
Daniel
DanielLiang,
Liang,ISBN:
ISBN:9780132221580
9780132221580
–– Head
Head First
First Object
Object Oriented
Oriented Analysis
Analysis and
and
Design,
Design, Brett
Brett McLaughlin,
McLaughlin, Gary
Gary Pollice,
Pollice,
David
DavidWest.
West.O'Reilly.
O'Reilly.1st
1stEdition.
Edition.
–– Head
HeadFirst
FirstJava,
Java,Kathy
KathySierra,
Sierra,
ISBN:
ISBN:9780596009205
9780596009205
Java
JavaCompiler
Compilerand
andDocumentation
Documentation
–– Available
Available atat http://java.sun.com
http://java.sun.com as
as Java
Java 22
SDK
SDK1.6
1.6(J2SE)
(J2SE)
–– Documentation
Documentationfrom:
from:
http://java.sun.com/javase/6/docs/
http://java.sun.com/javase/6/docs/
IDE
IDE
––
––
––
Charlie Abela
BlueJ:
BlueJ:easy-to-use
easy-to-use
Eclipse:
Eclipse:robust,
robust,used
usedininindustry/research
industry/research
NetBeans:
NetBeans:recommended
recommendedby
bySun
Sun
CSA1019: Introduction
5
Java Language
Specification
AA general-purpose,
general-purpose, concurrent,
concurrent, class-based,
class-based,
object-oriented
object-orientedlanguage.
language.
Designed
Designed to
to be
be simple
simple enough
enough that
that many
many
programmers
programmers can
can achieve
achieve fluency
fluency in
in the
the
language.
language.
The
The language
language isis related
related to
to CC and
and C++
C++ but
but isis
organized
organized rather
rather differently,
differently, with
with aa number
number
of
of aspects
aspects of
of CC and
and C++
C++ omitted
omitted and
and aa few
few
ideas
ideasfrom
fromother
otherlanguages
languagesincluded
included
Language
Language specification
specification isis the
the technical
technical
definition
definitionof
ofthe
thelanguage,
language,i.e.
i.e.
––
––
Charlie Abela
syntax
syntaxand
andsemantics
semantics
read
readmore:
more:http://java.sun.com/docs/books/jls/
http://java.sun.com/docs/books/jls/
CSA1019: Introduction
6
Java API & JDK
API
(Application
API
(Application
Interface)
Interface) contains,
contains,
classes
classes and
and interfaces
interfaces
Program
Program
predefined
predefined
–– three
threeeditions:
editions:
•• Java
Java22Standard
StandardEdition
Edition(J2SE)
(J2SE)
•• Java
Java22Enterprise
EnterpriseEdition
Edition(J2EE)
(J2EE)
•• Java
Java22Micro
MicroEdition
Edition(J2ME)
(J2ME)
JDK
JDK (Java
(Java Development
Development Kit)
Kit)
–– we
we will
will use
use J2SE
J2SE 6.0
6.0 (formerly
(formerly
known
knownas
asJDK
JDK1.6)
1.6)
–– set
set of
of programs
programs for
for developing
developing and
and
testing
testingJava
Javaprograms.
programs.
Charlie Abela
CSA1019: Introduction
7
Java Compiled & Interpreted
Java
Java compilers
compilers translate
translate language
language
code
code into
into an
an intermediary
intermediary bytecode
bytecode
(specifically
(specifically Java
Java bytecode),
bytecode), using
using
the
the javac
javac command.
command.
bytecode
bytecode consists
consists of
of machine
machine
instructions
instructions specific
specific to
to an
an abstract
abstract
or
or virtual
virtual machine.
machine.
code
code isis then
then run
run on
on JVM
JVM (Java
(Java
Virtual
Virtual Machine),
Machine), using
using the
the java
java
command,
command, that
that interprets
interprets and
and
executes
executes the
the generic
generic Java
Java bytecode.
bytecode.
Charlie Abela
CSA1019: Introduction
8
Java Compiled & Interpreted
Java
Java uses
uses aa combination
combination of
of compiling
compiling and
and
interpreting,
interpreting, and
and this
this presents
presents aa
fundamental
fundamentaladvantage:
advantage:
–– allows
allows programs
programs toto be
be run
run on
on any
any machine,
machine,
provided
provided that
that the
the JVM
JVM isis present
present on
on that
that
machine,
machine,“Write
“Writeonce,
once,run
runanywhere”.
anywhere”.
Charlie Abela
CSA1019: Introduction
9
Java Virtual Machine
The
The JVM
JVM isis considered
considered to
to be
be “virtual”
“virtual”
because
because itit isis an
an “abstract
“abstract computer”
computer”
that
thatruns
runscompiled
compiledjava
javaprograms.
programs.
ItIt isis generally
generally implemented
implemented in
in
software
software on
on top
top of
of aa "real"
"real" hardware
hardware
platform
platformand
andoperating
operatingsystem.
system.
All
All Java
Java programs
programs are
are compiled
compiled for
for
the
the JVM.
JVM. Therefore,
Therefore, the
the JVM
JVM must
must be
be
implemented
implemented on
on aa particular
particular platform
platform
before
before compiled
compiled Java
Java programs
programs will
will
run
runon
onthat
thatplatform.
platform.
Charlie Abela
CSA1019: Introduction
10
JRE: Runtime Environment
subset
subset of
of JDK,
JDK, can
can be
be
downloaded
downloaded separately
separately
contains
contains modules
modules required
required to
to
run
run applications
applications anywhere
anywhere
no
no development
development utilities
utilities
Charlie Abela
CSA1019: Introduction
11
Java File Structure
.java
.java –– source
source file
file created
created by
by the
the
developer
developer
.class
.class –– bytecode
bytecode file
file generated
generated by
by the
the
compiler
compiler
.jar
.jar –– compressed
compressed package
package file
file
•• easily
easilyportable
portable
•• executable
executable through
through
command
command
java
java
–jar
–jar
There
There isis no
no tool
tool in
in JDK
JDK that
that allows
allows
for
for the
the creation
creation of
of .exe
.exe files,
files,
however
however its
its possible
possible to
to use:
use:
–– Webstart:
Webstart: allows
allows users
users to
to launch
launch and
and
manage
manage the
the application
application from
from their
their
browser,
browser,e-mail
e-mailor
ordesktop
desktop
–– third
thirdparty
partysoftware
software
•• http://www.bysoft.se/sureshot/exej/
http://www.bysoft.se/sureshot/exej/
Charlie Abela
CSA1019: Introduction
12
Good Programmers
Programming
Programming isis synonymous
synonymous to
to aa strategy
strategy
game
game
–– the
the best
best players
players know
know and
and understand
understand the
the
domain
domain
–– they
theyexperiment
experimentwith
withdifferent
differenttactics
tactics
–– they
theypractice
practicethe
thegame
game
How
Howto
tobecome
becomeaagood
goodprogrammer?
programmer?
––
––
––
––
––
––
Charlie Abela
learn
learnthe
thelanguage
languagerules
ruleswell
well
before
beforeindulging
indulginginto
intocoding
codingunderstand
understandthe
the
problem
problemdomain
domainwell
well
experiment
experiment by
by writing
writing different
different code
code that
that
does
doesthe
thesame/similar
same/similarthings
things
learn
learneffective
effectivetesting
testingand
anddebugging
debugging
document
documentyour
yourcode
code
practice..more
practice..morepractice..even
practice..evenmore
more
practice…
practice…
CSA1019: Introduction
13
Essentially
What
What do
do you
you need
need to
to start
start
programming
programming in
in Java
Java
–– JDK
JDK(J2SE
(J2SEedition)
edition)version
version6.0
6.0
–– J2SE
J2SEdocumentation
documentation
–– Java
JavaIDE
IDE
–– Recommended
Recommendedtext
textbook
book
Charlie Abela
CSA1019: Introduction
14
Simple Java Program
comment
class name
//outputs
//outputs Welcome
Welcome to
to Java
Java
public
public class
class Welcome{
Welcome{
public
public static
static void
void main(String[]
main(String[] args){
args){
System.out.println(“Welcome
System.out.println(“Welcome to
to Java”);
Java”);
}}
}}
class heading
Charlie Abela
method signature
String
Save
Savethe
thefile
fileas
asWelcome.java
Welcome.java
Compile
Compileand
andexecute
execute
CSA1019: Introduction
15
Sample Output
open
opencmd
cmdwindow
window
change
changedirectory
directory(cd)
(cd)to
tosource
sourcefile
filedirectory
directory
compile
compileusing
usingjavac
javaccommand
command
execute
executeusing
usingjava
javacommand
command
Note:
Note: you
you need
need to
to make
make sure
sure that
that the
the bin
bin
directory
directory of
of the
the JDK
JDK isis included
included in
in the
the
system’s
system’sclasspath
classpath
Charlie Abela
CSA1019: Introduction
16
Exercises
Compile
Compile and
and execute
execute
Welcome.java
Welcome.java
Create
Create aa new
new program
program
out
out your
your name
name
Create
Create aa new
new program
program
out
out multiple
multiple strings
strings
Charlie Abela
CSA1019: Introduction
your
your own
own
that
that prints
prints
that
that prints
prints
17