huzit
___을 입력해주세요
huzit
전체 방문자
  • 분류 전체보기 (137)
    • 안드로이드(Compose) (10)
      • UI (4)
      • 개념 (6)
    • 안드로이드 (50)
      • 기본개념 (6)
      • 응용 (4)
      • Debug (18)
      • Binding (3)
      • RecyclerView (5)
      • Firebase (6)
      • Retrofit (1)
      • Activity & Fragment (4)
    • 코틀린 (22)
    • 코딩테스트 (38)
      • 백준 (10)
      • 프로그래머스 (28)
    • 일상 (6)
    • CS 지식 (4)
    • 라즈베리파이 (7)

블로그 메뉴

  • 홈
  • 태그
  • 글쓰기
  • 관리

공지사항

인기 글

태그

  • Android
  • 프로그래머스
  • recyclerView ClickEvent
  • Debug
  • Java
  • 공돌이파파
  • FCM
  • 공돌카돈
  • gts4mini
  • 브레빌 밤비노 플러스
  • IFTTT
  • RecyclerView
  • compose
  • Retrofit
  • docker
  • 코틀린
  • firebase
  • 라즈베리 파이
  • jetpack
  • Kotlin

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
huzit

___을 입력해주세요

CS 지식

객체와 클래스, 인스턴스

2022. 6. 13. 02:46
728x90

정의

먼저 위키백과를 찾아보자

위키백과에선 세 분야에서의 객체에 대해 설명하고 있다.

객체지향 프로그래밍만 보면 된다는 것에 감사하자
  1. 컴퓨터 과학에서 객체 또는 오브젝트(object)는 클래스에서 정의한 것을 토대로 메모리(실제 저장공간)에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수 또는 메서드가 될 수 있다. 프로그래밍 언어는 변수를 이용해 객체에 접근하므로 객체와 변수라는 용어는 종종 함께 사용된다. 그러나 메모리가 할당되기 전까지 객체는 존재하지 않는다.
  2. 절차적 프로그래밍에서 하나의 객체는 자료나 명령을 포함할 수 있지만 두 가지를 동시에 포함하지는 않는다. (명령은 프로시저나 함수의 형태를 가진다).
  3. 객체지향 프로그래밍에서 객체는 클래스의 인스턴스이다. 클래스 객체는 자료와 그 자료를 다루는 명령의 조합을 포함하여 객체가 메시지를 받고 자료를 처리하며 메시지를 다른 객체로 보낼 수 있도록 한다. 실세계의 비유로 설명하자면, 가령 어떤 사람이 집에서 살기를 원할 때, 그 집의 청사진(집의 설계도)이나 축소 모형 따위는 전혀 필요가 없다. 필요한 것은 설계에 맞는 실제 집이다. 이 비유에서 청사진은 클래스를, 실제 집은 객체를 나타낸다.

공통적으로 말하는 점은 실제 저장공간에 할당되었다는 점이다.

객체지향 프로그래밍 관점에서 차이를 알아보자.

객체 클래스
객체는 클래스의 구현화된 실체를 담는 공간이다 클래스는 객체가 생성되는데 사용되는 청사진이다
객체는 물리적인 개념이다 클래스는 논리적인 개념이다
객체는 클래스를 통해 생성된다 클래스는 class 키워드를 통해 생성된다
객체는 필요할 때 마다 매번 생성할 수 있다 클래스는 단 한 번 선언된다
객체는 생성될 때 메모리가 할당된다 클래스는 생성될 때 메모리가 할당되지 않는다

결과적으로 클래스란 객체, 인스턴스를 만들기위한 설계도로 보면 편하다.
그러면 인스턴스는 뭘까?

인스턴스란 클래스가 new 연산자를 통해 변수에 초기화되어 메모리에 적재된 상태를 말한다.
객체는 소프트웨어 세계에 구현할 대상이고 이를 구현할 설계도는 클래스, 이 클래스로 만든 실체가 인스턴스이다.
인스턴스는 객체에 포함 된다고 볼 수 있다.

코드로 설명하면 다음과 같이 볼 수 있다.

class Main{
  public static void main(){
      ArrayList ary; // 객체
      ary = new ArrayList<>();//인스턴스
  }
}

객체 지향 프로그래밍이란

클래스로 부터 객체를 생성하고 객체의 행동과 상태를 통해 다른 객체와 상호작용하는 프로그래밍 방식을 말한다.
여기서

  • 상태 : 필드
  • 행동 : 메서드

이다.

728x90
저작자표시 (새창열림)

'CS 지식' 카테고리의 다른 글

블록, 논 블록, 동기, 비동기  (0) 2022.06.28
Monolithic vs MicroService(MSA)  (0) 2022.06.13
인스턴스변수의 재할당  (0) 2022.06.13
    'CS 지식' 카테고리의 다른 글
    • 블록, 논 블록, 동기, 비동기
    • Monolithic vs MicroService(MSA)
    • 인스턴스변수의 재할당
    huzit
    huzit
    simple is best

    티스토리툴바