Core Java

Java Naming Conventions Example

Java naming conventions are crucial for writing readable, maintainable, and standardized code. They define how classes, methods, variables, constants, and packages should be named to ensure consistency across Java applications. While Java does not enforce these conventions, following them improves code quality and collaboration. This article explores the standard Java naming conventions, providing best practices to write clean, consistent, and maintainable code.

1. Class and Interface Naming Conventions

Class and interface names in Java should be clear, meaningful, and follow a consistent naming pattern to improve code readability and maintainability. By adhering to PascalCase for class and interface names, we ensure that our code is easy to understand and aligns with industry standards. Well-named classes represent objects or entities, while interfaces define behaviours, making it easier to distinguish between them in a project.

1.1 Class Names

Class names should be written in PascalCase (also known as UpperCamelCase) and should be nouns that clearly represent the entity. Abbreviations should be avoided.

Correct – Class names use PascalCase

1
2
3
4
5
public class Employee {
 
    private String name;
    private int age;
}

Incorrect – Does not follow PascalCase

1
2
3
public class employee {
 
}

1.2 Interface Names

Interface names should be written in PascalCase and should be adjective-like if they describe a capability, such as Runnable or Comparable. However, if the interface represents an entity, it can be a noun, like List or Map.

Correct – Interface names in PascalCase

1
2
3
4
public interface Printable {
 
    void print();
}

2. Method Naming Conventions

Method names should be written in camelCase (lowerCamelCase) and should be verbs or verb phrases that describe the action performed. Using meaningful names ensures clarity and helps convey the method’s purpose.

Correct – Method names use camelCase

1
2
3
4
5
6
public class Calculator {
 
    public int addNumbers(int a, int b) {
        return a + b;
    }
}

Incorrect – Uses PascalCase instead of camelCase

1
2
3
4
5
6
public class Calculator {
 
    public int AddNumbers(int a, int b) {
        return a + b;
    }
}

3. Variable Naming Conventions

Variable names should be written in camelCase, be descriptive, and clearly reflect the data they store. Single-letter variables like i, j, and k are acceptable for loop counters, while other variables should use nouns to enhance readability and maintainability.

Correct – Uses meaningful names with camelCase

1
2
3
4
5
public class Product {
 
    private String productName;
    private double productPrice;
}

Incorrect – Uses non-descriptive names

1
2
3
4
5
public class Product {
 
    private String pn;
    private double pp;
}

4. Constant Naming Conventions

Constants (final variables) should be written in UPPER_CASE with words separated by underscores (_) and should have descriptive names to clearly indicate their purpose. Many popular frameworks follow this convention for defining fixed values. For example, in Spring Framework, constants like HttpStatus.OK and MediaType.APPLICATION_JSON_VALUE are used for HTTP status codes and media types. Similarly, in Hibernate, constants such as FetchMode.JOIN and LockMode.READ help manage fetching strategies and database locking mechanisms.

These conventions ensure consistency and make it easier for us to understand and use predefined values efficiently.

Correct – Constants use UPPER_CASE

1
2
3
4
5
public class Config {
 
    public static final int MAX_USERS = 1000;
    public static final String APP_NAME = "MyApp";
}

Incorrect – Uses camelCase instead of UPPER_CASE

1
2
3
4
public class Config {
 
    public static final int maxUsers = 1000;
}

5. Package Naming Conventions

Package names should be written in lowercase and typically follow a reversed domain name structure, such as com.companyname.project, to ensure uniqueness and organization. Using only lowercase letters improves readability and prevents inconsistencies across different operating systems. It is also important to avoid underscores, special characters, or uppercase letters, as they can lead to compatibility issues and make the package structure harder to navigate.

Correct – Package names use lowercase

1
package com.example.utilities;

Incorrect – Uses uppercase letters

1
package com.Example.Utilities;

6. Enum Naming Conventions

Enum names should be written in PascalCase to maintain consistency with class and interface naming conventions, making them easily identifiable. Enum constants, on the other hand, should be written in UPPER_CASE to clearly indicate that they are fixed values. This convention improves readability and ensures that enum constants stand out within the code.

Correct – Enum name in PascalCase, constants in UPPER_CASE

1
2
3
4
5
6
public enum OrderStatus {
    PENDING,
    SHIPPED,
    DELIVERED,
    CANCELLED;
}

Incorrect – Enum constants in PascalCase

1
2
3
4
public enum OrderStatus {
 
    Pending, Shipped, Delivered, Cancelled;
}

7. Naming Conventions for Getter and Setter Methods

Getters and setters in Java follow a standard naming pattern to ensure consistency and readability. Methods for retrieving values should follow the getVariableName() format, while methods for setting values should use setVariableName(value). For boolean properties, the getter should use the isVariableName() convention to improve clarity and align with JavaBean standards.

Example

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Person {
 
    private String name;
    private boolean employed;
 
    // Getter
    public String getName() {
        return name;
    }
 
    // Setter
    public void setName(String name) {
        this.name = name;
    }
 
    // Boolean getter
    public boolean isEmployed() {
        return employed;
    }
 
    // Boolean setter
    public void setEmployed(boolean employed) {
        this.employed = employed;
    }
}

8. Naming Conventions for Exception Classes and Java Files

Maintaining proper naming conventions for exception classes, Java files, and test classes ensures consistency, readability, and ease of maintenance across projects.

8.1 Exception Classes

Exception class names should always end with "Exception" and be written in PascalCase. This convention makes it clear that the class represents an exception, following Java’s standard error-handling approach. Many popular frameworks and libraries adopt this convention. For example:

  • Spring Framework provides predefined exceptions like DataAccessException and HttpClientErrorException to handle database and HTTP-related errors.
  • Hibernate includes LazyInitializationException to indicate when an entity is accessed outside a valid session.
  • Java Standard Library itself follows this convention with exceptions like IOException, NullPointerException, and IllegalArgumentException.

Custom exceptions in Java should also follow this pattern for consistency.

Correct – Exception class ends with “Exception”

1
2
3
4
5
6
public class InvalidUserException extends Exception {
 
    public InvalidUserException(String message) {
        super(message);
    }
}

Incorrect – Missing “Exception” in the name

1
2
3
public class InvalidUser extends Exception {
 
}

8.2 Java File Naming

The filename should match the class name exactly and use the .java extension. This ensures that Java compilers and IDEs can correctly locate and reference the class. For example, if a class is named Employee, the file should be named Employee.java.

9. Conclusion

This article explored Java naming conventions and their importance in writing clean, consistent, and maintainable code. By following standard guidelines for naming classes, interfaces, methods, variables, constants and exceptions, we can enhance code readability and ensure better collaboration within teams. Consistency in naming helps prevent confusion, reduces errors, and aligns with industry best practices.

10. Download the Source Code

This article covered Java naming conventions.

Download
You can download the full source code of this example here: java naming conventions

Omozegie Aziegbe

Omos Aziegbe is a technical writer and web/application developer with a BSc in Computer Science and Software Engineering from the University of Bedfordshire. Specializing in Java enterprise applications with the Jakarta EE framework, Omos also works with HTML5, CSS, and JavaScript for web development. As a freelance web developer, Omos combines technical expertise with research and writing on topics such as software engineering, programming, web application development, computer science, and technology.
Subscribe
Notify of
guest


This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button