안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요^^
공부를 하다가 예제에서 static void 메서드를 사용하는데요
static 메서드를 사용하는 이유가 무엇인지 궁금합니다
보통
public 공동 사용?
private 나만 사용?
을 주로 사용하여 static 을 왜 사용하는지 궁금합니다^^
공부를 하다가 예제에서 static void 메서드를 사용하는데요
static 메서드를 사용하는 이유가 무엇인지 궁금합니다
보통
public 공동 사용?
private 나만 사용?
을 주로 사용하여 static 을 왜 사용하는지 궁금합니다^^

2011.03.15 08:04:09
static은 접근 제한자인 public/private 등과는 다릅니다
static은 프로그램 안에서 단 하나만 존재하며 사용하지 않더라도 생성이 되는 "정적"인 존재입니다
프로그램 실행시 정적으로 생성되므로 자주 사용하지 않을 경우는 메모리만 잡아먹을 수 있습니다.
공용으로 자주 사용하지만 여러개가 동시에 필요하지 않는 유틸쪽의 함수일 경우 static으로 선언하곤 합니다.
보통은 public static 함수이죠
물론 private static 함수도 있는데 이는 static에서는 static밖에 사용을 못하므로 public static 함수 내에서 사용하는 경우에 만듭니다
도움이 되셨는지 모르겠네요
2011.03.15 09:06:37
함수에서 static은 크게 2가지 의미로 쓰일수 있습니다. 우선 클래스와 상관없는 일반 함수에서는 일종에 private 개념으로 사용될수 있습니다. C언어를 예로 들자면 xxx.c 에 구현된 static 함수는 타 소스코드에서는 호출할수 없게됩니다. 두번째로 클래스속에 선언된 static험수는 조금 다른의미로 해석될수있습니다. 즉 클래스의 인스턴스를 생성하지 않고 호출할수 있는 함수가 됩니다. 이런 함수가 필요한 이유는 어떤 클래스와 관계된 어떤 기능이 인스턴스가 생성될 필요가 없거나( Math같은.. ) 인스턴스가 생성되지 않은 상태에서 호출될 필요가 있을때( 특별한 방식으로 인스턴스를 생성할 필요가 있을때( singleton 이나 기타의 이유로.. ) ) 사용하게됩니다.



