728x90
반응형
변수의 선언위치에 따라 구분
No | 변수명 | 선언위치 | 설명 |
1 | 클래스 변수 (class variable) (= static 변수) |
클래스 영역 (클래스 외부 사용 가능 여부 - 접근 제어자에 따라 다름) |
클래스 영역에서 타입 앞에 static이 붙는 변수 객체를 공유하는 변수로 여러 객체에서 공통으로 사용하고 싶을 때 정의 ※ 접근 방법 : 클래스명.클래스변수명 ex ) class Exem에 static 변수로 int 형태의 age가 있으면 Exem.age = 1; 이런 식으로 접근이 가능 인스턴스 변수의 경우 객체(=인스턴스)를 생성하고 참조 변수를 통해서만 접근이 가능한데 클래스 변수는 객체를 생성하지 않아도 클래스명으로 바로 접근이 가능함 |
2 | 인스턴스 변수 (instance variable) |
클래스 영역에서 static이 아닌 변수 개별적인 저장 공간으로 객체/인스턴스마다 다른 값 저장 가능 → 객체(=인스턴스)를 여러 개 생성했다면 각각의 참조 변수명으로 접근이 가능하고 각각에 값을 저장할 수 있음 ★ 클래스 변수는 객체를 공유한다면 인스턴스 변수는 객체를 공유하지 않음 ※ 접근 방법 : 객체(=인스턴스) 생성 후 참조 변수명으로 접근 ex) class Exem에 String name(=인스턴스 변수)이 있으면 먼저 클래스명으로 객체/인스턴스 생성하고 Exem e = new Exem( ); e.name = "확고"; 이렇게 접근할 수 있음 Exem e2 = new Exem( ); e2.name = "확Go"; (부연 설명) 객체/인스턴스 생성만 하고 참조 변수가 없는 경우 가비지 컬렉터에 의해 자동 제거됨 |
|
3 | 지역 변수 (local variable) |
메서드 영역 (접근 제어자를 사용하지 않음) |
메서드 내에서 선언되고 메서드 수행이 끝나면 소멸되는 변수 초깃값을 지정한 후 사용할 수 있음 ex) int i = 0; (조건문, 반복문 블록 내에 선언한 지역변수가 있는 경우 수행이 끝나면 소멸되므로 계속 사용할 경우 블록 밖에서 선언 필요) |
4 | 매개 변수 (= parameter) |
메서드 호출 시 '전달하는 값'을 가지고 있는 변수 (지역 변수처럼 선언된 곳부터 수행이 끝날 때까지 유효함) ex) int sum; sum = add(1,2); → (1) add 메서드 호출하면서 1,2 값 전달 (4) 리턴 값 c의 값이 int sum에 저장 System.out.print(sum); → (5) sum에 저장된 값 3이 출력됨 static int add(int a, int b){ → (2) 정수(1,2) 넘어오니까 int로 받아줌 ★ a, b가 호출 시 '전달하는 값'을 가지고 있는 매개 변수 int c = a+b; return c; → (3) 수행 끝나고 리턴 값 c를 가지고 호출한 곳으로 돌아감 |
728x90
반응형
'IT관련 > Java' 카테고리의 다른 글
이클립스 버전(Eclipse version) 확인 방법 (0) | 2022.03.11 |
---|---|
[Java] Math.random 메서드 (0) | 2022.01.10 |
[Java] 자바 가상머신(JVM)의 메모리 구조 (0) | 2022.01.05 |
[Java] 자바 클래스(Class) (0) | 2021.12.31 |
[Java] 자바 오류 문구 정리 - ing (0) | 2021.12.31 |
댓글