오랜만에 하는 포스트!! JSP 공부하다가 자바 기초를 잠깐 훑었는데 헷갈리는 거 있어서.
목차
소개
자바에서는 변수가 크게 지역변수와 멤버변수로 나뉜다.
- 지역 변수: 선언한 메소드 내부에서만 유효한 변수 (매개변수 포함)
- 멤버 변수: 클래스에 속하는 변수. 클래스에 속한 모든 메소드에서 사용 가능. 초기화 안 하면 NULL 할당.
- 멤버변수는 인스턴스 변수와 클래스 변수로 크게 나눌 수 있다.
- 인스턴스 변수: 변수가 인스턴스(객체)에 속할 때. 즉, 객체가 호출될 때 마다 저장공간이 할당되는 변수
- 클래스 변수: 하나의 저장공간을 할당하여 여러 객체가 하나의 값을 공유하는 변수
아래 예제↓를 보면서 이해해보자!
예제
public class Member {
String a; // 멤버 변수
String b = "멤버변수입니다"; // 멤버 변수
public Member() {
String a = "지역변수입니다."; // 지역변수
System.out.println(a);
}
public static void main(String[] args) {
Member member = new Member(); // 지역 변수 a 출력
System.out.println("초기화하지 않은 멤버변수: "+member.a); // 멤버 변수 a 호출
System.out.println("초기화한 멤버변수: "+member.b); // 멤버 변수 b 호출
}
}
결과
지역변수입니다.
초기화하지 않은 멤버변수: null
초기화한 멤버변수: 멤버변수입니다
(생성자) 메소드 안에 선언한 지역변수 a는 메소드가 끝나고 사라졌다.
그래서 두 번째 줄 a를 출력한 값이 NULL이 되는 것.
출처
#위키피디아 #JSPStudy의 JSP & Servlet 웹 프로그래밍 입문 + 활용 2판