Java中的静态类

概述

Java允许在一个类被定义在其他类的内部。这样的类叫做内部类。很多程序员都知道,类可以是静态的。Java支持静态的实例变量,静态方法,静态代码块和静态类。内部有嵌入类的被定义的类叫做外部类。

一个内部类的实例是不能离开外部类的实例而被创建。因此,一个内部类的实例可以访问它的外部类的所有成员,而不需要借助外部类实例的引用。由于这个原因,内部类能够帮助我们让程序更简洁明了。

静态与非静态内部的区别

  • 静态的内部类可以脱离外部类的实现化而单独实例化
  • 非静态的内部类可以访问外部类的静态和非静态成员。静态的内部类只能访问外部类的静态成员。

示例如下:

1、定义一个MeritStudent的类,它包含两个内部类,一个是非静态的,一个是静态的,代码如下:

public class MeritStudent {
    static String NAME = "XiaoMing";
    int STUDENT_NO = 22;

    public void hello(){
        Person person = new Person();
        Student student = new Student();
        System.out.println("hello," + person.personName + ", my student-no is " + student.studentNo);
    }

    class Student {
        //学号
        private int studentNo = STUDENT_NO;
    }

    static class Person {
        //姓名
        private String personName = NAME;
    }
}

2、编写测试代码

public class Test {

    public Test(){
        MeritStudent a = new MeritStudent();
        a.hello();
    }

    public static void main(String[] args) {
        new Test();
    }
}

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注