Transcript
Page 1: Object-based Programming

Object-based Programming

• Intuitive explanation

• Two concrete examples

• Calculators

• addition

• BMI

• Programming Environment

Page 2: Object-based Programming

Computer Vs Program Model

CPU Program

Compiler

???

Page 3: Object-based Programming

Structuring in Scripts

Speech

Introduction ConclusionBody

Paragraph 1 Paragraph 2

Sentence 1 Sentence 2

Script components are

abstract

So are program components

Page 4: Object-based Programming

Manufactured Objects

Natural Objects

Program Components ~ Physical Objects

~ Program

Objects

Page 5: Object-based Programming

Program Objects ~ Manufactured Objects

Program

Object

add

subtract

methodsexecuteinvokecall

manufactured byaccelerate

brake

operations

perform

Classinstance of

Program

Object

Page 6: Object-based Programming

Classification through Factories

manufactured by

manufactured by

Page 7: Object-based Programming

Classification through Classes

ASquareCalculator

Instance

ASquareCalculator instance of

ASquareCalculator

Instance

ABMICalculator

Instance

ABMICalculator instance of

ABMICalculator

Instance

Page 8: Object-based Programming

A Simple Class

public class ASquareCalculator {

public int square(int x) {

return x*x; }

}

Page 9: Object-based Programming

2.2 Nature of a Function

Domain/ParameterValues

Range/ResultValues

Mapping

1

42

3

1

9... ...

Page 10: Object-based Programming

Mathematics Vs Java Function Syntax

Inspiration for Functional Languages

square: I Isquare(x) = x2

Mathematics

public int square(int x) {

return x*x;}

Java

Page 11: Object-based Programming

Instantiating ASquareCalculator

Page 12: Object-based Programming

ASquareCalculator Instance

Page 13: Object-based Programming

Invoking a Method

Page 14: Object-based Programming

ABMICalculator

Body Mass

Index

weight

height2

(kg)

(metres)

public class ASquareCalculator {

public int square(int x) {

return x*x; }

}

public class ABMICalculator {

public int calculateBMI (int weight, int height) {

return weight/(height*height);

}

}

Page 15: Object-based Programming

Bare Bone Environment

•MS-DOS Prompt (Command Interpreter)

•Notepad (editor)

•Jvc (J++ compiler)

•Jview (J++ interpreter)

•ObjectEditor

Page 16: Object-based Programming

Creating MS-DOS Prompt Window

Page 17: Object-based Programming

Creating MS-DOS Prompt Window

Page 18: Object-based Programming

Using Notepad to Edit Autoexec

notepad C:\autoexec.bat

Page 19: Object-based Programming

Setting Path and Classpath

• Path

•List of Command Directories

•Must have Jvc and Jview Directories

• Class Path

•List of Library Directories, Jar Files, Zip Files

•Add oe.jar, shapes.jar, swingall,jar

Page 20: Object-based Programming

Setting Path and ClasspathSET PATH=%PATH%;C:"\Program Files\Microsoft Visual Studio\VJ98"

SET CLASSPATH=%CLASSPATH%;.;D:\Java\lib\oe.jar;D:\Java\lib\shapes.jar;D:\Java\lib\swingall.jar

Reboot!

previous classpath

current directory jar files

may be zipped

Page 21: Object-based Programming

Check After Reboot

Page 22: Object-based Programming

Developing BMI Program

Page 23: Object-based Programming

Interacting with ObjectEditor

Page 24: Object-based Programming

Interacting with ObjectEditor

Page 25: Object-based Programming

Program Development ProcessText Editor

ABMICalculator Source Code

creates

Java Compiler

reads

ABMICalculator Object (Byte) Code

creates

Java Interpreter

ABMICalculator Instance

calculateBMI

instantiates calls

ObjectEditor

main

calls

Page 26: Object-based Programming

ClassHeader

ClassBody

Anatomy of a Class

2.

3.

4.

5.

6.

7.

{

{

}

1.

}

AccessSpecifier

public class ABMICalculator

MethodHeader

Method Body

public double calculate BMI(double weight, double height

ReturnType

ReturnStatement

return

ReturnExpression

weight/(height*height);

ParameterName

Parameter Type

Page 27: Object-based Programming

Formal Vs Actual Parameters

parametersactual

public double calculateBMI(double weight, double height) {

return weight / (height*height);}

parametersformal

Invoke method

weight 0

height 0

variables memory

assigned

74

1.77

Page 28: Object-based Programming

Errors

class ABMICalculator {double calculateBMI(double weight, double height)

{return (height*heigh)/weight

}

Syntax Error

Semantics Error

Logic Error

Access Error

Page 29: Object-based Programming

Class Access Error

Page 30: Object-based Programming

Method Access Error

Page 31: Object-based Programming

User Error

Page 32: Object-based Programming

User Error

Page 33: Object-based Programming

JVC Error Reporting

ABMICalculator.java (3,3) : error J0232: Expected '{' or ';'ABMICalculator.java (3,3) : error J0021: Expected type specifierABMICalculator.java (3,3) : error J0019: Expected identifierABMICalculator.java (5,1) : error J0020: Expected 'class' or'identifier'

Line no char. no

Page 34: Object-based Programming

Case Conventions

• Start variable name with lowercase letter (weight).

•Start class name with uppercase letter (ABMICalculator)

•Start each new word with upper case letter (ASquareCalculator)

Page 35: Object-based Programming

Object Editor Changes Case

calculateBMI()

Page 36: Object-based Programming

Identifiers• Reserved Words/KeyWords

•double, class, int, public, return

•boldface

• Programmer-defined Names

•Variable Names

•Class Names

•First character is letter

•Other characters:letter, digit, _

•calculateBMI2

•calculate_BMI


Top Related