지역 변수란 메소드 안에서 만들어진 변수를 말하며 메소드 안에서만 사용된다. 지역 변수는 메소드를 호출하면 생겨서 메소드가 끝나면 소멸한다. 매개 변수도 지역 변수이다.
int ten(int a) {
int x = 10;
return a*x;
}
public class Class8 {
public static void main(String[] args) {
int a;
System.out.println(a);
}
main 메소드 안에서 만들어졌으므로 a는 지역 변수이다. 그런데 a를 초기화 하지 않았으므로 에러가 뜸.
클래스 영역에서 만들어진 변수를 멤버 변수라고 한다. 메소드 영역 (X), 클래스 변수, 인스턴스 변수로 나뉜다.
class Variables {
// 클래스 영역
int iv; // 인스턴스변수
static int cv; // 클래스변수
void method() {
// 메서드 영역
int lv = 0; // 지역변수
}
}
public class Class9 {
int a;
int b = 100;
String c;
String d = "하이~~~~";
public static void main(String[] args) {
Class9 ob = new Class9();
System.out.println(ob.a);
System.out.println(ob.b);
System.out.println(ob.c);
System.out.println(ob.d);
}
}
멤버 변수는 딱히 초기화 안해도 알아서 0과 null로 나옴.
public class Class10 {
int a;
void setA(int a) {
this.a = a;
}
int getA() {
return a; // 여기서 a는 this.a이다.
}
public static void main(String[] args) {
Class10 ob = new Class10();
ob.setA(1000);
System.out.println(ob.a);
System.out.println(ob.getA());
}
}