Download - Object-based Programming
![Page 1: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/1.jpg)
Object-based Programming
• Intuitive explanation
• Two concrete examples
• Calculators
• addition
• BMI
• Programming Environment
![Page 2: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/2.jpg)
Computer Vs Program Model
CPU Program
Compiler
???
![Page 3: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/4.jpg)
Manufactured Objects
Natural Objects
Program Components ~ Physical Objects
~ Program
Objects
![Page 5: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/5.jpg)
Program Objects ~ Manufactured Objects
Program
Object
add
subtract
methodsexecuteinvokecall
manufactured byaccelerate
brake
operations
perform
Classinstance of
Program
Object
![Page 6: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/6.jpg)
Classification through Factories
manufactured by
manufactured by
![Page 7: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/7.jpg)
Classification through Classes
ASquareCalculator
Instance
ASquareCalculator instance of
ASquareCalculator
Instance
ABMICalculator
Instance
ABMICalculator instance of
ABMICalculator
Instance
![Page 8: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/8.jpg)
A Simple Class
public class ASquareCalculator {
public int square(int x) {
return x*x; }
}
![Page 9: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/9.jpg)
2.2 Nature of a Function
Domain/ParameterValues
Range/ResultValues
Mapping
1
42
3
1
9... ...
![Page 10: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/11.jpg)
Instantiating ASquareCalculator
![Page 12: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/12.jpg)
ASquareCalculator Instance
![Page 13: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/13.jpg)
Invoking a Method
![Page 14: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/15.jpg)
Bare Bone Environment
•MS-DOS Prompt (Command Interpreter)
•Notepad (editor)
•Jvc (J++ compiler)
•Jview (J++ interpreter)
•ObjectEditor
![Page 16: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/16.jpg)
Creating MS-DOS Prompt Window
![Page 17: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/17.jpg)
Creating MS-DOS Prompt Window
![Page 18: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/18.jpg)
Using Notepad to Edit Autoexec
notepad C:\autoexec.bat
![Page 19: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/21.jpg)
Check After Reboot
![Page 22: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/22.jpg)
Developing BMI Program
![Page 23: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/23.jpg)
Interacting with ObjectEditor
![Page 24: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/24.jpg)
Interacting with ObjectEditor
![Page 25: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/29.jpg)
Class Access Error
![Page 30: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/30.jpg)
Method Access Error
![Page 31: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/31.jpg)
User Error
![Page 32: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/32.jpg)
User Error
![Page 33: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/35.jpg)
Object Editor Changes Case
calculateBMI()
![Page 36: Object-based Programming](https://reader036.vdocuments.us/reader036/viewer/2022062321/56812de9550346895d934720/html5/thumbnails/36.jpg)
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