클래스에서의 변수(Kinds of Variable)

Joy🌱·2022년 12월 31일
0

☕ Java

목록 보기
21/40
post-thumbnail

💁‍♀️ 클래스에서의 변수(Kinds of Variable)란,
클래스 변수, 멤버 변수(인스턴스 변수), 지역 변수를 통칭

  • 클래스 변수
    : static 키워드를 가지고 필드에 선언하는 변수, 메모리의 static영역 사용
  • 멤버 변수(인스턴스 변수)
    : static 키워드 없이 필드에 선언하는 변수, 메모리의 heap영역 사용
  • 지역 변수
    : 메소드, 생성자, 초기화 블록 내부에서 선언하는 변수

👀 각 변수들이 사용하는 영역


👀 각 변수들의 생성 및 소멸시기


👀 한 클래스 내의 변수들

public class KindsOfVariable { 

	>>> 클래스 영역에 작성하는 변수 : 필드
	
	>>> non-static field : '인스턴스 변수' (인스턴스 생성 시점에 사용 가능한 변수라는 의미) 
    >>> 객체가 할당될 때 사용가능한 변수
	private int globalNum; 
	
	>>> static field : '클래스 변수(정적 필드)' (정적 메모리 영역에 생성되는 변수라는 의미)
	private static int staticNum;
	public void testMethod(int num) { >>> int num : 매개변수이자 지역변수
		
		>>> 메소드 영역에서 작성하는 변수 : 지역 변수 (매개변수도 지역 변수의 일종)
		>>> 지역변수는 메소드 호출 시, stack에 공간을 할당 받아 생성됨
		int localNum;
		
        >>> 매개변수는 호출 시 값이 넘어와서 변경되기 때문에 초기화가 필요없음
		System.out.println(num);
//		System.out.println(localnum);
		>>> 지역변수는 선언 외에 다시 사용하기 위해서는 반드시 초기화 되어야한다.
		
        >>> 전역 변수는 클래스 전역에서 사용 가능
		System.out.println(globalNum);
		System.out.println(staticNum);
	}
	public void testMethod2() { 
		
		>>> 지역 변수는 해당 지역(블럭 내)에서만 사용 가능하다.
//		System.out.println(num);
//		System.out.println(localNum);
		System.out.println(globalNum); >>> 전역변수이기 때문에 여기서도 사용가능
		System.out.println(staticNum); >>> 전역변수이기 때문에 여기서도 사용가능
		
	}

} 

profile
Tiny little habits make me

0개의 댓글

관련 채용 정보