이 기사는 Java의 정적 사용을 간략하게 분석하며 주로 정적 멤버 변수, 정적 메소드, 정적 블록, 정적 내부 클래스 및 정적 패키지의 5 가지 측면을 분석합니다.
우선, 테이블의 정적 객체와 비 정적 객체의 차이점에 대해 이야기 해 봅시다.
| 정적 객체 | 비 정적 객체 | |
| 속성 | 수업이 있습니다 | 클래스의 각 인스턴스는 독립적으로 소유됩니다 |
| 메모리 할당 | 메모리 공간에서 수정되었습니다 | 제휴 수업 할당 |
| 우주 순서 할당 | 정적 객체 공간의 할당에 우선 순위를 정합니다 | 우선 순위는 정적 객체 공간을 할당하며 초기화에 대해서도 마찬가지입니다. |
1 정적 변수, 정적 메소드, 정적 블록
정적 객체와 정적 메소드는 원래 객체 및 메소드의 정적 키워드로 장식되어 있으며, 클래스는 전화를 걸기 전에 인스턴스화하지 않고 직접 호출 할 수 있음을 나타냅니다. 이점은 다음과 같습니다.
1-- 정적 객체의 데이터는 전 세계적으로 고유하며 데이터의 독창성을 보장 할 수 있습니다.
2-- 인용 할 수 있습니다. 클래스 이름과 메소드 (속성)를 직접 사용하십시오.
물론 정적 메소드 (변수, 블록)도 해당 제한 사항이 있습니다.
1-NO 다른 비 정적 메소드를 호출 할 수 있습니다 (정적 메소드 만 호출 할 수 있음)
2-- 정적 데이터에 액세스합니다
3--이 또는 슈퍼는 어떤 식 으로든 참조 할 수 없습니다
샘플 코드 :
public class staticexercise {public static string sky = "Jeyson"; public static string getmysky (String Sky) {return sky;} static {systation.out.println ( "이것은 정적 블록의 내용입니다-"); Systation.println ( "정적 블록 :"+getmysky (sky)); 전 세계적으로 독특하며 데이터가 고유한지 확인할 수 있습니다. * 2- 참조는 편리합니다. 세트없이 클래스 이름과 메소드를 사용하십시오. 초기화 순서는 동일* *** 정적 최종 수정 된 멤버 변수 및 멤버 메소드는 글로벌 변수로 이해 될 수 있습니다 (Java에는 글로벌 변수의 개념이 없습니다) *** 정적 객체, 메소드 및 블록의 한계는 다음과 같습니다.* 1 전용 통화 기타 정적 데이터* 2 전용 액세스 또는 슈퍼*는 정적 개체 또는 초를 참조 할 수 없습니다. teststatic1 () {system.out.println (sky); system.out.println ( "------------------"); System.out.println (getMysky (sky)); System.out.println ( "---------------"); System.out.println (statictest.getsms ()); 2 정적 내부 클래스
한 클래스가 다른 클래스 (외부 클래스)와 밀접한 관련이 있고 클래스는 일반적으로 외부 클래스를 사용하는 경우에만 사용되면 클래스는 정적 내부 클래스로 사용할 수 있습니다. 클래스가로드 될 때 직접 생성 할 수 있습니다. 그것을 인스턴스화 할 필요가 없습니다.
사용법 방법 : 클래스와 함께로드하고 직접 외부 클래스, 내부 클래스, 정적 개체 (메소드) 호출
샘플 코드 :
클래스 statictest {public static string sms = "my sky"; public static string getsms () {return sms;}/*** 정적 내부 클래스**** 사용 시나리오 :*내부 클래스는 외부 클래스와 밀접하게 관련되어 있으며이 클래스는 일반적으로 외부 클래스와 밀접한 관련이 있습니다 *** 사용*클래스에 직접로드됩니다. 내부 수업. static 객체 (method)*/static class innastatic {public static final string mysky = "나의 최종 하늘";}} @testpublic void teststatic2 () {system.out.println (statictest.innerstatic.mysky);} 2 정적 가이드 패키지
사용하려는 정적 메소드가 현재 클래스와 동일한 패키지에 있지 않은 클래스가 정적 전달 패키지를 사용할 수 있습니다. 이러한 방식으로, 사용하려는 정적 메소드 또는 변수는 클래스에서 직접 보이는 것과 같으며 클래스 이름 또는 정적 변수를 호출 할 필요가 없습니다.
사용 방법 :
정적 패키지 가져 오기 name.class name.static 멤버 변수 (메소드)
혜택:
수입 된 정적 변수 및 메소드는이 클래스에서 직접 볼 수 있으며 직접 사용됩니다.
피해:
어느 정도까지 코드의 가독성이 줄어 듭니다.
Code example:
public class mystaticimporttest {public static final int number = 55; public static void getmywords () {systation.out.println ( "안녕하세요, 정적 리드 패키지의 테스트입니다");}} import static com.generic.mystaticimporttest.number; import static com.generic.myport.ggetmy*/*@decorts; 클래스 staticexercise {/*** 정적 리드 패키지* *** 사용법 방법 :* 직접 정적 가져 오기 해당 변수 및 메소드 : (정적 패키지 이름을 가져옵니다. 클래스 이름을 가져옵니다. 정적 멤버 변수 (메소드)* import static com.generic.mystaticimporttest.number;* import static com.generic.mystaticimporttest.number; 이 클래스는 클래스 이름을 줄 필요가 없습니다* *** 단점* 어느 정도까지 코드의 가독성을 줄입니다*/@testpublic void teststatic3 () {// 정적 가져 오기 후에는 int myNumber = 숫자; getmywords ();}}을 사용할 수 있습니다.위의 것은 편집자가 소개 한 Java의 정적 키워드 사용에 대한 간단한 분석입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!