[oop] 인스턴스와 개체의 차이점은 무엇입니까?

인스턴스와 개체의 차이점은 무엇입니까? 차이가 있습니까?



답변

인스턴스와 객체는 객체 지향 프로그래밍 에서 가져온 것 입니다.

Java, C ++ 및 Smalltalk와 같은 일부 프로그래밍 언어의 경우 코드를 설명하고 이해하는 것이 중요합니다. 구조적 프로그래밍에서 사용되는 다른 언어에서는이 개념이 존재하지 않습니다.

이것은 Structural Programming의 관점입니다. 너무 많은 시간을 소비해야하는 실질적인 차이는 없습니다. 어떤 사람들은 글을 쓰는 데 많은 공간을 차지할 수있는 멋진 언어가있을 수 있지만, 결국에는 코더, 개발자, 프로그래머, 아키텍트에 관한 한 클래스의 인스턴스와 객체는 같은 것을 의미하며 종종 서로 바꿔서 사용할 수 있습니다 . 나는 내 경력에서 까다로울 사람을 만난 적이 없으며 실제로는 없기 때문에 차이점을 지적하려고 30 분을 소비합니다. 다른 개발 노력에 더 많은 시간을 할애 할 수 있습니다.

업데이트 Swift와 관련하여 Swift를 발명 한 Apple이 선호하는 것은 다음과 같습니다.

클래스의 인스턴스는 전통적으로 객체로 알려져 있습니다. 그러나 Swift 클래스와 구조는 다른 언어보다 기능면에서 훨씬 더 가깝고이 장의 대부분은 클래스 또는 구조 유형의 인스턴스에 적용 할 수있는 기능을 설명합니다. 이 때문에 좀 더 일반적인 용어 인 인스턴스가 사용됩니다.


답변

훌륭한 질문입니다.

가능한 가장 간단한 방법으로 설명하겠습니다. 바구니에 사과 5 개가 있다고 가정 해 보겠습니다. 각각의 사과는 Apple 유형의 개체로, 몇 가지 특성 (즉, 크고 둥글고 나무에서 자랍니다)이 있습니다.

프로그래밍 측면에서 크기 : big, 모양 : 원형, 서식지 : 나무에서 자라는 변수를 가진 Apple이라는 클래스를 가질 수 있습니다. 바구니에 사과 5 개를 넣으려면 인스턴스화. Apple apple1, Apple apple2, Apple apple3 etc....

대안으로 : 객체는 무언가의 정의이고 인스턴스는 물리적 인 것입니다.

이게 말이 되요?


답변

인스턴스 : 인스턴스는 참조 (사본)를 만드는 것입니다.

object : new 연산자를 사용하여 메모리 위치가 개체 (클래스의 런타임 엔터티 임)와 연결된 경우를 의미합니다.

간단히 말해서 Instance는 특정 시간에 개체의 복사본을 나타내는 반면 개체는 클래스의 메모리 주소를 나타냅니다.


답변

의자를 몇 개 만들고 있다고 가정 해 보겠습니다.

의자를 만들고 조립하는 방법을 보여주는 다이어그램은 소프트웨어 클래스에 해당합니다.

그 다이어그램의 패턴에 따라 5 개의 의자를 만들었다 고 가정 해 보겠습니다. 마찬가지로 클래스의 패턴에 따라 5 개의 소프트웨어 객체를 구성 할 수 있습니다.

각 의자에는 각 특정 의자를 식별하기 위해 좌석 바닥에 고유 번호가 있습니다. 의자 3은 의자 패턴의 한 인스턴스입니다. 마찬가지로, 메모리 위치 3은 소프트웨어 패턴의 한 인스턴스를 포함 할 수 있습니다.

따라서 인스턴스 (의자 3)는 의자 패턴의 고유 한 특정 표현입니다.


답변

개체 :

기본적으로 상태 (변수)와 동작 (메소드)이있는 소프트웨어 번들입니다.

클래스 :

객체 인스턴스에 대한 청사진 (템플릿)-고유 한 객체입니다. 예를 들어 객체를 두 번 생성한다는 것은 두 개의 인스턴스를 만들었다는 의미입니다.

예를 들어 보겠습니다

Class student()
{
   private string firstName;
  public student(string fname)
  {
    firstName=fname;
  }
  Public string GetFirstName()
  {
    return firstName;
  }
}

개체 예 :

Student s1 = new student ( “Martin”); Student s2 = new student ( “Kumar”);

s1, s2는 Student 클래스의 객체를 가지고 있습니다.

인스턴스 :

s1과 s2는 학생 객체의 인스턴스이며 두 개는 고유 합니다.

참조로 도 부를 수 있습니다 .

기본적으로 s1과 s2는 객체에 할당 된 변수입니다.


답변

객체와 인스턴스는 거의 동일합니다. 하지만 아주 작은 차이가 있습니다. 경우 Car클래스이며, 3 Car의 3 가지 개체입니다. 이러한 모든 개체는 인스턴스입니다. 따라서이 3 대의 자동차는 Car클래스 인스턴스의 객체입니다 .

그러나 “인스턴스”라는 단어는 “구조 인스턴스”를 의미 할 수도 있습니다. 그러나 객체는 클래스 전용입니다.

모든 개체는 인스턴스입니다. 모든 인스턴스가 객체 여야하는 것은 아닙니다. 인스턴스는 “구조 인스턴스”또는 “객체”일 수 있습니다. 이것이 당신에게 차이가 분명해지기를 바랍니다.


답변

객체는 속성 및 메서드와 같은 특정 기능과 특성을 가진 정적 인 구조이며 무엇이든 될 수 있습니다 (문자열, 사용자 컨트롤 등).

인스턴스는 사용하고 작업을 수행 할 수있는 해당 개체의 고유 한 복사본입니다.

컴퓨터와 같은 제품을 상상해보십시오.

xw6400 워크 스테이션은 개체입니다.

xw6400 워크 스테이션 (또는 Your WIFE의 xw6400 워크 스테이션)은 xw6400 워크 스테이션 개체의 인스턴스입니다.