변수의 종류
선언 위치에 따른 변수의 종류 : 변수의 선언 위치가 변수의 종류와 범위를 결정한다.
▶인스턴스 변수
- 각 객체의개별적인 저장 공간, 객체마다 다른 값 저장 가능
- 객체(인스턴스) 생성 후, '참조변수.인스턴스변수명'으로 접근
- 객체를 생성할 때 생성되고, 참조변수가 없을 때 가비지컬렉터에 의해 자동으로 제거된다.
▶클래스 변수
- 같은 클래스의 모든 인스턴스들이 공유하는 변수
- 인스턴스 생성없이 '클래스이름.클래스변수명'으로 접근
- 클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸
▶지역 변수
- 메서드(함수) 내에 선언되며, 메서드의 종료와 함께 소멸
- 조건문, 반복문의 블럭 { } 내에 선언된 지역변수는 블럭을 벗어나면 소멸
클래스 변수와 인스턴스 변수
인스턴스 변수 :: 객체가 생성될 때마다 생성되므로 객체마다 각각 다른 값을 가진다.
클래스 변수 :: 모든 객체가 하나의 저장공간을 공유하므로 항상 공통된 값을 가진다.
인스턴스 변수(필드)의 선언
public int speed;
public -> 접근지정자; private이나 public
int -> 필드의 타입
speed -> 필드의 이름
접근지정자(접근제어자) :: 어떤 클래스가 변수에 접근할 수 있는지를 표시한다.
public :: 모든 클래스로부터 접근이 가능하다.
private :: 클래스 내부에서만 접근이 가능하다.
<인스턴스 변수의 사용범위>
인스턴스 변수는 선언 위치에 상관없이 클래스안의 어디서나 사용이 가능하다.
<클래스 변수와 인스턴스 변수>
지역 변수
메서드(함수) 안에 선언하는 변수
public class Box {
int width=0,length=0,height=0; //인스턴스 변수(클래스에서 사용가능)
public int getVol()
{
int vloume; //지열 변수(getVol()안에서만 사용가능)
volume=width*length*height;
return volume;
}
volume=500; //오류발생
}
지역 변수 사용시 주의점
지역변수를 초기화하지 않고 사용하면 컴파일 오류 발생한다.
오류 메세지: The local variable sum may not have been initialized
public class Bug {
public int getSum()
{
int sum;
for(int i=0; i<10; i++)
sum=sum+i; //오류발생
return sum; //오류발생
}
}
'Web Programming > java-jsp' 카테고리의 다른 글
java 설정자와 접근자, 문자열 객체, String 클래스의 메서드 (0) | 2018.08.29 |
---|---|
메서드, 인수, 매개변수, return문, 중복 메서드 (0) | 2018.08.29 |
java 클래스와객체 (0) | 2018.08.29 |
java 절차 지향 프로그래밍, 객체 지향 프로그래밍 (0) | 2018.08.29 |
java 사용자입력받기, 커맨드라인, 입력창 (0) | 2018.08.29 |