Class vs Object vs Instance

Posted: September 6, 2013 in c#
Tags: , ,

In OO Programming, we often hear of terms like “Class”, “Object” and “Instance”;

but what actually is a Class / Object / Instance?

In short,

An object is a software bundle of related state and behavior.

A class is a blueprint or prototype from which objects are created.

An instance is a single and unique unit of a class.

Example, we have a blueprint (class) represents student (object) with fields like name, age, course (class member). And we have

2 students here, Foo and Bob. So, Foo and Bob is 2 different instances of the class

(Student class) that represent object (Student people).

Let me go into details…

Object

Real world objects shares 2 main characteristics, state

and behavior. Human have state (name, age) and behavior (running, sleeping).

Car have state (current speed, current gear) and state (applying brake, changing

gear). Software objects are conceptually similar to real-world objects: they too

consist of state and related behavior. An object stores its state in fields

and exposes its behavior through methods.

Class

Class is a “template” / “blueprint” that is used to create objects. Basically,

a class will consists of field, static field, method, static method and constructor.

Field is used to hold the state of the class (eg: name of Student object). Method

is used to represent the behavior of the class (eg: how a Student object going to

stand-up). Constructor is used to create a new Instance of the Class.

Instance

An instance is a unique copy of a Class that representing an Object. When a new

instance of a class is created, the JVM will allocate a room of memory for that

class instance.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s