2011. 5. 23. 12:49
자바(Java)에서 static으로 선언되는 변수와 메소드
2011. 5. 23. 12:49 in JavaAndroid
자바에서 static으로 선언되는 변수가 일반 변수 즉, 지역 변수와 다른 점은 지역 변수는 해당 메소드에서 사용되고 나면 자동으로 소멸되는데 반해 static 변수는 메모리에 지속적으로 그 값을 유지하고 있고, 변경도 가능하니까 누적된 값이 계속 남아있게 된다.
static 메소드는 자바에서 class를 작성할 때 그 안에 들어가는 메소드에 static을 붙여주는 것으로 이 메소드를 사용하려면 생성자 호출문 'new 클래스명()'를 쓸 필요없이 그냥 클래스명.static메소드()로 바로 사용할 수 있다.
이런 종류에는 Math, System. String 등이 있다. 수 없이 많은 각종 수학함수, println문, string변수 등을 new 연산자로 인스턴스를 생성해서 쓰려면 매우 번거로우므로 이걸 해결하는 방법으로 static을 붙여 선언하는 것이다. 메모리를 많이 차지하고 처리되는 속도가 느려지는 단점이 있어 많이 쓰는 것은 그리 좋은 방법이라고 볼 수는 없다.
1: public class StaticTest {2: static int staticNum ;3: int num ;
4:5: StaticTest(int num) {
6: staticNum += num ;7: this.num += num ;
8: }9:10: static void test1() {11: System.out.println("이건 스태틱이야~") ;
12: }13:14: public void test2() {15: System.out.println("이건 스태틱이 아니야~") ;
16: }17:18: public static void main(String[] args) {19: System.out.println("-1의 절대값 : "+ Math.abs(-1)) ;
20:21: StaticTest st1 = new StaticTest(50) ;
22: System.out.println("static 변수 값 : " + staticNum + "\t일반 변수 값 : " + st1.num);23:24: StaticTest st2 = new StaticTest(25) ;
25: System.out.println("static 변수 값 : " + staticNum + "\t일반 변수 값 : " + st2.num);26:27: StaticTest st3 = new StaticTest(30) ;
28: System.out.println("static 변수 값 : " + staticNum + "\t일반 변수 값 : " + st3.num);29:30: StaticTest st4 = new StaticTest(15) ;
31: System.out.println("static 변수 값 : " + staticNum + "\t일반 변수 값 : " + st4.num);32:33: StaticTest.test1() ;34: st2.test2() ;35: }36: }
'JavaAndroid' 카테고리의 다른 글
자바(Java)의 `Random 클래스`로 구현한 숫자 맞추기 야구 게임 (0) | 2011.05.27 |
---|---|
자바(Java)의 `오버라이딩(Overriding)`과 super 지시자 (0) | 2011.05.25 |
자바(Java)에서 `is a` 관계와 `has a` 관계 (0) | 2011.05.25 |
자바(Java)의 상속 예제 코드 (0) | 2011.05.24 |
자바(Java) 생성자, setter와 getter, 오버로딩 종합 정리 (0) | 2011.05.21 |
자바(Java)의 오버로딩(Overloading) (0) | 2011.05.21 |
setter와 getter를 자동으로 생성해 주는 이클립스(Eclipse) (0) | 2011.05.21 |
자바(Java)에서 변수에 값을 주고 받는 setter와 getter (0) | 2011.05.20 |