java静态类_Java静态类

java静态类

Today we will look into java static class. It’s a good interview question to test your knowledge about nested classes in java.

今天,我们将研究java静态类。 测试您对Java嵌套类的了解是一个很好的面试问题。

Java doesn’t allow top level static classes, for example if we try to make a class static like below.

Java不允许顶层静态类,例如,如果我们尝试使类像下面这样静态化,则是不允许的。

Test.java

Test.java

static class Test {

}

We get following compilation error.

我们得到以下编译错误。

$ javac Test.java 
Test.java:1: error: modifier static not allowed here
static class Test {
       ^
1 error

Java静态类 (Java static class)

So is it possible to have static class in java?

那么有可能在Java中有静态类吗?

Yes, java supports nested classes and they can be static. These static classes are also called static nested classes.

是的,java支持嵌套类,它们可以是静态的。 这些静态类也称为静态嵌套类。

Java static nested class can access only static members of the outer class. Static nested class behaves similar to top-level class and is nested for only packaging convenience.

Java静态嵌套类只能访问外部类的静态成员。 静态嵌套类的行为类似于顶级类,并且仅出于包装方便而嵌套。

An instance of static nested class can be created like below.

静态嵌套类的实例可以如下创建。

OuterClass.StaticNestedClass nestedObj =
     new OuterClass.StaticNestedClass();

Java静态类示例 (Java static class example)

Let’s look at the example of java static class and see how we can use it in java program.

让我们看一下Java静态类的示例,看看如何在Java程序中使用它。

package com.journaldev.java.examples;

public class OuterClass {

	private static String name = "OuterClass";

	// static nested class
	static class StaticNestedClass {
		private int a;

		public int getA() {
			return this.a;
		}

		public String getName() {
			return name;
		}
	}
}

Now let’s see how to instantiate and use static nested class.

现在让我们看看如何实例化和使用静态嵌套类。

package com.journaldev.java.examples;

public class StaticNestedClassTest {

	public static void main(String[] args) {
		
		//creating instance of static nested class
		OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();
		
		//accessing outer class static member
		System.out.println(nested.getName()); 
	}

}

Java静态类文件 (Java static class file)

Java static class file is named as OuterClass$StaticClass.class. Below image shows this for our example program.

Java静态类文件名为OuterClass$StaticClass.class 。 下图显示了我们的示例程序。

Java静态类的好处 (Java static class benefits)

The only benefit I could think of is encapsulation. If the static nested class works only with the outer class then we can keep nested class as static to keep them close.

我唯一想到的好处就是封装。 如果静态嵌套类仅与外部类一起使用,那么我们可以将嵌套类保持为静态,以使它们保持紧密状态。

翻译自: https://www.journaldev.com/12528/java-static-class

java静态类

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值