728x90
출력값 :
static 1 = 11
instance 1 = 11
static 2 = 11
instance 2 = 10
numStatic은 첫번째 num1과 두번째 num2 둘다 영향을 준다.
numstatic은 1개이고 num1과 num2는 그것과 연결되어 끌어다 쓰고있는 것.스태틱은 1개다.
static 사용 이유
자바에서 main 메소드를 작성할 때 public static void main(String args[])
이때 static을 쓰는 이유:
static을 메소드에 붙이면 정적 메소드가 되고, 변수에 붙이면 정적 변수가 된다.
이렇게 '정적'으로 선언을 하게 되면 객체를 생성해주지 않아도 프로그램 실행시 자동으로 메모리에 적재된다.
main 메소드 같은 경우는 객체를 생성하지 않아도 자동으로 실행되어 작업을 수행해야하는 부분이기 때문에
static으로 선언하는 것
이와 비슷하게 public 접근 제어자는 JVM이 main 함수가 어디에 있건 접근 가능해야하기 때문에 사용
그러므로 아래 예제의 solution 클래스를
static을 사용하지 않으면서 불러오려면 객체 선언을 해주어야 한다.(객체생성)
위 예제 이미지 처럼
Bank 클래스 위에 subbank라고 클래스 하나 있는데,
저렇게 객체 선언 해주면서 불러주면
static을 쓰지 않아도 된다.
static 설명 : [Java] static변수와 static 메소드 - MangKyu's Diary (tistory.com)
정적멤버와 static
인스턴스 멤버선언 vs 정적멤버선언의 기준
첨부 이미지출처 : 이것이자바다
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] vscode 상위하위 packaging 만들기 (0) | 2022.06.17 |
---|---|
[JAVA] 2022-06-16 기본 · 참조 타입 ☑ (0) | 2022.06.16 |
[JAVA] 22-06-16 JVM 메모리 구조 ☑ (0) | 2022.06.15 |
[JAVA] 객체 지향 OOP ! 개념 이해 추가 정리 ☑ (0) | 2022.06.14 |
[JAVA] 자바 객체와 클래스 ! 개념 이해 추가 정리 ☑ (0) | 2022.06.13 |