변수
무슨 변수 종류가 이리도 많은지, 깔끔하게 정리하자.😎
자바 선언부에 따라서 정리하자면, 크게 멤버변수와 지역변수로 나뉜다.
멤버변수
멤버변수는 클래스변수와 인스턴스변수를 통틀어서 부르는 용어이다.
클래스영역에 선언된 변수를 멤버변수라 하며 그중 앞에 static 이붙은 변수를 클래스 변수라고 한다.
1. 인스턴스변수
클래스 영역에 선언되고 인스턴스 생성시 만들어진다.
각각의 인스턴스마다 다른 값을 가질 수 있다.
그러므로 인스턴스 생성이 필수이며 각 인스턴스마다 다른 값을 가져야 할 때 사용된다.
2. 클래스변수
인스턴스변수 앞에 static 을 붙이기만 하면 된다.
인스턴스변수가 각각의 인스턴스마다 다른값을 가질 수 있는 거와 달리 값을 공유하는 변수이다.
클래스 로딩시 생성되며 클래스이름.변수이름 이렇게 인스턴스 생성 필요없이 바로 쓸 수 있다.
한 클래스의 모든 인스턴스들이 공통적인 값을 가져야할 때 클래스 변수로 선언한다.
클래스가 로딩될 때 생성되어(그러므로 메모리에 딱 한번만 올라감!)
종료 될 때 까지 유지되는 클래스 변수는 public 을 붙이면 같은 프로그램 내에서 어디서든 접근할 수 있는 전역 변수가 된다.
또한 인스턴스 변수의 접근법과 다르게 인스턴스를 생성하지 않고 클래스이름.클래스변수명 을 통해서 접근할 수 있다.
지역변수
말 그대로, 메소드 내에 선언되는 변수이다. 매개변수도 지역변수의 종류라고 볼 수 있다.
1. 지역변수
메소드 내에 선언되며 메소드 호출시 생성되고 메소드가 종료되면 사라진다.
2.매개변수
흔히 파라미터라고 불린다. 메소드에서 입력값을 받을 때가 있는데 그때 사용되는 변수를 매개변수라고 한다.
매개변수도 매소드 내에 선언된 것으로 간주되므로 지역변수이다.
인자값은 호출시 메소드입력부의 넣는 값이며 이값은 매개변수에 복사되어 대입된다.
코드로 간단히 보면 아래와 같다.
public class test {
int iv; // 인스턴스 변수
static int cv; // 클래스 변수
void method(int a //매개변수) {
int lv; // 지역 변수
}
}
변수안뇽 그럼 이만!!
'Backend > Java' 카테고리의 다른 글
자바(JAVA)에서 인터페이스(Interface)란? (0) | 2021.03.05 |
---|---|
Java 자바 접근제어자 범위, 종류 (0) | 2021.03.04 |
JAVA thread 와 prosess 차이 , thread dump 확인하기 (0) | 2021.02.28 |
Java .class file compile 된 java version 확인 (0) | 2021.01.12 |
[해결완료]com.jcraft.jsch.JSchException: UnknownHostKey: 어쩌구.. fingerprint is 저쩌구.. (0) | 2021.01.04 |