Objects
Classes and Objects (v2) An object is a “bundle” of data (variables) and code
(functions)
CSE 114: Computer Science I
An object represents some “thing” in our program
Stony Brook University Objects are essentially variables that can:
store multiple pieces of information
do things with that information
Objects Are Self-Managing Basic Terminology
An object contains all of the functions (methods,
representing “behavior”) that need to operate on its data Class: a description of the structure of an object
(“attributes”)
Think of a class as the blueprint for a type of object
This is called encapsulation, meaning that an object is A class defines a new type of variable for your program
responsible for managing its own data
An object may hide its contents from other parts of the
program
Instance: a specific example from a class
This protects our data from random changes e.g. “a car” (class) vs. “that car over there” (instance)
Classes vs. Instances The Anatomy of a Class
A class contains two types of elements:
Instance data — variables representing an object’s attributes
Every instance of a given class has the same kind of
information, but different actual values
Instance methods — methods (code) that define an object’s
behaviors
e.g. every student has an ID number, but each student’s ID
number is unique Each class is defined using the keyword “class”
Curly braces enclose the data and method declarations that
make up the class
Class Definition Example Creating An Object For Use
class Example // defines a new “Example” data type
To create (instantiate) an object, use the keyword new :
{
instance variable declarations go here...
MyClass foo = new MyClass( );
“new” invokes an object’s constructor
instance method definitions go here...
}
foo is a reference variable
It holds the memory address of a MyClass object
After you define a class, you can use it as a new variable
type in your programs, just like int, double, etc.
Classes are stored differently in RAM than “primitive” (built-in)
types like int and double
In this case, we can now create new “Example” variables
Constructors More on Constructors
• A constructor has the same name as the class
A constructor is a special method (function) that is called to
instantiate (“construct”) a new object
• A constructor has NO return type
Constructors set the initial values of the object’s data
• If (and only if) no constructors are defined, Processing
provides a class with a default constructor
These values may be defined in the constructor or passed
in as arguments when the object is instantiated • This constructor takes no parameters and does not
assign any specific values to the object’s variables
Constructor Example Elements of a Class
class Car
{
// Variables
int currentSpeed;
A class holds instance variables and instance methods
int maxSpeed;
int mileage;
When we create a new Car “instance”: each object instance has its own copy
object, we need to supply a
// Constructor
value for the constructor:
Instance variables are declared like normal variables
Car (int max)
{
Car c = new Car(140); Instance methods are functions that belong to the object
maxSpeed = max;
currentSpeed = 0;
They are used to operate on instance variables
mileage = 0;
}
}
Access Modifiers General Access Guidelines
A class may restrict access to its methods and variables
Programming tip: Always make the variables in your classes
The keyword public means that something is visible and private whenever possible
accessible inside and outside the class
This prevents unexpected changes from outside
The keyword private means that a variable or method can Methods should only be public if other parts of the program
only be seen or used by methods inside the class
may need to call them; otherwise, they should be private
If we omit the access modifier, Java lets us use class and kept as internal helper methods
elements from other parts of the same program
Private methods may only be used by other methods in the
Technically, this is “package” (not public) access same class
Object Interactions
Public Methods Public Methods
Method Method
Method Method Data
Hidden Method
Data Method Method
Hidden Methods
Method Objects communicate
with one another via
Method
their public methods