1. 자바의 정적으로 사용되는 정적 변수
1. 정적으로 수정 된 Java의 멤버를 정적 멤버 또는 클래스 멤버라고합니다. 그것은 전체 클래스에 속하며, 객체가 아니라, 즉 클래스의 모든 객체에 의해 공유되며 객체보다 우선 순위가 있습니다. 정적 멤버는 클래스 이름이나 객체 이름을 사용하여 직접 액세스 할 수 있습니다. 정적을 사용하여 변수, 메소드 및 코드 블록을 수정하십시오.
2. 공개 수정자는 공개 및 공개를 나타내며 정적 변수는 정적 변수로 수정됩니다.
3. 정적 방법에서는 동일한 클래스의 정적 멤버를 직접 호출 할 수 있지만 비 정적 멤버는 직접 호출 할 수 없습니다.
공개 클래스 Hellworld {String name = "java"; // 비 정적 변수 정적 문자열 취미 = "프로그래밍"; // 정적 변수 public static void print () {System.out.println ( "환영 :" + name + "!"); // 비 정적 변수 system.out.println ( "환영 :" + Hobby + "!"); // 정적 변수를 직접 호출 할 수 있습니다}}4. 정적 메소드에서 비 정적 변수를 호출하려면 클래스의 객체를 작성한 다음 객체를 통해 비 정적 변수에 액세스 할 수 있습니다.
공개 클래스 helloworld {문자열 이름 = "java"; // 비 정적 변수 정적 문자열 취미 = "프로그램"; // 정적 변수 // 비 정적 변수 public static void print () {// 클래스의 객체 생성 hello = new HelloWorld (); // 객체를 사용하여 정적 변수 system.out.println을 정적 메소드로 호출합니다 ( "환영 :"+hello.name+"!"); // 정적 메소드에서 정적 변수 system.out.printn ( "welcome"+program+""+hello.name)을 직접 호출 할 수 있습니다. }}5. 일반 멤버 방법에서는 동일한 유형의 비 정적 변수 및 정적 변수에 직접 액세스 할 수 있습니다.
공개 클래스 Hellworld {String name = "java"; // 비 정적 변수 정적 문자열 취미 = "프로그래밍"; // 정적 변수 public void print () {// 일반 메소드 System.out.println ( "환영 :" + name + "!"); System.out.prinltn ( "오신 것을 환영합니다"+program+"+hello.name);}}6. 비 정적 방법은 정적 방법으로 직접 호출 할 수 없습니다. 비 정적 메소드는 객체를 통해 액세스해야합니다.
공개 클래스 hellworld {문자열 이름 = "java"; // 비 정적 변수 정적 문자열 취미 = "프로그램"; // 정적 변수 // 비 정적 메소드 public void show () {System.out.println ( "정적 메소드이며 정적 메소드로 직접 호출 할 수 없습니다 ...."); } // 정적 메소드 public static void show2 () {System.out.println ( "나는 정적 메소드이며 정적 메소드로 직접 호출 할 수 있습니다"); } // 비 정적 메소드는 정적 메소드의 객체를 통해 호출됩니다. 정적 메소드를 직접 호출 할 수 있습니다 public static void print () {// 클래스의 객체를 만듭니다 Hello = New HelloWorld (); // 정적 메소드가 아닌 메소드를 계산합니다. // 정적 메소드 계산 show2 (); }}2. Java에서 사용되는 정적 초기화 블록
1. 클래스 선언에는 여러 초기화 블록이 포함될 수 있습니다. 클래스의 인스턴스가 만들어지면 이러한 코드 블록이 차례로 실행됩니다. STATIC을 사용하여 초기화 블록을 수정하면 정적 초기화 블록이라고합니다.
2. 인스턴스 변수와 클래스 변수의 차이 :
a) 저장 위치 : 클래스 변수는 클래스가로드 될 때 메소드 영역에 저장됩니다. 인스턴스 변수는 객체가 설정 될 때 힙 메모리에 존재합니다.
b) 수명주기 : 클래스 변수의 수명주기는 가장 길고 클래스가 사라짐에 따라 사라집니다. 인스턴스 변수의 수명주기는 객체가 사라짐에 따라 사라집니다.
3. 정적 초기화 블록은 클래스가로드 된 경우에만 실행되며 한 번만 실행됩니다. 동시에 정적 초기화 블록은 정적 변수에만 값을 할당 할 수 있으며 일반 멤버 변수를 초기화 할 수 없습니다. 프로그램이 실행될 때 정적 초기화 빠른 빠른 속도가 먼저 실행되고 기본 기능보다 우선합니다. 그러면 일반 초기화 블록이 실행되고 마지막으로 구성 방법이 실행됩니다.
public class staticdemo {int num1; // 선언 변수 1 int num2; // 변수 선언 2 static int num3; // 정적 변수 선언 3 public staticdemo () {// 생성자 메소드 num1 = 88; System.out.println ( "구조 방법을 통해 변수 1에 값 지정"); } {// 초기화 블록 Num2 = 99; System.out.println ( "초기화 블록을 통해 변수 2에 값 지정"); } static {// 정적 초기화 여기서 정상화는 value num3 = 77을 할당 할 수 없습니다. System.out.println ( "정적 초기화 블록을 통해 정적 변수 3에 값 지정"); } public static void main (String [] args) {staticdemo hello = new staticDemo (); // 클래스 hello system.out.println ( "num1 :" + hello.num1)의 개체를 만듭니다. System.out.println ( "num2 :" + hello.num2); System.out.println ( "num3 :" + hello.num3); staticdemo hello1 = new staticDemo (); }} 실행 결과 :