Introduction
In Java, classes and objects are the building blocks of Object-Oriented Programming (OOP). A class is like a blueprint that defines the structure and behavior (data and methods) that the objects created from the class will have. An object is an instance of a class, containing actual values.
What is a Class?
A class is a blueprint for creating objects. It defines a datatype by bundling data (fields) and methods (functions) that operate on the data. Classes help model real-world entities by grouping related properties and behaviors.
Example: Defining a Class
public class Car {
// Fields (attributes)
String color;
String model;
// Method to display car details
public void displayDetails() {
System.out.println("Car model: " + model + ", Color: " + color);
}
}
In this example, Car
is a class with two fields, color
and model
, and one method, displayDetails
.
Real-World Analogy
Think of a class as a blueprint for a house. The blueprint outlines the design and features of the house (e.g., number of rooms, type of roof), but it is not an actual house. Similarly, a class defines the structure and behavior of objects but is not an actual object.
What is an Object?
An object is an instance of a class. It is created using the new
keyword and contains actual values for the fields defined in the class. Objects represent real-world entities by holding specific values and performing actions.
Example: Creating an Object
To create an object of a class, use the new
keyword followed by the class constructor.
public class Main {
public static void main(String[] args) {
// Creating an object of the Car class
Car myCar = new Car();
// Setting fields
myCar.color = "Red";
myCar.model = "Toyota";
// Calling a method on the object
myCar.displayDetails();
}
}
Output:
Car model: Toyota, Color: Red
In this example, myCar
is an object of the Car
class. The fields color
and model
are set to specific values, and the displayDetails
method is called to print these values.
Real-World Analogy
An object is like an actual house built from the blueprint. The house has specific characteristics (e.g., blue color, two-story) and can perform actions (e.g., people living in it). Similarly, an object has specific values for its fields and can perform actions defined by its methods.
Fields and() Methods
Fields (also known as attributes or properties) represent the data of a class, while methods represent the behaviors or actions. Together, they help in modeling the characteristics and behaviors of real-world entities.
Example: Fields and Methods
public class Person {
// Fields (attributes)
String name;
int age;
// Method to set name
public void setName(String name) {
this.name = name;
}
// Method to set age
public void setAge(int age) {
this.age = age;
}
// Method to display person details
public void displayDetails() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
In this example, Person
is a class with fields name
and age
, and methods setName
, setAge
, and displayDetails
.
Real-World Analogy
In real life, a person has attributes like a name and age, and can perform actions like walking or talking. Similarly, the Person
class has fields for name
and age
, and methods to set these fields and display the person’s details.
Example: Using Fields and Methods
public class Main {
public static void main(String[] args) {
// Creating an object of the Person class
Person person = new Person();
// Setting fields using methods
person.setName("Alice");
person.setAge(30);
// Calling a method to display details
person.displayDetails();
}
}
Output:
Name: Alice, Age: 30
Constructors
A constructor is a special method that is called when an object is instantiated. It initializes the object.
Example: Constructor
In this example, we define a constructor for the Car
class.
public class Car {
// Fields (attributes)
String color;
String model;
// Constructor
public Car(String color, String model) {
this.color = color;
this.model = model;
}
// Method to display car details
public void displayDetails() {
System.out.println("Car model: " + model + ", Color: " + color);
}
}
Example: Using a Constructor
public class Main {
public static void main(String[] args) {
// Creating an object using the constructor
Car myCar = new Car("Blue", "Honda");
// Calling a method to display details
myCar.displayDetails();
}
}
Output:
Car model: Honda, Color: Blue
Summary
- Class: A blueprint that defines the structure and behavior of objects. It models real-world entities by grouping related properties and behaviors.
- Object: An instance of a class that contains actual values and can perform actions. It represents real-world entities with specific characteristics and behaviors.
By using classes and objects, you can create modular, reusable, and maintainable code that closely models real-world scenarios.