18_객체지향문법-객체, 인스턴스, 레퍼런스 변수

Jiyoon.lee·2023년 11월 18일
0

Java_inflearn

목록 보기
18/25

1. 몇 가지 질문

  • 서점에서 책을 관리하는 것은 누구일까요?
  • 서점에서 단골 고객을 관리하는 것은 누구일까요?
  • 서점에서 돈을 관리하는 것은 누구일까요?
    => (미녀와 야수) 야수가 사는 성이라면?

2. 객체 지향 프로그래밍

  • 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다.

3. 클래스(Class), 오브젝트(Object), 인스턴스(Instance), 참조형 변수(Reference Variable)

  • 설계 도면은 실제 객체는 아니다. (여기서 설계 도면은 클래스(class)와 흡사한 의미)
    설계 도면을 보고 실제 책상을 만들게 된다.
  • 실제 만들어진 책상을 오브젝트(object)라고 한다.
  • 오브젝트는 다른 말로 인스턴스(instance)라고도 한다.
  • 실제 존재하는 책상은 오브젝트 혹은 인스턴스라고 한다.

4. 설계 도면을 보고 실제로 만들었다면?

  • Object 또는 Instance
  • Class를 가지고 동작하는게 아니라 실제로 만들어진 Object를 이용하는 것
  • 현실에 존재할 인스턴스가 어떻게 동작할까? 라는 것을 고민하고 그걸 프로그래밍 하는 것이 객체 지향 프로그래밍
  • 클래스를 어떻게 만들까?를 고민하는 게 아닌 메모리 상에 존재하는 오브젝트(인스턴스)를 어떻게 만들까? 이 인스턴스를 어떻게 이용할까?를 고민하는 것!

5. 인스턴스를 특별한 이름으로 불러주고 싶다면?

  • 참조형 변수(Reference Variable)를 선언한다.
  • 참조되지 않은 인스턴스는? 쓰레기 (Garbage)

6. Book b = new Book();

  • 메모리(Heap)에 Book이라는 Instance가 생성되고, 이 인스턴스를 참조하는 변수가 b인 것임
  • 참조한다는 건 가리킨다는 의미
  • 변수 b앞의 Book을 레퍼런스 타입이라고 한다.
  • Book()은 생성자라고 한다.
  • 인스턴스를 만들고 사용하려면, 인스턴스를 참조하는 변수가 반드시 필요하다. (Heap 메모리에는 있지만, 사용할 수 없는 인스턴스 즉, 사용되지 않는 인스턴스는 쓰레기(Garbage)가 됨)

*기본형 타입은 값을 참조하는 것이 아니고 값을 메모리 크기만큼 가질 수 있는 타입이다.
참조형 타입은 값을 가지는 것이 아닌 객체를 참조한다. (가리킨다.)

0개의 댓글