Static

Yullc·2025년 3월 11일
post-thumbnail

이전에 우리가 클래스(설계도)를 만들때 객체를 만들어서 클래스에 넣고 객체에 저장되어있는 값을 꺼내서 사용 하는 형식이었잖아?? 근데 이번에는 객체를 생성하지 않고 값을 출력하는걸 한번 해볼거야! 잘 보도록!!

Static 예제

class Main {
    public static void main(String[] args) {
        계산기.(10, 20);
    }
}
class 계산기 {
    static void(int a, int b) {
        System.out.println(a + b);
    } 
}

일단 이런식으로 Static을 활용하는 예제를 가지고 왔어.
전에 올라온 클래스에서 본거랑 좀 다른점 찾았겠지??
바로 객체를 생성안하고 다른 클래스에 있는 값을 가져와서 출력한거 눈치 챘니?

자 이게 어떻게 가능하냐면 static은 객체 생성없어도 호출이 가능하다는점 !!
왜냐하면 static은 클래스가 메모리에 올라갈 때 자동으로 생성되기 때문에 객체를 생성하지 않아도 호출이 가능해! 그래서 메모리를 효율적으로 사용할 수 있고, 속도도 빨라!

이제 코드를 풀이를 해보자면,

  • 먼저 우리는 계산기라는 클래스를 만들어서 a+b를 계산하고싶어
  • 근데 이제는 객체를 생성하지 않고 static을 활용하려면 일단 클래스 않에 있는 메서드를 실행 해야하잖아?
  • 계산기.합(10,20)이렇게 작성해 주면 돼.-> 이건 클래스.메서드이름(a,b)의 형태로 볼 수 있어.
  • 메서드 이름옆에()괄호 안에 들어가 있는 부분은 '매개변수' 라고 불러!
  • 이 매개변수를 이용해 계산기 클래스에 있는 int a, int b값에 값이 들어가는거야!
  • 여기서 주의해야 할 점은 다들 알겠지만 타입이 맞아야돼.. main에서는 double타입을 넣고싶은데 저~어기 계산기 클래스에 있는 합메서드의 매개변수 타입이 int, boolean이러면 혼난다~

그리고 선언 위치에 따라 변수들이 바뀌는거 알고 있니??
살짝 중요한 정보인데 알아둬

전역변수 : 전체에서 어디서든 호출하면 사용할수 있는 변수
지역변수 : 메서드내에서만 활동하는 변수
매개변수 : 메서드 내부와 외부를 연결 해주는 변수
클래스변수 : static int a; 타입앞에 static을 붙인게 클래스 변수라고 해 인스턴스를 사용하지 않고 생성 가능!!

끝이다

profile
아자아자자

0개의 댓글