Classes and Objects
ECEA Sec Ramesh Kr.
1
Classes and Objects
A Java program consists of one or more classes
A class is an abstract description of objects
Here is an example class:
class Fruit { ...description of a fruit goes here... }
Here are some objects of that class:
ECEA Sec Ramesh Kr.
2
More Objects
Here is another example of a class:
class Windows { ... }
Here are some examples of Windows:
3
Classes contain data definitions
Classes describe the data held by each of its objects
Example: Data usually goes first in a class
class {
String name;
int color;
...rest of the class...
}
A class may describe any number of objects
Examples: “Color", 7; “Taste", 3; “variety", 5;
A class may describe a single object, or even no objects at all
ECEA Sec Ramesh Kr.
4
Classes contain methods
A class may contain methods that describe the behavior of objects
Example:
class Fruit { Methods usually go after the data
...
void Color() {
System.out.println(“Yellow!");
}
}
When we ask a particular Fruit to Color, it says “Yellow!”
Only Fruit objects can be color; the class Fruit cannot Color
ECEA Sec Ramesh Kr.
5
Methods contain statements
A statement causes the object to do something
(A better word would be “command”—but it isn’t)
Example:
System.out.println(“Yellow!");
This causes the particular Fruit to “print” (actually, display on
the screen) the characters Yellow!
6
Methods may contain temporary data
Data described in a class exists in all objects of that
class
Example: Every Fruit has its own name and colour
A method may contain local temporary data that exists
only until the method finishes
Example:
void attractTheCustomer( ) {
int i = 50; // i is a temporary variable
while (i > 0) {
color( );
i = i – 1;
}
}
7
Classes always contain constructors
A constructor is a piece of code that “constructs,” or creates, a
new object of that class
If you don’t write a constructor, Java defines one for you (behind
the scenes)
You can write your own constructors
Example:
class Fruit {
(This part is the constructor)
String name;
int color;
Fruit(String n, int color) {
name = n;
this.color = color;
}
}
8
Diagram of program structure
Program
File File File
Class
Variables
Constructors Variables File
Statements
Methods
Variables
A program consists of
Statements
one or more classes
Typically, each class is
in a separate .java file
9
Summary
A program consists of one or more classes
A class is a description of a kind of object
In most cases, it is the objects that do the actual work
A class describes data, constructors, and methods
An object’s data is information about that object
An object’s methods describe how the object behaves
A constructor is used to create objects of the class
Methods (and constructors) may contain temporary data
and statements (commands)
10
Writing and running programs
When you write a program, you are writing classes and all the
things that go into classes
Your program typically contains commands to create objects (that
is, “calls” to constructors)
Analogy: A class is like a cookie cutter, objects are like cookies.
When you run a program, it creates objects, and those objects
interact with one another and do whatever they do to cause
something to happen
Analogy: Writing a program is like writing the rules to a game; running a
program is like actually playing the game
You never know how well the rules are going to work until you
try them out
11
Getting started
Question: Where do objects come from?
Answer: They are created by other objects.
Question: Where does the first object come from?
Answer: Programs have a special main method, not part of any object, that
is executed in order to get things started
public static void main(String[ ] args) {
Fruit Color = new Fruit(“Color", 5); // creates a Fruit
}
The special keyword static says that the main method belongs to
the class itself, not to objects of the class
Hence, the main method can be “called” before any objects are created
Usually, the main method gets things started by creating one or more
objects and telling them what to do
12
A simple program??
public class Fruit {
String name;
int color;
Fruit(String name, int color) {
this.name = name;
this.color = color;
}
public static void main(String[] args) {
---------
color(); new Fruit(“Color", 5).color();
}
void color() {
System.out.println(“Yellow!");
}
}
non-static method color() cannot be referenced from a static context
13
A complete program
class Fruit{ void attractTheCustomer( ) {
String name; int i = 50;
int color; while (i > 0) {
color( );
Fruit(String n, int color) { i = i – 1;
name = n; }
this.color = color; }
}
public static void main(String[ ] args) {
void color() { Fruit Color = new Fruit(“Color", 5);
color. attractTheCustomer( );
System.out.println(“Yellow!"); }
}
} // ends the class
ECEA Sec Ramesh Kr.
14