![Page 1: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/1.jpg)
CSE115 / CSE503Introduction to Computer Science I
Dr. Carl Alphonce343 Davis Hall
Office hours:Tuesday 10:00 AM – 12:00 PM*
Wednesday 4:00 PM – 5:00 PMFriday 11:00 AM – 12:00 PM
OR request appointment via e-mail*Tuesday adjustments: 11:00 AM – 1:00 PM on 10/11, 11/1 and 12/6
![Page 2: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/2.jpg)
© Dr. Carl Alphonce
ANNOUNCEMENTS
![Page 3: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/3.jpg)
ANN
OU
NC
EMEN
TS
Recitations are running (Baldy 21)
Bring your UB card
Main course website:www.cse.buffalo.edu/faculty/alphonce/cse115/
© Dr. Carl Alphonce
![Page 4: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/4.jpg)
ANN
OU
NC
EMEN
TS
zyBook usage
Exercises from book count towards grade (minimum 10% of your course grade).
Book enrollment: 523 studentsCourse enrollment: 626 students
~16% of class not currently getting those points
© Dr. Carl Alphonce
![Page 5: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/5.jpg)
© Dr. Carl Alphonce
ELECTRONICS:off & away
![Page 6: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/6.jpg)
ROAD
MAP
Last timeexpressions and objectsmemory diagram
Todayclass definitionsvariablesmethod callsobject diagrams
Coming upvariables in depth
© Dr. Carl Alphonce
![Page 7: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/7.jpg)
© Dr. Carl Alphonce
REVIEW
![Page 8: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/8.jpg)
Obj
ects
OO software systems are systems of interacting objects.
Objects have
properties:these are things that objects knowe.g. what you had for breakfast
behaviors:these are things objects doe.g. being able to reply to the question “What did you have for breakfast?”
![Page 9: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/9.jpg)
Expr
essi
on e
valu
atio
nevaluating new example1.BarnYard()
produces a value (which we call a reference)
causes a side effect (an object is created and initialized)
we can remember a reference value by storing it in a variable
![Page 10: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/10.jpg)
evaluating a ‘new’ expression
used10101010101010101010101010101010availableavailableavailableused
107108109110111112113114115
When evaluating an expression like ‘new example1.BarnYard()’, the operator ‘new’ first determines the size of the object to be created (let us say it is four bytes for the sake of this example).
Next, new must secure a contiguous block of memory four bytes large, to store the representation of the object.
Bit strings representing the object are written into the reserved memory locations. In this example we use “10101010” to indicate that some bit string was written into a given memory location; the exact bit string written depends on the specific details of the object.
The starting address of the block of memory holding the object’s representation is the value of the ‘new’ expression. This address is called a ‘reference’.
![Page 11: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/11.jpg)
Expr
essi
on e
valu
atio
nevaluating new example1.BarnYard()
produces a value (which we call a reference)
causes a side effect (an object is created and initialized)
we can remember a reference value by storing it in a variable
![Page 12: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/12.jpg)
The
varia
ble
decl
arat
ion
Variables must be declared before usedeclaration specifies encoding schemedeclaration specifies size
Declaration consists minimally oftypename
Examplesexample1.BarnYard by ;example1.Chicken c ;
The semicolon ‘;’ is a terminator.
![Page 13: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/13.jpg)
assi
gnm
ent s
tate
men
tTo associate a value with a variable, use an assignment statement:
SYNTAX: <variable> = <expression> ;
‘=’ is the ASSIGNMENT OPERATOR (it is not ‘equals’!)
Example
by = new example1.BarnYard();
“by is assigned the value of the expression ‘new example1.BarnYard()’ ” …or…
“by is assigned a reference to a new example1.BarnYard() object” …or…
“by is assigned a reference to a new BarnYard object” (example1 is implied)
![Page 14: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/14.jpg)
© Dr. Carl Alphonce
MOVING ON
![Page 15: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/15.jpg)
Cla
sses
vs.
Obj
ects
Developers write class definitions.placed in .java files
An object is an instance of a class.
Classes are instantiated at runtime.
![Page 16: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/16.jpg)
Wha
t is
a cl
ass
defin
ition
?
A class definition is a description of the properties (variables) and behaviors (methods) that instances of the class will have.
![Page 17: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/17.jpg)
Our
firs
t cla
ss d
efin
ition
!
package lab2;
public class Farm {public Farm() {}
}
Here’s a minimal class definition. We will label and discuss each part of it in detail next class. For now we identify the major parts:
![Page 18: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/18.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
Package declaration is shown in green:
![Page 19: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/19.jpg)
Pack
ages
a package is an organizational mechanismrelated classes are grouped together
allows class names to be re-used in different packages
reduces chance of naming conflicts
![Page 20: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/20.jpg)
Pack
ages
one analogy:package::classarea code::phone number
a class’ fully qualified name consists of its package name and its (unqualified) class name:
example1.BarnYard is a fully qualified class nameBarnYard is an unqualified class name
![Page 21: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/21.jpg)
Fold
er s
truct
ure
on d
isk
each package corresponds to a folder (directory) in the file system
packages can be nested within each othercorresponds to nested folder on disk
examples:java.rmi.registryjavax.swing.text.html.parsercom.sun.accessibility.internal.resources.accessibility
![Page 22: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/22.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
The class definition is shown in green:
![Page 23: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/23.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
The class definition consists of a header . . .
![Page 24: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/24.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
. . . and a body:
![Page 25: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/25.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
In this example, the body consists of a single constructor definition:
![Page 26: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/26.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
The constructor definitions consists of a header . . .
![Page 27: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/27.jpg)
Synt
ax package lab2;
public class Farm {public Farm() {}
}
. . . and a body:
This was the last slide for the
afternoon lecture.
![Page 28: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/28.jpg)
BAC
K TO
OBJ
ECTS
object behaviors
to ‘send a message’ to an object we call a method on the object
sometimes we say ‘invoke a method’ rather than ‘call a method’
![Page 29: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/29.jpg)
Obj
ect c
omm
unic
atio
nTo put an example1.Chicken object inside an example1.BarnYard object, call the “addChicken” method of the example1.BarnYard object with a reference to an example1.Chicken object.
A method is called using a reference to the object on which we call the method.
> new example1.BarnYard().addChicken(new example1.Chicken())
![Page 30: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/30.jpg)
The
met
hod
call
from
last
tim
e
new example1.BarnYard(). addChicken (new example1.Chicken())
![Page 31: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/31.jpg)
Anat
omy
of a
MET
HO
D C
ALL
<expr> . <method> ( <expr> )
A set of parentheses with an expression inside.This is an argument list.
The name of a method.The method must be defined for the type of objectthat the reference before the ‘.’ refers to.
A period ‘.’, called ‘dot’ or the ‘member access operator’.
An expression whose value is a reference to an object.
![Page 32: CSE115 / CSE503 Introduction to Computer Science I Dr ... · Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Tuesday 10:00 AM](https://reader036.vdocument.in/reader036/viewer/2022070916/5fb6892230678a47ea583f24/html5/thumbnails/32.jpg)
Dis
sect
ing
a m
etho
d ca
ll
new example1.BarnYard(). addChicken (new example1.Chicken())
An argument list.In this example the list contains one expression.
The name of the method.
The ‘member access operator’
An expression whose value is a reference to an object.