개발 공부

클래스(필드) / ++ 변수 본문

JAVA/배운 후

클래스(필드) / ++ 변수

규율 위에 자유 2023. 6. 9. 13:21

변수의 구분 [ 전역변수(클래스,인스턴스) / 지역변수 ]

전역변수와 지역변수는 변수가 선언된 위치(구역)에 따라 구분 할 수 있다.

1.전역변수 = (필드)
 
선언위치 -클래스 영역 내 (메서드밖에 )선언되는 변수이며 어디서든 사용가능한 변수이다.

 

구분 방법 -전역변수에서 static이 붙은 변수는 클래스변수 붙지 않은 변수는 인스턴스변수(멤버변수) 이다.
                1)인스턴스변수 -클래스 영역에 생성 해야하며 각각의 인스턴스마다 값을 가져야 할 때 사용한다
                 2)클래스변수 - 클래스 영역에 생성 하고 모든 인스턴스마다 공통된 값을 가질 때 사용한다.
                                        - 즉 여러 인스턴스가 공유해서  사용할 수 있는 변수이다.
                                       -  static 키워드를 통해 선언할 수 있다.
 
메모리 생성(할당) - 클래스변수는 어디서든 사용가능한 변수이기 때문에 static영역
                              -인스턴스 변수는 new 연산자를 사용하여 객체를 생성하고 new를 만나는 순간  heap 영역에 생성된다.

 

2.지역변수
선언위치 -특정구역 ({}) 메서드내 위치한 변수 
 
특징- 변수 선언 시 초기화 하지 않으면 컴파일에러가 발생한다.
          매개변수도 지역변수에 포함되지만  메서드 호출시  값을 받아 올것이기 때문에  초기화 되어 있지 않아도된다.
 
메모리생성 - 함수(메서드) 호출시 stack 영역에 생성되며 함수종료시 변수의메모리 공간은 소멸 된다..

 

ex)

 

 

 

 
 
 
 
 

'JAVA > 배운 후' 카테고리의 다른 글

도서관리메뉴 실습(3)  (0) 2023.06.26
클래스 (생성자)  (0) 2023.06.12
3.객체지향(캡슐화 / getter / setter)  (0) 2023.06.07
객체(object)  (0) 2023.06.07
2.객체지향 (추상화)  (0) 2023.06.05