introduction to oop mehdi einali advanced programming in java 1

Post on 19-Jan-2016

234 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Introduction to OOP

Mehdi Einali

Advanced Programming in Java

2

agendaObject Oriented ProgrammingCharacteristics of objectsInterfaceEncapsulation

3

AbstractionSimplification of complex system via interface(Modeling)

Machine languageAssembly: an abstraction of the machine languageMany languages are abstraction of assembly language

Fortran, Basic, C

But they still require you to think in terms of the structure of the computer Rather than the structure of the problem

4

Different ContextsProblem Space

the place where the problem existssuch as a business

Solution Spacethe place where you’re implementing that solutionsuch as a computer

The effort required to perform this mapping

5

Library ProblemSuppose you want to write a library programWhat are the elements of your program?We think about methods and variables…

6

Object Oriented ApproachOO approach goes a step further Lets the programmer represent problem space elementsThis representation is general enough The programmer is not constrained to any particular type of problem.

The elements in the problem space and their representations in the solution space are referred to as “objects”

7

OOPThe program is allowed to adapt itself to the lingo of the problem

by adding new types of objects

when you read the code, you’re reading words that also express the problem. This is a more flexible and powerful language abstraction

8

Reuse

Student

Course

Teacher

Grant

Book

Paper

Journal

Education System

Library System

Research System

9

ChangeSW system could not change with

requirements

Maintenance is more expensive than development

Avoid cascading changes

Increase cohesion / decrease coupling

Object Orientation

10

Advantage of OOPAbstractionSeamless in modeling

Best fit to problem domain

ReuseGood for Change

ExtendibilityMaintainabilityModifiabilityTestability

11

generation 1First-generation languages (1954–1958)

FORTRAN I Mathematical expressionsALGOL 58 Mathematical expressionsFlowmatic Mathematical expressionsIPL V Mathematical expressions

This first generation of high-order programming languages therefore represented a step closer to the problem space and a step further away from the underlying machine

12

Generation 2Second-generation languages (1959–1961)

FORTRAN II Subroutines, separate compilationALGOL 60 Block structure, data typesCOBOL Data description, file handlingLisp List processing, pointers, garbage collection

Emphasis was on algorithmic abstractionsMachines were becoming more and more powerful then more kinds of problems could be automated, especially for business applications

read these personnel records first, sort them next, and then print this report

A step closer to the problem space and further away from the underlying machine

13

generation 3Third-generation languages (1962–1970)

PL/1 FORTRAN + ALGOL + COBOLALGOL 68 Rigorous successor to ALGOL 60Pascal Simple successor to ALGOL 60Simula Classes, data abstraction

Advent of transistors and then integrated circuit technology, the cost of computer hardware had dropped dramaticallyLarger problems could now besolved, but these demanded the manipulation of more kinds of dataSupport data abstraction

describe the meaning of related kinds of data (their type)

14

Genertion gapThe generation gap (1970–1980)

Many different languages were invented, but few endured. However, the following are worth noting:C Efficient; small executableFORTRAN 77 ANSI standardization

Creation of literally a couple of thousand different programming languages and dialectsFew of these languages survived

15

oopObject-orientation boom (1980–1990, but few languages survive)

Smalltalk 80 Pure object-oriented languageC++ Derived from C and SimulaAda83 Strong typing; heavy Pascal influenceEiffel Derived from Ada and Simula

16

FrameworksEmergence of frameworks (1990–today)

Visual Basic Eased development of the graphical user interface (GUI) for Windows applicationsJava Successor to Oak; designed for portabilityPython Object-oriented scripting languageJ2EE Java-based framework for enterprise computing.NET Microsoft’s object-based frameworkVisual C# Java competitor for the Microsoft .NETFramework

Visual Basic .NET Visual Basic for the Microsoft .NET Framework

17

Topology of 1st and early 2nd gen

Basic physical building block of all applications is the subprogram (or the paragraph - COBOL)Flat physical structure, consisting only of global data and subprograms

An error in one part of a program can have a devastating ripple effect across the rest of the system

18

Late 2nd and Early 3rd Gen

The first software abstraction, now called the ‘procedural’ abstraction

Variety of parameter-passing mechanismsNesting subprogram, theories about control structures, scope and visibility of structuresStructured design methods

Greater control over algorithmic abstractionsStill fails to address the

problems of programming-in-the-large and data design.

19

Late Third-GenerationLarger programming projects meantlarger development teams, and thus the need to develop different parts of the same program independentlySeparately compiled module Need for semantic

consistency among module interfaces

Most of these languages had dismal support for dataabstraction and strong typing, such errors could be detected only during executionof the program.

20

Object based and object oriented

Procedural abstraction is not enoughData abstraction is important to mastering complexity

Data-driven design methods emerged, which provided a disciplined approach to the problems of doing data abstraction in algorithmically oriented languagesTheories regarding the concept of a typeappeared, which eventually found their realization in languages such as Pascal

If procedures and functions are verbs and piecesof data are nouns, a procedure-oriented program is organized around verbs while an object-oriented program is organized around nouns

21

Beyond programming languages

Enterprise Application Integration(EAI)Service Oriented architecture(SOA)

22

OOP vs. Procedural Approach

Elements of OOPObjectsMessage passing between objects

Elements of procedural programmingFunctions VariablesFunction invocation

The way of thinkingThinking about objects and relationsThinking about functions and computer structure

23

OOP CharacteristicsAlan Kay summarized five basic characteristics of Smalltalk

1. Everything is an object 2. A program is a bunch of objects telling each

other what to do by sending messages

3. Each object has its own memory made up of other objects

4. Every object has a type 5. All objects of a particular type can receive the

same messages

24

Booch’s description of an Object

An object has state, behavior and identityBooch added identity to the descriptionAn object (may) have internal data

which gives it state

An object (may) have methods to produce behavior

And each object can be uniquely distinguished from every other object

Each object has a unique address in memory

25

InterfaceEach object can satisfy only certain requestsThe requests you can make of an object are defined by its interfaceThe type is what determines the interface

26

Representation of a light bulb

27

Person in an Education System

28

New names in OOPFunction Method, ServiceVariable Property, State

29

EncapsulationCommercial products are encapsulated

Remote controlTVCell phone

They are Black BoxesHidden ImplementationsPublic interface

30

Why Encapsulation?Simplified use

Even for the producer

Open implementation bad useHiding the implementation reduces bugsIt is more beautiful!

31

Object EncapsulationEncapsulation of a problem-space concept into a class of objectsDefine interfaceHide the implementationBlack boxThe client may see the implementationBut can not use it directlyThis is better even for the producer (programmer)

32

Access ControlAccess to some parts of the class is restrictedPublic and Private area of the classThe client of a class can use only public areaPublic area = class interface

Public methodsPublic variables

33

Example: RectangleLets encapsulate a rectangleWhat is a rectangle?

An objectWhich has length and width (properties)Lets you specify its length and widthCan calculate its area and perimeter

34

Class Declarationpublic class Rectangle {

private int width, length;

public void setWidth(int w) {width = w;

}public void setLength(int l) {

length = l;}public int calculateArea(){

return width*length;}public int calculatePerimeter(){

return (width+length)*2;}

}

Private area: hidden implementation

Public area :the interface

35

How to Use Rectangle?

Rectangle rect = new Rectangle();

rect.setWidth(2);rect.setLength(7);

System.out.println(rect.calculateArea());System.out.println(rect.calculatePerimeter());

Object creation or instantiation

36

Grady BoochBooch Method

Three Amigos(1994-95)Ivar Jacobson

Object Modeling Technique(OMT)

RumbaughProcess Objectory

Unified Modeling Language(UML)Unified Process(UP)Object Oriented Analysis and

Design-3rd edtion(2007)

top related