자바(Java) - 객체, 인스턴스, 레퍼런스 변수

지원·2023년 8월 26일

Java Programming

목록 보기
12/25

질문

  • 서점에서 책을 관리하는 것은 누구일까?

  • 서점에서 단골 고객을 관리하는 것은 누구일까?

  • 서점에서 돈을 관리하는 것은 누구일까?

미녀와 야수처럼 사물이 살아 돌아다닌다면 질문에 답도 하고 스스로 책 관리, 단골 고객 관리, 돈 관리 등의 각자 역할을 수행할 것이다.


자바는 객체 지향 언어


  • 객체 지향 -> 객체 중심적

객체 지향 프로그래밍

객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다.

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다.

각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다.

출처: https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D


Class와 Object(Instance)

  • 설계 도면 = 클래스

  • 설계 도면으로 만들어진 실체 = 오브젝트 또는 인스턴스

  • 왜 객체 지향 프로그래밍?
    -> 클래스를 이용하는 것이 아니라 현실에 있는 객체를 이용하여 인스턴스가 어떻게 동작하는지 프로그래밍하는 것이다.
    -> 메모리 상에 존재하는 Object(Instance)를 어떻게 만들고 어떻게 이용할지


reference 변수

  • 인스턴스를 특별한 이름으로 불러주고 싶다!
    -> 참조형 변수(Reference Variable)를 선언한다. 참조되지 않은 인스턴스는 쓰레기(Garbage)

  • ⭐⭐⭐ 예) Book Class 생성 -> 이대로는 사용 X

    	Book b = new Book();

    new Book();: 클래스 이름(생성자)에 해당하는 오브젝트(인스턴스)를 생성한다.
    b: 참조하는 변수 b로 레퍼런스 변수이다.
    -> 인스턴스 Book을 말그대로 참조한다는 의미이다.

    	Heap 메모리에 Book 인스턴스 생성
        Heap 메모리의 Book 인스턴스를 사용하려면 반드시 Book 인스턴스를 참조하는 레퍼런스 변수가 필요하다.
        b라는 참조 변수가 Book 인스턴스를 참조한다.(가리킨다)

    Book: 변수 b 앞의 Book은 레퍼런스 타입이다.

  • 기본형 타입은 값을 참조 X -> 값을 메모리 크기만큼 가질 수 있는 타입이다.

  • ⭐참조형 타입은 값을 가지는 것이 아닌 객체를 참조하는 것이다.

profile
우주 정복자

0개의 댓글