Recommended Books:: Applications, Not Applets Text Output, Not Graphical
Recommended Books:: Applications, Not Applets Text Output, Not Graphical
1
Applets vs. applications
Java applets
a program embedded into a web page
internet programming
Java applications
stand-alone programs – Java is a fully-fledged programming
language
many Java class libraries for
2
First, a bit of background…
1st Generation – machine language
(raw machine code – lots of binary 0100101010001000111)
3
The Software Crisis
The “software crisis”, recognized c.1969. - threatened
the progress of the computer industry.
People-time was and still is relatively expensive,
machine-time is now very, very cheap.
Programming was and still is very time intensive.
Products need support - this is probably more than ever
Software is complex; imagine creating a car with no
drawings, specifications or planning.
Amazingly, this is how a lot of the software in the past
was created (some of it still is)!
This situation had to end…
4
Towards Structured Programming
As computer programs become larger and more complex, more errors are
introduced.
It has been estimated that there are 15 bugs in every 1000 lines of
commercial code.
Windows 2000 had 40 million lines of code!
Most bugs are caused by poor memory management.
Clearly there is a need for a structured programming language that helps in
reducing the number of errors and speeds development for programming
teams.
C C++ Java
Functional Programming Object Orientation
“C makes it easy to shoot yourself in the foot; C++ makes it harder,
but when it happens you tend to take off the whole leg!”
5
What is Object-Oriented code?
Procedural coding is just a list of instructions.
Object-oriented code has a lot of similarity with code from
other procedural languages.
Basically, a lot of the ‘words’ are the same but the way the
words are put together (the structure) is different.
Object-oriented coding does also contain lists of instructions
but these lists are bound to specific objects.
What an object actually represents is up to the programmer.
6
Simple Example
A car is an object (in the real world) and in our program we can
make a software object to represent it.
Fundamentally, an object contains data and methods which can act
on that data.
The data we might want to have in our ‘software’ car could be
things like: body colour, engine size, current speed, whether it has
electric windows etc. Basically it’s up to you.
The methods we might want our ‘car’ to have could be things like:
accelerate, brake, respray body, open passenger window etc. Again,
it’s up to you.
Whatever you need your software car to model from the real world
object must be present in your code.
The OO syntax enables you to do this intuitively.
7
What technology does it replace?
8
Java (why use it?)
Advantages over C & C++
9
How does it help?
Large projects can be broken down into modules more easily.
Aids understanding.
Groupwork is easier.
Less chance of data corruption.
Aids reusability/extensibility.
Maintaining code is far easier.
Hides implementation details (just need to know what
methods to call but no need to understand how the methods
work to use them).
10
Programming vs Puzzle Solving
With any programming language, there are concepts and some
terminology to learn.
It takes time for these things to sink into your brain.
Rule #1 – Do not panic!
Like driving a car, you cannot learn in a day and it takes practice with a
lot of trial and error.
This is normal. You can only learn by experience.
Programming is very similar to solving puzzles.
Solving any complex puzzle (Su Doku, Rubik’s Cube, Mah-jong etc.)
requires you to think and trying out ideas until you finally (hopefully)
solve the puzzle.
The only difference is that with programming you have to translate your
ideas into code before you can test your solution.
11
Applets
embed into web page using applet tag
<APPLET src = "myprogram.class" width = "100"
height = "100"> < /APPLET>
source code extends Java Applet class
has skeleton user interface
programmer can add code to be executed when
applet is initialised and painted
programmer can easily add GUI components
such as buttons, labels, textfields, scrollbars….
and respond to their events
12
Example
applet -
ManySpikes
set up label
and textfield in
init() method
draw the spikes
in the paint()
method
Java applications
stand-alone programs
not GUI by default
text input and output to a console
can add user interface components
execution always starts at a main() method
analogous to init() method of applet
14
A simple Java application
import corejava.Console;
public class Hello {
public static void main(String args[])
{
String name; // this declares the variable “name”
name = Console.readString ("What is your name? ");
System.out.println("Hello, " + name);
}
} /* end of program */
15
The Hello class and its method
name of class is same as name of file (which
has .java extension)
body of class surrounded by { }
this class has one method called main
all Java applications must have a main method in one
of the classes
execution starts here
body of method within { }
all other statements end with semicolon ;
16
Java keywords
keywords appear in bold
reserved by Java for predefined purpose
don’t use them for your own variable, attribute or
method names!
public
visibility could be private
static
the main method belongs to the Hello class, and
not an instance (object) of the class
void
method does not return a value
17
Comments
important for documentation!!!!
ignored by compiler
// single line (or part of line)
/**
* These are used by the javadoc utility to create HTML
* documentation files automatically.
*/
18
Variables and data types
name is a variable of type String
we have to declare variables before we use
them
unlike C, variables can be declared anywhere
within block
use meaningful names numberOfBricks
start with lower case
capitalise first letter of subsequent words
19
Data types
int 4 byte integer (whole number)
range -2147483648 to +2147483648
and range
char 2 byte letter
String string of letters
boolean true or false (not 1 or 0)
20
Console input
data input is difficult in Java
methods for input in the library class
corejava.Console
we have to import corejava.Console to use it
each book has its own methods for input!
Malik and Nair "Java programming" book uses raw Java
which is difficult to read
21
Console methods
general form:
myVariable = Console.readType("Put a prompt
here");
Console.readString("prompt")
Console.readInt("prompt")
Console.readDouble("prompt")
Console.readWord("prompt")
22
System output
Java provides print methods in the class
System.out (don’t need to import)
println(name);
prints out what is stored in name, then goes to a
new line
print(name);
prints out what is stored in name, but does not
start a new line
print("My name is " + name);
put text in quotes
use + to print more than one item
23
Methods in Java
methods break down large problems into
smaller ones
your program may call the same method
many times
saves writing and maintaining same code
methods take parameters
information needed to do their job
methods can return a value
must specify type of value returned
24
Example method
signature
body
25
Method signature
visibility [static] returnType methodName(parameterList)
visibility:
public
accessible to other objects and classes
protected
accessible to classes which inherit from this one
private
static keyword:
use when method belongs to class as whole
not object of the class
26
Method signature
visibility [static] returnType methodName(parameterList)
return type:
specifies type of information returned
can be a simple type
int, float, double, char, String, boolean
or a class
if nothing returned, use keyword void
method name:
use meaningful name which describes what method does!
27
Method signature
visibility [static] returnType methodName(parameterList)
parameter list:
information needed by method
pairs of type name
examples:
addNums(int num1, int num2)
drawPerson(boolean isBald, String name, int numEarrings)
use empty brackets if method has no parameters
printHeadings()
28
Method body
signature
body
29
Method body
use curly brackets to enclose method body
all your code goes in here
write it so the method does what you intended
last line should return a value of appropriate type
must match type in method header
nothing is executed after return statement
if method returns void, can omit return statement
method will automatically return at closing }
30
Calling a method
methods will not run unless called from elsewhere
a statement in main() method could call another
method
this method could call a third method .....
32
Calling methods
the previous example uses four methods
from class Console:
public static int readInt(String prompt)
store returned integer in variable input
from System.out:
public void print(String s)
public void println(int x)
no returned value (void)
33
Calling methods
from class JavaTest:
public static int addNums(int num1, int num2)
pass returned integer to println() method
34
Summary
reviewed Java basics
applications vs. applets
class declaration, main method
Java keywords
comments
data types, variables
input and output
writing and using methods
Tutorial
write a calculator application which takes input
from the user, calls methods and output answers
35
Reading
Malik and Nair
Chapter 1 (Review)
Languages
Chapter 2
36