c omp 110 o bjects instructor: jason carter. 2 c omputer vs. p rogram m odel processor compiler...
Post on 19-Dec-2015
214 views
TRANSCRIPT
![Page 1: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/1.jpg)
COMP 110OBJECTS
Instructor: Jason Carter
![Page 2: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/2.jpg)
2
COMPUTER VS. PROGRAM MODEL
Processor
Compiler
Program (source code)?
![Page 3: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/3.jpg)
3
OUTLINE
Intuitive Explanation Two Concrete Examples Calculators
square BMI
Basic Java program elements, programming styles, error handling
Running and interacting with a Java program
![Page 4: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/4.jpg)
4
STRUCTURING IN SCRIPTS
Script
Performer
Theater
Follows
![Page 5: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/5.jpg)
5
STRUCTURING IN SCRIPTS
Script
Introduction Body Conclusion
Paragraph 1 Paragraph 2
Sentence 1 Sentence 2
Script components are abstract.
So are program components!
![Page 6: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/6.jpg)
6
PROGRAM COMPONENTS ~ PHYSICAL OBJECTS
Natural Objects
Manufactured Objects
~ Program Components
![Page 7: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/7.jpg)
7
PROGRAM OBJECTS ~ MANUFACTURED OBJECTS
manufacturedby perform
Operations
accelerate
brake
ClassProgram Object
Program Object
instance of
Methods
add
subtract
execute
invoke call
![Page 8: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/8.jpg)
8
CLASSIFICATION THROUGH FACTORIES
manufacturedby
manufacturedby
![Page 9: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/9.jpg)
9
CLASSIFICATION THROUGH FACTORIES
ASquareCalculator
ABMICalculator
ASquareCalculator Instance
ASquareCalculator Instance
ABMICalculator Instance
ABMICalculator Instance
instance of
instance of
![Page 10: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/10.jpg)
10
A SIMPLE CLASS: ASQUARECALCULATOR
public class ASquareCalculator {
public int square(int x) {
return x*x;}
}
![Page 11: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/11.jpg)
11
NATURE OF A FUNCTION
Domain Range
Parameter Values Result Values
Mapping
1
2
3
1
4
9
… …
![Page 12: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/12.jpg)
12
MATHEMATICS VS. JAVA FUNCTION SYNTAX
Mathematics
Java
square: I Isquare(x) = x2
public int square(int x) { return x*x;}
![Page 13: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/13.jpg)
13
INSTANTIATING ASQUARECALCULATOR
![Page 14: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/14.jpg)
14
ASQUARECALCULATOR INSTANCE
![Page 15: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/15.jpg)
15
INVOKING A METHOD AND VIEWING THE RESULT
![Page 16: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/16.jpg)
16
OBJECTEDITOR VS. ASQUARECALCULATOR
Two objects with different methods
![Page 17: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/17.jpg)
17
ANOTHER SIMPLE CLASS: ABMICALCULATOR
ASquareCalculator ABMICalculator
Specification:Given an integer x, calculate the square of x.
public class ASquareCalculator {
public int square(int x) {
return x*x;}
}
Specification:Given the weight (kg) and height (m) of a person, calculate the person’s body mass index a.k.a. BMI.
?How do we modify the ASquareCalculator code
to meet the BMI calculator specification?
![Page 18: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/18.jpg)
18
ASQUARECALCULATOR VS. ABMICALCULATOR
public class ASquareCalculator {
public int square(int x) {
return x*x;}
}
public class ASquareCalculator {
public int square(int x) {
return x*x;}
}
ABMICalculator
calculateBMI
int weight, int height
return weight/(height*height)
![Page 19: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/19.jpg)
19
ABMICALCULATOR
public class ABMICalculator{
public int calculateBMI(int weight, int height) {
return weight/(height*height);}
}
Parameter and return types are integersBut height (m) and weight (kg) are expressed as
decimals
How do we solve the discrepancy?
![Page 20: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/20.jpg)
20
ABMICALCULATOR
public class ABMICalculator{
public int calculateBMI(int weight, int height) {
return weight/(height*height);}
}
double
![Page 21: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/21.jpg)
21
ABMICALCULATOR
public class ABMICalculator{
public double calculateBMI(double weight, double height) {
return weight/(height*height);}
}
![Page 22: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/22.jpg)
22
DEVELOPING BMI CALCULATOR
Use Eclipse
![Page 23: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/23.jpg)
23
INTERACTING WITH OBJECTEDITOR
Run the calculateBMI function in ABMICalculator
![Page 24: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/24.jpg)
24
INTERACTING WITH OBJECTEDITOR
Fill out the parameters of the calculateBMI function
Press the “Calculate BMI(double,double)” button to see the result
![Page 25: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/25.jpg)
25
PROGRAM DEVELOPMENT PROCESS
Compiler
ABMICalculator Source Code
ABMICalculator Object (byte)
Code
Eclipse
creates
reads
writes
Interpreter
calls
ObjectEditor
maininstantiate
s
calculateBMI
calls
ABMICalculator Instance
![Page 26: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/26.jpg)
26
ANATOMY OF A CLASS
1: public class ABMICalculator
2: {
3: public double calculateBMI (double weight, double height)
4: {
5: return weight/(height*height);
6: }
7: }
Class Header
Class Body
Method Header
Method Body
Parameter Type
Parameter Name
Access Specifier
Return Type
Return Statemen
t
Return Expressio
n
![Page 27: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/27.jpg)
27
![Page 28: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/28.jpg)
28
STRUCTURING IN SCRIPTS
Script
Introduction Body Conclusion
Paragraph 1 Paragraph 2
Sentence 1 Sentence 2
Script components are abstract.
So are program components!
![Page 29: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/29.jpg)
29
PROGRAM OBJECTS ~ MANUFACTURED OBJECTS
manufacturedby perform
Operations
accelerate
brake
ClassProgram Object
Program Object
instance of
Methods
add
subtract
execute
invoke call
![Page 30: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/30.jpg)
30
JAVA VS. REAL-WORLD
Java Real-world
Class Factory
Computer Object Manufactured Physical Object
Method Operation
Invoking/Executing a Method Performing an Operation
Instance of a Class Manufactured by a Factory
Defining/Declaring a Class Constructing a Factory
Instantiating a Class Manufacturing an Object
![Page 31: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/31.jpg)
31
ANATOMY OF A CLASS
1: public class ABMICalculator
2: {
3: public double calculateBMI (double weight, double height)
4: {
5: return weight/(height*height);
6: }
7: }
Class Header
Class Body
Method Header
Method Body
Parameter Type
Parameter Name
Access Specifier
Return Type
Return Statemen
t
Return Expressio
n
![Page 32: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/32.jpg)
32
FORMAL VS. ACTUAL PARAMETERSpublic class ABMICalculator{
public double calculateBMI(double weight, double height) {
return weight/(height*height);}
}
weight 0
height 0
variables
memory
Parameters
Parameters
Invoke calculateBMI
Actual Parameters
Formal Parameters
74.98
1.94
assigned
![Page 33: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/33.jpg)
33
ONE MORE SIMPLE CLASS: ANAVERAGECALCULATOR
AnAverageCalculatorSpecification:Given two real numbers, return their average (as a real number).
1:
2:
3:
4:
5:
6:
7:
public class AnAverageCalculator
public double calculateAverage(double num1, double num2)
return (num1+num2)/2;
{
}
}
{
![Page 34: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/34.jpg)
34
ERRORS
class ABMICalculator{
double calculateBMI(double weight, double height) {
return (height*heigh)/weight}
Syntax Error
Logic ErrorSemantics
ErrorAccess Error
![Page 35: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/35.jpg)
35
CLASS ACCESS ERROR
While instantiating a ABMICalculator object
you get the following error:
Reasons ABMICalculator class is not public
![Page 36: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/36.jpg)
36
METHOD ACCESS ERROR
You instantiate a ABMICalculator object
but there is no ABMICalculator menu item
Reason You have not defined any public methods in
ABMICalculator
![Page 37: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/37.jpg)
37
USER ERROR
While instantiating a AXYZCalculator object
you get the following error
Reason AXYZCalculator class does not exist
![Page 38: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/38.jpg)
38
USER ERROR
While instantiating a abmicalculator object
you get the following error
Reason Class name is spelled with incorrect case
![Page 39: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/39.jpg)
39
USER ERROR
When invoking the Square method in ASquareCalculator
you get the following error
Reason Parameter value is not in the function domain (set of
allowed parameter values)
![Page 40: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/40.jpg)
40
JAVAC 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 Number
Character Number
![Page 41: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/41.jpg)
41
CASE CONVENTIONS
Start Class Names With Upper Case Letters
aBMICalculator ABMICalculator
Start Variable and Method Names With Lower Case Letters
Weightweight
Square square
Start Variable and Method Names With Lower Case LettersEach New Word in the Name Starts with a Capital Letter
converttoinches
convertToInches
aBMICalculatorABMICalculator
![Page 42: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/42.jpg)
42
OBJECTEDITOR CHANGES CASE
Method name starts with capital
letter
Adds spaces to names
Different conventions for programmers and end users.
![Page 43: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/43.jpg)
43
IDENTIFIERS
Reserved Words(Keywords)
Program-defined Names
int, double, class, return, public
boldface
Variable names, method names,
class names
Must begin with a letter
Other characters can be letters,
digits, or underscore “_”
calculate_bmi2calculateBMI3
![Page 44: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/44.jpg)
44
![Page 45: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/45.jpg)
45
EXTRA SLIDES
![Page 46: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/46.jpg)
46
![Page 47: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/47.jpg)
47
![Page 48: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/48.jpg)
48
![Page 49: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/49.jpg)
49
A SIMPLE CLASS
public class ABMICalculator { public int calculateBMI ( int weight, int height) { return weight/(height*height); }}
public class ABMICalculator { public double calculateBMI ( double weight, double height) { return weight/(height*height); }}
![Page 50: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/50.jpg)
50
USER ERROR
![Page 51: C OMP 110 O BJECTS Instructor: Jason Carter. 2 C OMPUTER VS. P ROGRAM M ODEL Processor Compiler Program (source code)](https://reader031.vdocuments.site/reader031/viewer/2022032800/56649d2f5503460f94a070bd/html5/thumbnails/51.jpg)
51