search
HomeJavajavaTutorialDetailed explanation of code examples of Static class in Java

This article mainly introduces Static class detailed explanation and related information of example code in Java. In Java we can have staticinstanceVariables, static methods, static blocks. Classes can also be static. Friends in need can refer to

Detailed explanation of Static class in Java

Can classes in Java be static? The answer is yes. In Java we can have static instance variables, static methods, and static blocks. Classes can also be static.

Java allows us to define static classes within a class. Such as inner class (nested class). The class that encloses the nested class is called an outer class. In java, we cannot use static to modify the top-level class (top level class). Only inner classes can be static.

What is the difference between static inner classes and non-static inner classes? Here are the main differences between the two.

(1) Internal static classes do not need to have references pointing to external classes. But non-static inner classes need to hold a reference to the outer class.

(2) Non-static inner classes can access static and non-static members of outer classes. Static classes cannot access non-static members of outer classes. He can only access static members of the outer class.

(3) A non-static inner class cannot be created without the outer class entity. A non-static inner class can access the data and methods of the outer class because it is inside the outer class.

Based on the above discussion, we can use these features to make programming simpler and more effective.


/* 下面程序演示如何在java中创建静态内部类和非静态内部类 */
class OuterClass{
  private static String msg = "GeeksForGeeks";

  // 静态内部类
  public static class NestedStaticClass{

    // 静态内部类只能访问外部类的静态成员
    public void printMessage() {

     // 试着将msg改成非静态的,这将导致编译错误 
     System.out.println("Message from nested static class: " + msg); 
    }
  }

  // 非静态内部类
  public class InnerClass{

    // 不管是静态方法还是非静态方法都可以在非静态内部类中访问
    public void display(){
     System.out.println("Message from non-static nested class: "+ msg);
    }
  }
} 

class Main
{
  // 怎么创建静态内部类和非静态内部类的实例
  public static void main(String args[]){

    // 创建静态内部类的实例
    OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();

    // 创建静态内部类的非静态方法
    printer.printMessage();  

    // 为了创建非静态内部类,我们需要外部类的实例
    OuterClass outer = new OuterClass();    
    OuterClass.InnerClass inner = outer.new InnerClass();

    // 调用非静态内部类的非静态方法
    inner.display();

    // 我们也可以结合以上步骤,一步创建的内部类实例
    OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();

    // 同样我们现在可以调用内部类方法
    innerObject.display();
  }
}

The above is the detailed content of Detailed explanation of code examples of Static class in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment