© Tomáš Kozel, Pavel Čech Programming I Pavel Čech Faculty of Informatics and Management...

Preview:

Citation preview

© Tomáš Kozel, Pavel Čech

Programming I

Pavel Čech Faculty of Informatics and Management

University Hradec Kralovepavel.cech@uhk.cz

explorer.uhk.cz/pc/www

2

© Tomáš Kozel, Pavel Čech

Content

Introduction into programming

Object oriented modeling Object oriented programming Programming in Java

3

© Tomáš Kozel, Pavel Čech

Objectives Introduce students to OOP in Java

Apply apply knowledge acquired in ALGD

Use advanced tools for application development

4

© Tomáš Kozel, Pavel Čech

ResourcesMcConnell:Rapid Development – Microsoft

Press 1996McConnell:Code Complete – Microsoft

Press 1994

Electronic publications The Java Tutorial, Java SDK

Documentation - www.javasoft.com Thinking in Java - www.bruceeckel.com, 3.

edition

5

© Tomáš Kozel, Pavel Čech

Tools Java 2 SDK – basic package for

programming in Java Eclipse – IDE for programming in JAVA ArgoUML – CASE Tool for object

oriented modeling in UML

These tools can be downloaded from> http://iris.uhk.cz/kozel/software (uid: student, pwd: prox)

All tools a free

6

© Tomáš Kozel, Pavel Čech

Terminlogy Program = sequence of commands

describing some action Process = program being executed

(running) program Processor – device capable of

executing a program Data – certain kind of objects , that are

appropriately transformed by the program

7

© Tomáš Kozel, Pavel Čech

Terminology (cont.) Source code – programming code written

in a certain programming language Target code – binary code, that is created

by compilation of source code – is executable

Byte code(Java) – intermediate code that is create by compilation but it is run by runtime environment (JRE, JVM)

Library – group of files that contain subroutines and classes and that can be used in our program

8

© Tomáš Kozel, Pavel Čech

Terminology (cont.2) Data type – determines type and the size of

value in variables. Indirectly determines the set of operations that can be applied to the value.

Variable – “named” block of memory in RAM for storing values. The size of the memory block depends on the data type of the value.

Constant – the same as variable but it is not allowed to changed the value (it is read only). The constant can be assigned value only once and that can be only read.

9

© Tomáš Kozel, Pavel Čech

Programming language the means of communication between

computer and the programmer the means of describing an algorithm needs to be understandable for both sides

Taxonomy Lower level programming lang. Higher level …

10

© Tomáš Kozel, Pavel Čech

Types of prog. lang. Structured

Separation of data and operations Older by still commonly used In many cases faster and efficient C, Pascal, Basic,…

Object oriented Modern Easily maintainable The code can be re-used Eiffel, Smalltalk, Java, ...

Hybrid Not strictly object oriented i.e. can also be structured (C+

+, Object Pascal - Delphi, Visual Basic ...)

11

© Tomáš Kozel, Pavel Čech

Compiler

=special kind of programs for conversion of source code into machine code

Types Interpreter Compiler

12

© Tomáš Kozel, Pavel Čech

Interpretersourcecode

outputdata

Computer

Interpreter

inputdata

13

© Tomáš Kozel, Pavel Čech

Compiler

developer’scomputer

source codeinput data

output data

user’s computer

compiler

target code

14

© Tomáš Kozel, Pavel Čech

The process of compilationEditor

CompilerLinker

(links program)

OBJ coderelative code

 

Library

Target code

Source code

Debugger

15

© Tomáš Kozel, Pavel Čech

Running program in JavaCompilation environment

Run-time environment

Source code (.java)

Java compiler

Byte code(.class)

Local or network

transmission of byte

code

Class Loader+

Verifier of byte code

Java libraries

JavaInterpreter

Just-In-Timecompiler

Runtime system

OS

HW

JavaVirtualMachine

16

© Tomáš Kozel, Pavel Čech

What is object …

Objects real world - entities that can be

found everywhere

software – program entities that follow the rules of real world ones. By combination of sw. object we create object oriented programs (systems).

17

© Tomáš Kozel, Pavel Čech

Real world objects

Have a name (object identity)

Have properties (state)

Do something (behavior)

18

© Tomáš Kozel, Pavel Čech

Where can we find objects? Thinking about a situation We can write some notes with description

and processes in that situation. Noun can be objects. Verbs can be operations (behavior) of

objects Objects that are not important when

considering a given problem can be left out

19

© Tomáš Kozel, Pavel Čech

Object oriented programs(Alan Kay)

1. Everything is object. Objects stores data and we can ask for some services (performing an operation).

2. Program is a group of objects that comunicates (send messages = ask for services).

3. Each object has its own memory space and can consists of other objects. Complex objects can be divided into other objects.

4. Every object belongs to a class. 5. Every object of the same class has to

understand the same messages and perform the same operations. Objects can belong into more classes through inheritance.

20

© Tomáš Kozel, Pavel Čech

Why use objects in programs?

It is modern … They’re closer to

reality Readable source

code Advanced tools and

languages Reusable Easily maintainable

21

© Tomáš Kozel, Pavel Čech

What objects can today?

Behave Have

properties Inherit from

ancestors Adapt Communicate …

22

© Tomáš Kozel, Pavel Čech

Terminology revisited

Object always something particular with identity called also instance (Trabant, Audi A6, ...).

Class type of objects, a group in which a set of objects belong. Describes general features common to all objects (instances) in a class (Car).

23

© Tomáš Kozel, Pavel Čech

UML .... tool ArgoUML

Unified Modeling Language Graphical language for object

modelingClass ObjectMyFord:CarCar

Color

HP

Go()

Brake()

Car attributes(data)

methods(operations)

24

© Tomáš Kozel, Pavel Čech

Software objects

have name (identity), state, behavior

name is determined by identifier, state is described by attributes, behaviour is realized by methods

25

© Tomáš Kozel, Pavel Čech

Basic OOP principles

Abstraction Encapsulation Inheritance Polymorphisms

• Communication Communication ((messagesmessages))

• AssociationAssociation• AggregationAggregation

((compositioncomposition))

26

© Tomáš Kozel, Pavel Čech

Abstraction= separation of important and unimportant

aspects based on a given problemExample: Calculator from the point of

view of the studentImportant aspects:

Range and precision of numbers Number and types of operations Can be kept secret during the test

Unimportant: Number of chips on a system board Type of processor Exact algorithm of every operation

27

© Tomáš Kozel, Pavel Čech

Encapsulation= data and operation forms a atomic whole that

cannot be separatedData (properties, state) of object and operations

are dependent and influence each other.Not all features of objects are propagated to

outside (Information hidding)Data – attribures of an objectOperation – methods of an object

Example: An angry man (state) is more noisy (behavior) than the calm one.

28

© Tomáš Kozel, Pavel Čech

Information hidingEvery object can have private elements (attributes, methods) than cannot be seen or influence from the outside of the object (Information hiding). These elements are hidden behind so called public interface .Example: state and properties of a man‘s intestines

Publicinterface

Private state

„Doughnut“ diagram

29

© Tomáš Kozel, Pavel Čech

Communication (messaging) Objects communicate by sending

messages. As a consequence of receiving a

message some operation is performed

(message passing = method invocation)

30

© Tomáš Kozel, Pavel Čech

Association= represents a general binary relation

between two classes Each class in association has its role For each object with a role we can determine

multiplicity (cardinality) of that relationExample:Class Student is in association with the class

Faculty. The student „studies“ and the faculty is „studied by“.

Multiplicity: Many students (n or *) can study only one faculty.

31

© Tomáš Kozel, Pavel Čech

Aggregation= special kind of association that

represents the relation „part of“Object can contain other objects. Such

objects are created by aggregating other objects. If the use of part objects is exclusive in aggregation we talk about composition. Example:

Composition: TV x ChipAggregation: Student x Lab

32

© Tomáš Kozel, Pavel Čech

Association in UML

FacultyStudentstuduje 1..* 1

Association

Lab Student

TV Chip

Aggregation

Composition

33

© Tomáš Kozel, Pavel Čech

Inheritance= ability of objects to inherit

attributes and behavior from ancestors (it is so called object evolution)

ie. that attributes and behavior can be further extended and modified

Example: Parent -> Children Machine -> Vehicle -> Car

34

© Tomáš Kozel, Pavel Čech

Inheritance in UMLMachine

Vehicle

Car Truck

35

© Tomáš Kozel, Pavel Čech

Class attributes

Attributes are common must be present for all objects of a particular class

State of object is given by values of attributes

Sometimes called data, properties

Example: Color, Brand, horse power

36

© Tomáš Kozel, Pavel Čech

Class methods

Specify behavior Sometimes called operation or

services It is custom to hide attributes and

use so called access method to set or retrieve values

Access methods Selectors – reading/retrieving values Modifiers – setting/writing values

37

© Tomáš Kozel, Pavel Čech

Information hiding

Rule: None of the attributes should be directly accessible from the outside world

->(Black Box)

Attributes

Method

Method

Method

Method

Recommended