Defining Classes in Java

2 minute read

In Java, classes serve as blueprints for creating objects, encapsulating data and behaviors within a single unit. Defining classes in Java is a fundamental concept in Object-Oriented Programming (OOP) and forms the basis of building robust and maintainable software systems. In this guide, we’ll explore how to define classes in Java with examples to illustrate the concepts.

Syntax for Defining a Class

In Java, the syntax for defining a class is straightforward:

public class ClassName {
    // Class variables (attributes)
    dataType attributeName;
    // Constructor
    public ClassName(parameters) {
        // Constructor body
    // Methods
    returnType methodName(parameters) {
        // Method body

Example of Defining a Class in Java

Let’s define a simple class called Person that represents a person with attributes such as name and age, along with methods to set and get these attributes.

public class Person {
    // Class variables (attributes)
    private String name;
    private int age;
    // Constructor
    public Person(String name, int age) { = name;
        this.age = age;
    // Method to set name
    public void setName(String name) { = name;
    // Method to get name
    public String getName() {
        return name;
    // Method to set age
    public void setAge(int age) {
        this.age = age;
    // Method to get age
    public int getAge() {
        return age;


  • Class Variables (Attributes): In the Person class, we define two private variables name and age to represent the attributes of a person. These variables are encapsulated within the class and can only be accessed or modified through methods defined in the class.

  • Constructor: The constructor of the Person class initializes the name and age attributes with the values passed as parameters. Constructors are special methods that are invoked when an object of the class is created.

  • Methods: The setName() and setAge() methods are used to set the values of the name and age attributes, respectively. Similarly, the getName() and getAge() methods are used to retrieve the values of these attributes. These methods provide controlled access to the attributes and ensure data encapsulation.

Creating Objects of the Class

Once a class is defined, objects can be created based on that class using the new keyword:

// Creating objects of the Person class
Person person1 = new Person("John", 30);
Person person2 = new Person("Alice", 25);

Accessing Attributes and Invoking Methods:

// Accessing attributes and invoking methods of objects
System.out.println(person1.getName());  // Output: John
System.out.println(person2.getAge());   // Output: 25

System.out.println(person1.getAge());   // Output: 35


Defining classes in Java is a fundamental aspect of Object-Oriented Programming. Classes encapsulate data and behaviors, providing a blueprint for creating objects. By defining classes effectively, developers can build modular, reusable, and maintainable codebases that accurately model real-world entities and interactions. Practice defining classes and creating objects in Java to gain a deeper understanding of OOP principles and enhance your programming skills.