[IT Info] 인스턴스(Instance)와 객체(Object)

2023. 11. 15. 23:44·IT Information
728x90
반응형

객체지향 프로그래밍(OOP)에서 자주 사용되는 두 가지 개념인 

인스턴스(Instance)와 객체(Object)에 대해 알아보도록 하겠습니다.

 

지금부터 설명드릴 내용은 굉장히 중요한 개념입니다. 이 두 용어는 종종 혼용되기도 하지만

몇가지 중요한 차이가 있으니 설명을 자세히 보시길 바랍니다.

 

1, 인스턴스와 객체의 정의

 

1) 인스턴스(Instance) 

인스턴스는 클래스를 기반으로 실제로 메모리에 할당되어 생성된 객체를 의미합니다. 클래스는 일종의 설계도이고, 인스턴스는 이 설계도를 바탕으로 만들어진 실체입니다. 한 클래스에서 여러 개의 인스턴스를 생성할 수 있습니다.

 

2) 객체(Object)

객체는 프로그래밍에서 실제로 존재하거나 개념적으로 표현할 수 있는 것을 말합니다. 객체는 데이터(속성)와 기능(메서드)을 함께 가지며, 클래스라는 틀을 기반으로 생성됩니다. 예를 들어, "자동차" 클래스는 자동차 객체를 생성할 수 있는 틀이 됩니다.

 

2. 객체 vs 인스턴스 (차이점)

  • 객체는 항상 인스턴스이지만, 인스턴스는 항상 객체가 아닙니다. 클래스의 인스턴스는 해당 클래스를 기반으로 생성된 구체적인 객체를 의미합니다.
  • 객체는 메모리에 할당된 실제 데이터를 가지고 있지만, 클래스의 정의만으로는 실제 데이터가 없습니다. 

 

3. 예시

// 자동차 클래스 정의
class Car {
    String brand;
    String model;

    // 생성자
    public Car(String brand, String model) {
        this.brand = brand;
        this.model = model;
    }
}

public class Main {
    public static void main(String[] args) {
        // Car 클래스를 기반으로 객체(인스턴스) 생성
        Car myCar = new Car("Toyota", "Camry");

        // myCar는 Car 클래스의 인스턴스이며, 동시에 객체입니다.
        System.out.println("브랜드: " + myCar.brand);
        System.out.println("모델: " + myCar.model);
    }
}

 

이 코드에서 Car 클래스는 자동차를 나타내며, Main 클래스에서는 Car 클래스를 기반으로 객체를 생성하고 출력합니다. myCar는 Car 클래스의 인스턴스이면서 동시에 객체입니다. 프로그램을 실행하면 "Toyota" 브랜드와 "Camry" 모델이 출력될 것입니다.

 

 

 

728x90
반응형

'IT Information' 카테고리의 다른 글

[IT Info] DRM(Digital Right Management) / 정보 보호 기술  (0) 2024.02.01
[IT Info] Merge와 rebase의 차이  (0) 2024.01.19
[IT Info] eclipse(이클립스) 사용하지 않은 import 한꺼번에 없애기  (0) 2023.11.02
[IT Info] FTP(파일 전송 프로토콜)란?  (0) 2023.10.30
[IT Info] Docker(도커)란?  (0) 2023.08.16
'IT Information' 카테고리의 다른 글
  • [IT Info] DRM(Digital Right Management) / 정보 보호 기술
  • [IT Info] Merge와 rebase의 차이
  • [IT Info] eclipse(이클립스) 사용하지 않은 import 한꺼번에 없애기
  • [IT Info] FTP(파일 전송 프로토콜)란?
JongTachi
JongTachi
    반응형
  • JongTachi
    JongTachi의 개발 블로그
    JongTachi
  • 전체
    오늘
    어제
    • 분류 전체보기 (162)
      • Network (10)
      • Server (19)
        • Web (12)
        • WAS (6)
      • Java (8)
        • JVM (1)
        • Java Syntax (16)
        • IDE (5)
        • Lombok (2)
        • Util (1)
      • FrameWork (8)
        • Spring&SpringBoot (4)
        • MyBatis (4)
      • JSP (3)
      • JavaScript (12)
        • jQuery (3)
        • JSON (3)
      • APM (1)
      • Android (5)
      • VCS(Version Control System) (5)
        • Git (4)
        • SVN (1)
      • IT_Tools (15)
        • Jenkins (2)
        • MobaXterm (2)
        • Jeus (1)
        • DBeaver (3)
      • Certificate (1)
      • Linux (3)
      • DB (14)
        • MariaDB (0)
        • Oracle (8)
        • Redis (2)
      • IT Information (19)
      • Text Editor (2)
        • NotePad (2)
      • 비밀의방 (0)
      • 헬파티 여행 (1)
      • 경제 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JQuery
    oracle
    오라클
    Web
    DBeaver
    java
    디비버
    Redis
    mybatis
    마이바티스
    상태코드
    자바
    Server
    SQL
    db
    JSON
    IntelliJ
    svn
    자바스크립트
    HTTP
    이클립스
    인텔리제이
    git
    Javascript
    보안
    WAS
    톰캣
    Linux
    Tomcat
    Eclipse
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JongTachi
[IT Info] 인스턴스(Instance)와 객체(Object)
상단으로

티스토리툴바