Рубрики
Без рубрики

Статический класс Java

Статический класс Java. Статический класс в java. статический вложенный класс в примере кода java. пример статического вложенного класса java, пример кода статического класса

Автор оригинала: Pankaj Kumar.

Сегодня мы рассмотрим статический класс java. Это хороший вопрос для собеседования, чтобы проверить ваши знания о вложенных классах в java.

Java не допускает статические классы верхнего уровня, например, если мы попытаемся сделать класс статичным, как показано ниже.

Java не допускает статические классы верхнего уровня, например, если мы попытаемся сделать класс статичным, как показано ниже.

static class Test {

}

Мы получаем следующую ошибку компиляции.

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

Статический класс Java

Итак, возможно ли иметь статический класс в java?

Да, java поддерживает вложенные классы, и они могут быть статическими. Эти статические классы также называются статическими вложенными классами.

Статический вложенный класс Java может обращаться только к статическим членам внешнего класса. Статический вложенный класс ведет себя аналогично классу верхнего уровня и вложен только для удобства упаковки.

Экземпляр статического вложенного класса может быть создан, как показано ниже.

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

Пример статического класса Java

Давайте рассмотрим пример статического класса 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;
		}
	}
}

Теперь давайте посмотрим, как создать экземпляр и использовать статический вложенный класс.

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 называется OuterClass$StaticClass.class . На рисунке ниже показано это для нашего примера программы.

Преимущества статического класса Java

Единственное преимущество, о котором я мог подумать, – это инкапсуляция. Если статический вложенный класс работает только с внешним классом, то мы можем сохранить вложенный класс как статический, чтобы держать их рядом.