JAVA

변수와 메서드

잔망루피 2020. 12. 6. 19:37

☆ 변수의 종류와 특징

변수의 종류 선언위치 생성시기
클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때
인스턴스 변수 인스턴스가 생성되었을 때
지역변수 클래스 영역 이외의 영억(메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때

 

1. 인스턴스변수

클래스의 인스턴스를 생성할 때

 

2. 클래스 변수

- 인스턴스변수 앞에 static을 붙이기만 하면 됨.

- 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우, 클래스변수로 선언(인스턴스변수와 달리, 클래스변수는 모든 인스턴스가 공통된 저장공간을 공유하기 때문)

- 인스턴스변수와 달리 인스턴스를 생성하지 않고도 언제라도 바로 사용 ex) 클래스이름.클래스변수

- 클래스가 메모리에 로딩될 때 생성되어 프로그램이 종료될 때 까지 유지

- public을 붙이면 '전역변수(global variable)'

 

3. 지역변수(local variable)

- 메서드 내에 선언되어 메서드 내에서만 사용 가능.

- 메서드가 종료되면 소멸되어 사용x

 

★ 메서드 선언과 구현

 

int add(int a, int b)		// 반환타입 메서드이름(타입 변수명)
{
	int result=a+b;
    	return result;
}

 

1. 클래스 메서드(static 메서드)

- 객체를 생성하지 않고도 클래스이름.메서드이름(매개변수)

- 인스턴스와 관계x

 

2. 인스턴스 메서드

- 인스턴스 변수가 필요함

 

1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙임.

2. 클래스 변수(static변수)는 인스턴스를 생성하지 않아도 사용할 수 있음.

3. 클래스 메서드는 인스턴스 변수를 사용할 수 없음

4. 메서드 내에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려.

반응형

'JAVA' 카테고리의 다른 글

생성자(Constructor)  (0) 2020.12.06
Interface  (0) 2020.12.06
제어자(modifier)  (0) 2020.12.06
클래스와 객체  (0) 2020.12.06
Java의 접근 권한 예약어  (0) 2020.01.18