>  기사  >  백엔드 개발  >  정적, 언제 사용할지, 언제 사용하지 않을지

정적, 언제 사용할지, 언제 사용하지 않을지

WBOY
WBOY원래의
2016-07-30 13:30:322061검색

정적을 학습한 후 학생들은 모두 정적을 사용하는 것을 느꼈습니다. 으로 수정한 멤버는 특히 편리하고 객체를 생성하지 않고도 사용할 수 있지만, static으로 수정한 멤버는 더 번거롭습니다. . , 이를 사용하려면 객체를 만들어야 하지만 메서드를 정의할 때 static을 거의 사용하지 않습니다. 왜, 언제 static을 사용하고 언제 static을 사용하지 않는가? 옷감?

정적인 멤버들의 특성은 잠시 접어두고 static멤버의 의미를 수정합니다.

클래스의 멤버가 static에 의해 수정된 후 해당 멤버는 클래스는 멤버이고 모든 개체에서 공유됩니다. 멤버가 멤버 변수인 경우 멤버와 멤버의 값은 멤버 메서드인 경우 모든 개체에서 공유됩니다. 반대로, 멤버가 쓸모없다면 정적 이때 각 개체에는 자체 멤버가 있다고 말할 수 있습니다. 각 객체의 멤버는 이에 대해 비공개이며 컨트롤의 비공개 권한은 서로 다릅니다. 상상할 수 있듯이 공유 메서드는 공유 멤버에만 액세스할 수 있고 개체의 전용 멤버에는 액세스할 수 없지만 개체의 프라이빗 멤버 메서드는 공유 멤버에 액세스할 수 있습니다. 예를 들어, 우리가 공익을 위해 일할 때는 반드시 공적 자금을 쓸 것이며, 절대 사적 자금을 쓰지 않을 것입니다. 이것이 static수정된 멤버만이 static에 의해 수정된 멤버에만 액세스할 수 있는 이유입니다. static 수정된 멤버 메서드, static 수정된 초기화 블록과 같은 멤버 static에 의해 수정된 내부 클래스의 경우에도 마찬가지입니다. 어떤 사람들은 static을 static 또는 global로 이해하는데, 이는 실제로 유사합니다. 왜냐하면 static은 동적에 해당하고, global은 로컬에 해당하기 때문입니다. 이해해요?

실제 개발에서 클래스에 멤버 변수를 정의하는 이유는 클래스에 서로 다른 상태의 객체가 있기 때문입니다. 클래스에서 우리는 일반적으로 나이 및 이름과 같은 속성을 정의하며, 다른 사람들(여기서는 인간 클래스의 개체)이 나이와 이름을 가지지만, 각각은 자신의 나이와 이름을 갖습니다. 이는 위에서 언급한 각 개체가 비공개입니다. 이 개체. 나이와 이름을 정적으로 정의하면 모든 사람이 같은 나이와 이름을 가지게 되는데 이는 당연히 말이 되지 않습니다.

이제 언제 static을 사용하여 멤버 메서드를 수정해야 하는지 답해 보세요.

멤버 메서드가 비정적회원님들은 그냥 정적을 이용하세요. 즉, 메소드 실행이 객체 자체의 상태와 아무런 관련이 없는 한 static을 사용할 수 있습니다(이 결론은 너무 서두르세요). 이러한 유형의 메서드는 일반적으로 들어오는 매개 변수만 처리하며 실행 프로세스는 잘 알려진 Integer문자열.

                 정수.toBinaryString(10);

String.valueOf( 12);

정수문자열정적 멤버가 있더라도 이 두 가지 방법은 비정적회원은 상호작용하므로 정적이라고 정의할 수 있습니다.

보통 도구 클래스를 정의할 때 해당 메서드를 static으로 정의합니다. 도구로 사용되며 상태가 아닌 동작에만 초점을 맞추기 때문에 멤버 변수를 정의할 필요가 없습니다. 이 도구 클래스 방법을 사용하면 개체를 만들 필요가 없으므로 간단하고 리소스가 절약됩니다. 호출할 객체를 생성하는 것은 번거롭고 자원을 낭비하기 때문에 이 클래스를 설계한 후에는 생성 방법이 비공개로 설계되었기 때문에 단순히 객체 생성이 허용되지 않았습니다. 권한을 드립니다. 예를 들어 MathArrays컬렉션. 이 세 가지 클래스는 java에서 가장 일반적인 세 ​​가지 도구 클래스입니다.

static은 실제 개발에서 다양하게 활용될 수 있습니다. static의 의미를 이해해야만 독창성.

위에서는 정적을 사용하는 경우와 사용하지 않는 경우를 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.