> Java > java지도 시간 > 정적 변수에 대한 정적 메소드의 접근성을 확인하는 Java 프로그램

정적 변수에 대한 정적 메소드의 접근성을 확인하는 Java 프로그램

WBOY
풀어 주다: 2023-08-26 17:25:06
앞으로
998명이 탐색했습니다.

정적 변수에 대한 정적 메소드의 접근성을 확인하는 Java 프로그램

소개

Java에서는 변수와 메소드를 정적으로 정의할 수 있습니다. 정적 변수나 메서드는 해당 클래스의 개별 개체가 아닌 클래스 자체에 속합니다. 따라서 해당 클래스의 객체를 만들지 않고도 클래스 이름을 사용하여 정적 변수나 메서드에 액세스할 수 있습니다.

이 프로그램에서는 정적 메서드를 통해 정적 변수의 접근성을 확인하는 방법을 살펴보겠습니다. 정적 변수가 있는 클래스와 변수에 액세스하는 정적 메서드를 정의하겠습니다. 그런 다음 정적 메서드를 호출하여 정적 변수에 액세스할 수 있는지 확인합니다.

정의

정적

static 키워드는 Java에서 해당 클래스의 객체를 만들지 않고도 여러 클래스에서 액세스할 수 있는 유틸리티 메서드나 변수를 만드는 데 매우 유용합니다. 또한 클래스의 모든 인스턴스에서 동일한 상수 값을 유지하는 데 사용됩니다. 그러나 정적 변수 및 메소드를 사용하면 스레드 안전성, 테스트 어려움 등의 잠재적인 문제가 발생할 수 있으므로 주의해서 사용해야 합니다.

다음은 Java의 정적 기능 중 일부입니다 -

  • 정적 변수

  • 정적 메서드

  • 정적 블록

  • 정적 중첩 클래스

정적 변수 - 정적 변수는 클래스의 모든 인스턴스에서 공유되는 클래스 수준 변수입니다. 이는 static 키워드를 사용하여 정의되며 클래스가 로드될 때 한 번만 초기화됩니다. 정적 변수에 액세스하려면 클래스 이름 뒤에 점 연산자를 사용하십시오.

사례 1: 정적 변수를 통해 정적 메서드에 액세스

공용 액세스 한정자를 사용하여 정적 메서드를 선언하면 정적 변수가 포함된 클래스를 포함하여 다른 모든 클래스가 해당 메서드에 액세스할 수 있습니다. 이 경우 public 접근 한정자로 선언된 정적 변수는 static 메서드를 통해 접근할 수 있습니다.

그러나 private 접근 한정자를 사용하여 정적 메서드를 선언하면 동일한 클래스 내에서만 접근할 수 있습니다. 이 경우 public 액세스 한정자를 사용하여 선언하더라도 static 메서드를 통해 정적 변수에 액세스할 수 없습니다.

방법

  • 필요한 I/O 라이브러리를 가져오려면 "import" 문을 사용하세요.

  • "Tutorialspoint"라는 Java 클래스를 정의합니다.

  • int 유형의 정적 변수 "i"를 선언하고 값 100을 할당합니다.

  • 공개, 정적, 무효 서명으로 main() 메서드를 정의하고 "args"라는 문자열 매개변수 배열을 사용합니다.

  • main() 메서드에서 System.out.println() 메서드를 사용하여 정적 변수 "i"의 값을 콘솔에 표시합니다.

  • "Tutorialspoint.java"라는 Java 파일에 코드를 저장하세요.

  • Java 컴파일러(예: "javac")를 사용하여 Java 코드를 컴파일합니다.

  • "main" 메서드를 실행하고 콘솔에 "Static Variable = 100" 출력을 표시하는 "java" 명령을 사용하여 Java 코드를 실행합니다.

으아아아

이 예에서 "Tutorialspoint"라는 클래스는 정수 데이터 유형의 "i"라는 정적 변수로 정의되고 값 100으로 초기화됩니다.

이 클래스의 기본 메서드는 공개, 정적, 무효 서명으로 정의되며 "args"라는 문자열 매개 변수 배열을 사용합니다.

메인 메소드에서 System.out.println() 메소드를 사용하여 정적 변수 "i"의 값을 인쇄합니다. 출력 문에는 정적 변수 "i"의 값과 연결된 문자열 "Static Variable="이 포함되어 있습니다.

이 프로그램을 실행하면 정적 변수 “i”의 값이 100으로 설정되어 있으므로 “Static Variable = 100”이 출력됩니다.

출력

정적 변수는 클래스의 인스턴스가 아닌 클래스에 속하는 변수입니다. 즉, 클래스의 모든 인스턴스는 정적 변수의 복사본 하나만 공유합니다. 즉, 정적 변수는 클래스의 개체를 만들지 않고도 액세스할 수 있는 클래스 수준 변수입니다.

으아아아

사례 2: 정적 메서드를 통해 정적 변수에 액세스

공용 액세스 한정자를 사용하여 정적 변수를 선언하면 정적 메서드가 포함된 클래스를 포함하여 다른 모든 클래스가 변수에 액세스할 수 있습니다. 이 경우 정적 변수가 public 액세스 한정자로 선언된 경우 정적 메서드를 통해 액세스할 수 있습니다.

단, private 접근 한정자를 사용하여 정적 변수를 선언하면 동일한 클래스 내에서만 접근할 수 있습니다. 이 경우 public 액세스 한정자를 사용하여 선언하더라도 정적 메서드는 정적 변수에 액세스할 수 없습니다.

이 경우 클래스에서 정적 변수, 정적 배열 및 정적 메서드를 선언했습니다. 정적 메서드는 정적 변수와 정적 배열에 모두 액세스하므로 메서드를 호출할 때 클래스의 인스턴스를 만들 필요가 없습니다.

정적 변수와 정적 배열은 모두 클래스에 속하고 클래스의 특정 인스턴스에 속하지 않기 때문에 클래스의 인스턴스를 생성하지 않고 메소드를 호출하더라도 정적 메소드를 통해 액세스할 수 있습니다.

방법

  • 새 Java 클래스 파일을 만들고 이름을 MyClass.java로 지정합니다.

  • MyClass.java 파일에서 count라는 전용 정적 정수 변수를 선언하고 0으로 초기화합니다.

  • 声明一个名为 myArray 的私有静态整数数组,并使用一些值对其进行初始化,例如 myArray = new int[]{1, 2, 3, 4, 5};

  • 声明一个名为 myStaticMethod() 的公共静态方法,它执行以下操作 -

    • 将 count 的值增加 1。

    • 使用 System.out.println() 将 count 的值打印到控制台。

    • 循环遍历 myArray 数组并使用 System.out.println() 将每个元素打印到控制台。

  • 保存 MyClass.java 文件。

示例

public class MyClass {
   private static int count = 0;
   private static int[] myArray = new int[]{1, 2, 3, 4, 5};
       
   public static void myStaticMethod() {
      count++;

      System.out.println("Count: " + count);
              
      for (int i = 0; i < myArray.length; i++) {
         System.out.println(myArray[i]);
      }
   }
}
로그인 후 복사
  • 创建一个新的 Java 类文件并将其命名为 Main.java。

  • 在 Main.java 文件中,添加 main() 方法。

  • 在 main() 方法中,使用类名称后跟方法名称和括号来调用 MyClass 类的 myStaticMethod() 方法,例如 MyClass.myStaticMethod();。

  • 保存 Main.java 文件。

public class Main {
   public static void main(String[] args) {
      MyClass.myStaticMethod();
   }
}
로그인 후 복사
  • 通过在命令提示符或终端中运行命令 javac MyClass.java Main.java 来编译 MyClass.java 和 Main.java 文件。

  • 通过在命令提示符或终端中运行命令 java Main 来运行程序。

在此示例中,我们有一个 MyClass 类,其中包含静态变量 count 和静态数组 myArray,以及静态方法 myStaticMethod()。 myStaticMethod() 方法将 count 的值加 1,将 count 的值打印到控制台,然后循环遍历 myArray 数组并将每个元素打印到控制台。

输出

在 Main 类中,我们通过使用类名后跟方法名和括号来调用 MyClass 类本身(而不是该类的任何实例)上的 myStaticMethod() 方法。此方法调用将执行 myStaticMethod() 方法并将以下内容输出到控制台 -

Count: 1
1
2
3
4
5
로그인 후 복사

结论

  • 在 Java 中,静态变量和静态方法与类本身相关联,而不是与类的任何特定实例相关联。这意味着静态方法可以直接访问静态变量,只要该变量与该方法在同一个类中定义即可。

위 내용은 정적 변수에 대한 정적 메소드의 접근성을 확인하는 Java 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿