Grab Deal : Flat 30% off on live classes + 2 free self-paced courses! - SCHEDULE CALL

- Java Blogs -

What Is Static Class In Java? List of Static Nested Classes In Java

Today, you can run applications over the web only if your system supports the Java. Java was first introduced by Sun Microsystem in 1995 and it has been into existence for than two decades now. This is one of the best programming languages introduced so far and highly secure too. It is widely accepted by organizations due to its efficiency, power and easy to use features.

Here, in this post, our main objective is exploring static classes in Java to make little more proficient and knowledgeable on the Java platform. For the basic understanding of the Java programming language, it must be installed on your system first. In case, you don’t have JRE (Java runtime environment), you can download it for free from official Microsystem website and use with your system.

Before we directly start our discussion with static classes, this is necessary first understanding the basics of Java including classed and objects in Java. In Java, static keyword is majorly used to define how to manage objects in the memory. Basically, static objects always belong to the class instead of class instances. So, variables, methods, and nested classed, all can be declared as static. We will discuss each of them in detail later.

What are the classes and nested classes in Java?

Class in Java

Java is an object-oriented programming language. In Java, a class is nothing but a collection of objects. This is a universal template where objects of different categories can be created. For example, take the example of a real-world object i.e. car then there are different types of car models available so far and all of them have different features and amenities. To declare a class with the name Car in Java, we can use the simple syntax as given below -

class Car {

//code that may include field, method declaration, and constructor


Here, under the class car, you can define multiple objects to give unique features or models.

Read: Get Splunk Certifications – Meet Industry Standards & Propel Career Growth

Nested Class in Java

Java supports the concept of nested classes too. Nested classes are classes that could be defined within the body of another class. So, you must be wondering why should you use nested classes in Java? As the name suggests, nested classes allow you to group together a set of logically connected classes.

With the help of nested classes, the code becomes more readable and less complex too. It also helps in implementing the concept of encapsulation i.e. data hiding in a more amazing manner. Also, you can manage the code more gracefully and you could spot mistakes or make changes wherever it is required.

The classes that are defined within the body of another class, it is called the nested class. If classes are defined in the outer body then it is named as the outer class. We cannot say that nested classes or sub-classes or somewhat the same. Sub-classes could not access the private members of its parent class while nested classes have permission to access private members of its parent class. This is the reason why nested classes are always preferred over the sub-classes.

Let us continue with our previous example “Car” for a better understanding of the concept. For example, taking the car as the main class, you could create one more nested class within it like sedans, SUVs, luxury etc. Further, we could add new member objects to the freshly created objects. For example, in the SUV class, you could further add specific types of SUVs with different brand names. Here is the syntax for nested classes that are used by Java programmers:

Nested Class in Java

What are static classes in Java?

You must be wondering why we are discussing nested classes in Java but it is necessary because only nested classes can be declared as the static classes. In case, you are trying to declare a top-level class as the static class then you will get an error. So, what we meant by static classes exactly? These are the nested classes that behave similarly to the top-level classes even if they appear in the beginning, middle or at the bottom of the program hierarchy within a class only.

For static classes, you don’t need any reference of the outer class but they are acting like an outer class themselves. If we take the example of normal non-static nested classes then we need the reference of outer class in that case. In simple words, static classes are always independent of the outer class while inner classes are dependent on the outer class.

Read: What is Java String? How to Declare String Array in Java with Example

The syntax for declaring static classes in Java –

The syntax for declaring static classes in Java

Here again, we are taking the example of a car class to show how to make it static. Here, the keyword static ensures that class sedan will always be used as the outer class only. A static class can access only static members of an outer class. In the case of non-static nested classes, it could access both static and non-static members of a class. In this way, static nested classes can always interact with other parts of the program too and increase reusability.

The syntax for declaring an object within a static class –

This is possible to access the static class by adding the name of its outer class. For example: car.sedans

The object for a static class can be created only if it is accessed by the outer class that is true for almost all nested classes. Its syntax could be given as below:

Car.sedans outdatedsedan = new car.sedans ();

Here, you will be creating a new object with the help of a new keyword in the above example.

How to implement a static class in Java?

To implement a static class in Java, you need to check how static members of a class accesses its outer class and it can be made possible through static keyword only. How to implement a static class in Java? If you would look at the program closely then the message is declared as static string variable here. Because of its static nature, we are able to access the sedan class too. When the compiler will run the program, it will give the output as “Cars are meant for transportation”.

What are the benefits of static classes in Java?

A static class like any other nested class can always access the private members and methods of the outer class. Static classes are declared to remove restrictions on member classes of an outer class. In case, outer class functionalities are limited then we need a member class here to perform more functions.

Read: Difference between Array Length vs String Length () Function in Java

This is the reason why we are using a static keyword here to offer added functionalities. Keep in mind that one static class can never be instantiated. This is not possible for static classes to access non-static members of a class directly. The only way to interact with members is an object reference. So, there is both advantage and disadvantage of a static class.

What are the major differences between static and non-static nested classes?

The other name for non-static classes is inner classes. In this section, we will check the major differences between static and non-static nested classes.

Static Nested Classes Non-static Nested Classes
Static Nested classes don’t need any reference of the outer class. Non-static or inner classes need the reference of the outer class.
A static class cannot access non-static members of the outer class. It can access static members only. In the case of inner classes, it could access both static and non-static members of the outer class.
Static classes are always independent of the outer class. Non-static or Inner classes are dependent on the outer class.

The Static method, variable, and a block in Java

A static variable in Java is the variable that is initiated at the start of the execution. It belongs to class only not an object. A single copy of static variable is shared among multiple class instances. You just have to initialize the static variable once at the beginning of execution of the program. The variables are initialized first before initializing the instances of variables. This is possible accessing static variables directly and here you don’t need any object.

The syntax for a static variable could be given as below –


A static method in Java belongs to class only not an object. A method is allowed to access only static data. A method belongs to class only not the instances. They cannot access the non-static data. A static method could call another static method, it does not have the authority of working with non-static methods.

The syntax for a static method could be given as below –


A static block in Java is used to initiate other static variables. The block will be executed as soon as class is loaded into memory. A single class could have multiple static blocks that are executed at the same time based on the order or sequence as given into the program. As we said, blocks are executed in sequence, so values initiated by first will be overwritten by others.

The syntax for a static block could be given as below –

With this discussion, you must have got a better understanding of static classes in Java and how to implement them successfully. Now you are almost on the way of writing your own Android app in Java, or your first Java-based website too. If you have any confusion then dive a little deeper and create your own strategy for writing a good Java-based program.

Read: Java String Functions & Methods with Examples

fbicons FaceBook twitterTwitter lingedinLinkedIn pinterest Pinterest emailEmail


    JanBask Training

    A dynamic, highly professional, and a global online training course provider committed to propelling the next generation of technology learners with a whole new way of training experience.

  • fb-15
  • twitter-15
  • linkedin-15


Trending Courses

Cyber Security Course

Cyber Security

  • Introduction to cybersecurity
  • Cryptography and Secure Communication 
  • Cloud Computing Architectural Framework
  • Security Architectures and Models
Cyber Security Course

Upcoming Class

16 days 05 Jul 2024

QA Course


  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing
QA Course

Upcoming Class

8 days 27 Jun 2024

Salesforce Course


  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL
Salesforce Course

Upcoming Class

7 days 26 Jun 2024

Business Analyst Course

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum
Business Analyst Course

Upcoming Class

9 days 28 Jun 2024

MS SQL Server Course

MS SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design
MS SQL Server Course

Upcoming Class

9 days 28 Jun 2024

Data Science Course

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning
Data Science Course

Upcoming Class

2 days 21 Jun 2024

DevOps Course


  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing
DevOps Course

Upcoming Class

5 days 24 Jun 2024

Hadoop Course


  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation
Hadoop Course

Upcoming Class

2 days 21 Jun 2024

Python Course


  • Features of Python
  • Python Editors and IDEs
  • Data types and Variables
  • Python File Operation
Python Course

Upcoming Class

17 days 06 Jul 2024

Artificial Intelligence Course

Artificial Intelligence

  • Components of AI
  • Categories of Machine Learning
  • Recurrent Neural Networks
  • Recurrent Neural Networks
Artificial Intelligence Course

Upcoming Class

10 days 29 Jun 2024

Machine Learning Course

Machine Learning

  • Introduction to Machine Learning & Python
  • Machine Learning: Supervised Learning
  • Machine Learning: Unsupervised Learning
Machine Learning Course

Upcoming Class

23 days 12 Jul 2024

 Tableau Course


  • Introduction to Tableau Desktop
  • Data Transformation Methods
  • Configuring tableau server
  • Integration with R & Hadoop
 Tableau Course

Upcoming Class

2 days 21 Jun 2024

Search Posts


Receive Latest Materials and Offers on Java Course