거북이처럼 천천히

Java - 변수 선언 위치에 따른 변수 구분 본문

Back-end/Java 개념

Java - 변수 선언 위치에 따른 변수 구분

유로 청년 2022. 6. 26. 01:14

C 언어에서는 변수의 선언 위치에 따라 크게 지역 변수전역변수로 구분 할 수 있으며, 각각의 변수의 특징, 속성을 갖게 된다. 자바 또한 변수의 자료형에 따라서 변수를 구분할 뿐만 아니라 변수의 선언 위치에 따라서 변수를 구분하게 된다. 

 

변수 선언 위치에 따른 변수 구분 - Member variable

변수 선언 위치에 따라서 변수를 크게 두 가지로 나눌 수 있다. (멤버 변수, 지역 변수)

 

  • Member variable : 선언 위치가 클래스(Class) 영역내이지만, 메소드(Method)밖에 선언된 변수
  • Local variable : 선언 위치가 클래스(Class) 영역내인 동시에 메소드(Method)내에서 선언된 변수

 멤버 변수(Member variable)를 다시 두 가지로 나눌 수 있다. (클래스 변수, 인스턴스 변수)

 

  • Instance variable : 선언 위치가 클래스 영역이지만, 각각의 객체(=인스턴스)마다 개별적인 속성을 가져야 할 때 사용
                                   생성 시기는 인스턴스가 생성되었을 때 생성
  • Class variable : 선언 위치가 클래스 영역이지만, 모든 객체가 공통적으로 똑같은 속성을 가져야 할 때 사용
                               생성 시기는 클래스가 메모리에 올라갔을 때 생성

 

일반적으로 클래스 변수 앞에는 'static' 단어가 붙어 있으며, 이 클래스 변수는 클래스내 모든 영역에 영향을 끼치는 전역 변수 성질을 갖는다. 지역 변수와 반대되는 개념이라고 할 수 있다.

 

※ 클래스 변수는 public 을 붙이면 같은 프로그램 내에서 어디서든 접근할 수 있는 전역변수가 된다. 

    인스턴스 변수의 접근번(인스턴스.인스턴스 변수)과 다르게 인스턴스를 생성하지 않고, 클래스.클래스 변수명을 통해 

    접근 할 수 있다.

 

class Profile
	static String sex = "Male"; // 클래스 변수, 모든 객체에 적용
    	int height = 180; // 인스턴스 변수, 각 객체들은 서로다른 값을 보유

 

 

 

변수 선언 위치에 따른 변수 구분 - Local variable

지역 변수는 메소드 내에  선언되어 메소드 내에서만 효력이 있는 변수이다. 메소드가 종료되면 자동적으로 소멸된다.

 

 

 

Reference

  • https://easywebs.tistory.com/29#rp
  • https://itmining.tistory.com/20

'Back-end > Java 개념' 카테고리의 다른 글

Java - 클래스 정리 (2)  (0) 2022.06.26
Java - 클래스 정리 (1)  (0) 2022.06.26
Java - call by value & call by reference  (0) 2022.06.21
Java - next(), nextLine() 차이  (0) 2022.06.14
Java - for each 문  (0) 2022.06.12