티스토리 뷰

[java 20강] 정적변수와 메소드 (static)





이번 강의에서는 정적변수, 정적 메소드 (static) 에 대해서 알아보겠습니다.

우선 static 이란 "고정된" 이라는 뜻을 합니다.

자바에서도 말 그대로 고정을 시키는 것입니다.

그럼 언제 쓰는것일까요?


우선 첫번째로는 항상 같은 것을 여기~ 저기~ 에서 쓰려고 할때 씁니다.

예를 들어서 변수를 만들고 그값을 아무곳에서나 쓸수 있다면.... 한번만 만들면 되겠죠?


그리고 두번째로는 사용하고있는 상태 그대로를 아무곳에서나 접근을 할수있다는것 입니다.

실무에서는 두번째 이유로 많이 사용을 하게됩니다.


그러면 모두다 스테틱을 붙이면 되겠내? 라는 생각이 들겁니다.

하지만..... 절때 그렇게 하시면 안됩니다.

값이 고정으로 변하면 고정이된 영역만큼은 자원을 못쓰게 되는것입니다...

하지만 자주 사용을 하면 고정된 곳에서 빠르게 쓸수 있기때문에 오히려 장점이 됩니다.



그럼 바로 예제를 보도록 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package test123123;
 
public class java20 {
 
    public static void main(String[] args) {
        staticTest.a = 3;
        System.out.println("static 변수 a 의 값:" + staticTest.a);
    }
 
}
 
class staticTest {
    static int a = 0;
}
 
cs


실행 결과



위 예제를 보시면 신기하게도 클레스를 생성하지 않았습니다.

staticTest.a 처럼 바로 다이렉트로  staticTest 클래스의 변수 a 에 접근하여 값을 3을 넣어주었습니다.

그리고 출력을 한결과 변수 a 에는 3이라는 값이 들어간것을 확인할수 있었습니다.

그럼 마무리로 생각을 해봅시다.

언제 많이 사용을 할까요?

쉽게 예를 들어서 핸드폰 번호를 한번 봅시다.

010-xxxx-xxxx

이런식으로 우리나라의 번호는 010 으로 모두 시작을합니다.

그럼 010 이라는 번호는 고정이되어있고 핸드폰번호를 입력시마다 작성을 해야합니다.

이런 불편함을 없애기위해 static 변수에 넣어두고 합쳐서 사용을 하면 편하겠죠 ㅎㅎ



이번에는 같은 원리로 메소드를 사용하는 예제를 보도록 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package test123123;
 
public class java20 {
 
    public static void main(String[] args) {
        staticTest.a = 3;
        staticTest.staticTest();
        
    }
 
}
 
class staticTest {
    static int a = 0;
    public static void staticTest (){
        System.out.println("static 변수 a 의 값:" + a);
    }
}
 
cs


결과


위의 첫번째 예제와 결과는 같습니다.

하지만 메소드를 static 사용하여 만들어 주었고...

static 메소드를 실행한 결과입니다.

원리는 위의 첫번째 예제와 같이 생각을 해주시면 됩니다.



이렇게해서 이번 강의를통해 정적변수와 메소드 (static) 대해 알아보았습니다.

피드백은 댓글을 달아주세요!

수고하셨습니다.


댓글