[Java] 인스턴스 변수의 개념과 예제


인스턴스 변수


- new 명령을 통해 생성하는 변수이다.

- 인스턴스는 값을 개별적으로 구분해서 관리할 필요가 있을 때 사용한다.

- 클래스가 로딩될 때 생성되지 않는다.

- 인스턴스 주소를 통해 접근 가능하다.

- 인스턴스 주소를 잃어버리면 해당 변수는 사용할 수 없게 된다.

- 변수 선언에 static을 붙이지 않는다.


인스턴스 변수는 기본 값으로 0을 갖는다.



1) class Student 코드


static class Student {

    // 인스턴스 변수는 기본 값으로 0을 갖는다.
    // 주소 변수 : null
    // 정수 변수(byte, short, int, long, char) : 0
    // 부동소수점 변수(float, double) : 0.0
    // 논리 변수(boolean) : false
    //  => 사실 null이나 false, 0.0 모두 메모리가 0으로 셋팅된다는 것을 의미한다.
     String name;
     int age;
     boolean working;

  }


* 주의! 

많은 사람들이 오해하는 게 있다. 위 클래스에서 선언된 String name 'name'은 

인스턴스 변수가 아니다. 그 어떤 변수도 아니다. name 이라는 이름을 가진 String

타입의 메모리를 만들라는 '명령어'일 뿐이다. 인스턴스 변수 인스턴스가 생성된

후, '메모리에 실제로 저장되는 변수' 값이다.




2) 인스턴스 호출 및 출력 코드


public static void main(String[] args) {

    // 인스턴스 변수 사용법:
    // 인스턴스의주소.변수명
    Student s1 = new Student(); // new Student() -> 인스턴스 생성!
    Student s2 = new Student();
   
    System.out.println(s1.name); 
// 항상 로컬 변수는 값을 설정한 다음에 사용해야 한다.
    System.out.println(s1.age);
    System.out.println(s1.working);
    System.out.println("-------------------------");
   
    s1.name = "홍길동";
    s1.age = 20;
    s1.working = true;
    System.out.println(s1.name);
    System.out.println(s1.age);

    System.out.println(s1.working);


* s2 값은 s1 값과 전혀 관계가 없다.



블로그 이미지

필로그래머

,