public class Student {
String name;
int age;
int grade;
}
name
, age
, grade
는 멤버 변수이다.
public class ClassStart3 {
public static void main(String[] args) {
Student student1;
student1 = new Student();
Student student2 = new Student();
}
}
student1
, student2
는 지역 변수이다.
package ref;
public class MethodChange1 {
public static void main(String[] args) {
int a = 10;
System.out.println("메서드 호출 전: a = " + a);
changePrimitive(a);
System.out.println("메서드 호출 후: a = " + a);
}
static void changePrimitive(int x) {
x = 20;
}
}
a
, x
(매개변수)는 지역 변수이다.
지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 뜻이다. 예를 들어서 변수 x
는 changePrimitive()
메서드의 블록에서만 사용된다. changePrimitive()
메서드가 끝나면 제거된다. a
변수도 마찬가지이다. main()
메서드가 끝나면 제거된다.
int
) = 0
, boolean
= false
, 참조형 = null
(null
값은 참조할 대상이 없다는 뜻으로 사용된다.)package ref;
public class InitData {
int value1; // 초기화 하지 않음
int value2 = 10; // 10으로 초기화
}
value1
은 초기값을 지정하지 않았고, value2
는 초기값을 10
으로 지정했다.
package ref;
public class InitMain {
public static void main(String[] args) {
InitData data = new InitData();
System.out.println("value1 = " + data.value1);
System.out.println("value2 = " + data.value2);
}
}
value1
은 초기값을 지정하지 않았지만 멤버 변수는 자동으로 초기화 된다. 숫자는 0
으로 초기화된다.
value2
는 10
으로 초기값을 지정해두었기 때문에 객체를 생성할 때 10
으로 초기화된다.