ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Q.참조값을 왜 변수에 보관해야 돼?
    JAVA/궁금증 2024. 8. 10. 21:17

     

    클래스(class)

    • 객체를 정의하는 설계도

     

     

    객체(인스턴스)

    • 객체(인스턴스) =설계도를 기반으로 실제 메모리에 만들어진 것
    Student student1 = new Student();
    • Student 클래스는 Student 타입의 객체(인스턴스)를 받을 수 있다.
    • new Student()는 Student 클래스 정보를 기반으로 새로운 객체를 생성한 것
    • 객체를 생성하면 자바는 메모리 어딘가에 있는 이 객체에 접근할 수 있는 참조값(주소)을 반환(보관, return)한다.
    • Student student1 변수는 이제 메모리에 존재하는 실제 Student 객체의 참조값을 가지고 있다. 
    • student1 변수를 통해 메모리에 있는 실제 객체에 접근하고 사용할 수 있다. 

     

    참조값

    • 객체를 생성할 때, 자바는 그 객체가 메모리의 특정 위치에 저장되도록 한다.
    • 이 메모리 위치를 가리키는 것이 참조값이다. Student student1 = new Student();에서 student1 변수는 Student 객체의 참조값을 가집니다.

     

     

    Q.참조값을 왜 변수에 보관해야 돼? 

    1. 객체에 접근하기 위해:
      • 객체는 메모리에 생성되며, 참조값 없이는 해당 객체에 접근할 수 없다. 참조값을 변수에 보관하면 그 변수를 통해 객체에 접근하고, 메서드를 호출하거나 속성을 조작할 수 있다.
      • 예를 들어, Account myAccount = new Account();에서 myAccount를 통해 deposit() 메서드나 balance 속성에 접근할 수 있다. 만약 참조값을 보관하지 않는다면, 생성된 객체를 다시 사용할 방법이 없다.
    2. 객체의 상태를 유지하기 위해:
      • 참조값을 변수에 보관함으로써, 해당 객체의 상태를 여러 번 변경하거나 확인할 수 있다.
      • 예를 들어, myAccount.deposit(100);을 호출한 후 myAccount의 balance가 100으로 변경된다. 이 상태를 유지하려면 참조값을 보관하고 있어야 한다.
    3. 메모리 관리:
      • 자바의 가비지 컬렉션은 더 이상 참조되지 않는 객체를 자동으로 메모리에서 제거한다. 참조값을 변수에 보관하지 않으면 객체는 접근 불가능한 상태가 되어 가비지 컬렉션에 의해 제거될 수 있다. 따라서 참조값을 변수에 보관하여 객체를 필요할 때까지 유지할 수 있다.
    4. 코드 재사용성:
      • 참조값을 변수에 보관하면, 동일한 객체를 여러 번 참조하거나 다른 메서드에 전달할 수 있다
      • 예를 들어, Account myAccount = new Account(); 후 myAccount.deposit(100);, myAccount.withdraw(50);처럼 동일 객체에 대해 여러 작업을 수행할 수 있다.

     

    댓글

Designed by Tistory.