26
1 Programming James King 12 August 2003

1 Programming James King 12 August 2003 2 Aims Give overview of concepts addressed in Web based programming module Teach you enough Java to write simple

Embed Size (px)

Citation preview

1

Programming

James King12 August 2003

2

Aims

Give overview of concepts addressed in Web based programming moduleTeach you enough Java to write simple web and network applications

3

Warning

THIS IS NOT A WEB AUTHORING COURSE We will not teach HTML, PSP, etc…

We will show you how to write Java applications that use the web and internetWe will (hopefully) improve your programming abilityWe will teach Object orientated concepts, good programming practice and how to debug/document your codeIt is vital to bring the code examples with you to the lecture

4

The Course Topics

Object orientation and Java programmingApplets and GUI programmingFile handlingInput and Output StreamsMultiple threads of executionNetwork programming

5

Useful ResourcesThese slides are the course book hopelive.hope.ac.uk/imc/kingjThe BlueJ development environment is available free from www.bluej.orgThe blueJ book is useful if you want additional practical exercises. Barnes, D and Kolling, M. Objects first with Java – A practical introduction using BlueJ. Prentice Hall. 2003http://java.sun.com This site contains a freely downloadable version of Java for most operating systems and computer hardware. It also contains the very useful Java tutorial and Java language documentation.

6

AdviceYou can’t learn to program just by understanding the theoryProgramming requires practice and more practice. Don’t give up because it is not easy to start with once you grasp the concepts it will get easierDon’t be surprised when you make mistakes - learn from them No programming language or environment is perfect sometimes the error messages are difficult to understand or don’t point you to the cause of the problem

7

A few Words about the LabsThe labs are designed for you to learn how Java program behave and experiment and have funYou will learn faster and have more fun if you take the programming examples and modify them to see what happens. You will get used to the error messages

Try to run them in your head or on paper before you run them on the computer you will get a feel for what the language can and can

not doAll the examples are carefully chosen to illustrate a point. Don’t worry that they are not all useful programs

8

This Weeks Topics

Object Orientated Concepts Objects Methods and Attributes Messages, parameters and

protocols Classes Instances Inheritance and overriding

9

Objects

Basic Java Language Section

10

Objects model real world entities such as a person, food, car, house, umbrellaObjects only need to model the “interesting” information and behaviours For a personnel database person may contain

name, address, age, current wage etc. and behaviours such as change address, promotion

In a computer game health, current weapon and direction may be important and behaviours such as shoot, walk, run and change direction

Object oriented concepts

Objects

11

Anatomy of an object - Terminology

The individual pieces of information such as the health of a monster or the number of bullets are called attributes The entire information stored inside an object can be referred to en masse as its state

12

Anatomy of an object

The behaviours of on object such as change address are implemented inside methodsMethods are bundles of codeWhen invoked the code in a method is executed line by lineMethods may examine and modify any of the attributes inside the object they are part of

13

Java Language Structure

Basic Java Language Section

14

Java Structure – Based around blocks

Blocks are defined between a { and a } { must be balanced by a }A Method is a block with a nameAttributes also require names Names cannot contain spaces or start with a number such as 2A block may be nested totally inside a block but no block may be partially inside another block

15

Java Class Example

class Hero

{

int bullets;

void shoot()

{

bullets=bullets-1;

}

}

Name of class

Indicates start of class

Indicates end of class

Indicates start of method

Name of method

Indicates end of method

Name of attribute

16

class Monster

{

int health;

void take_damage()

{

health=health-10;

}

}

Java Class Example2This is the body

of the class it contains one

method and one attribute

This is the body of method it

contains one line of code and is

inside the body of the class

17

Java Structure – Based around blocks

{}

{}

{

}

{}

{

}{

}

One block followed

by another block is

fine

One block inside by another block is

fine

One partially inside by another block is

an error

18

Object oriented concepts

What is a program?A program is a collection of objects (possible many different types) that interact together by calling each other’s methods.For example in a computer game if the hero shoots a monster several methods are called:

The hero's gun uses one bullet (shoot method)The monster loses health (take damage method)

19

Object oriented concepts

TerminologyInvoking a behavior by calling a method is referred to as sending the object a messageThe set of messages an object understands is called its protocolSending an object a message it does not understand usually results in a error and your program stopping/crashing

20

Collaborating Objects

bullets = bullets -1

Shoot message

health = health - 10

Take damage message

user hits the mouse button

Hero object receives a

shoot messageMonster object

receives a take_damage

message

21

Objects Summary

The state of the object is stored inside the object in attributes e.g. the age of the person

Responses to messages are stored as executable code (the code associated with a message is called a method).

The set of messages an object can understand is its protocol

22

Messages and Objects

Basic Java Language Section

23

Simple Messages

Sometimes receiving a message is enough information to perform your behaviourFor instance receiving a message that it is your birthday is enough to increment your age

24

class Monster

{

int health;

void take_damage()

{

health=health-10;

}

}

Object oriented concepts

Objects – Java Example

Indicates it’s a simple message

Name of method

25

Messages with Parameters

Sometimes you need additional information to perform a behaviour. For instance if the monster is hit by a

non-standard weapon we need to know how much damage the weapon did.

This additional information is presented as one or more parameters (also called arguments in some older books)

26

class Monster

{

int health;

void take_unusual_damage(int damage)

{

health = health - damage;

}

}

Objects – More complex Messages

Name of parameter

The attribute health is modified to take the same value as the

parameter minus its old value. When modified its overwritten its old value

is then lost forever

Type of parameter (more about types

later)