ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인스턴스(Instance)란?
    Design Pattern/객체지향 2024. 4. 10. 20:49
    반응형

     인스턴스(instance)는 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 클래스로부터 생성된 객체를 의미합니다. 클래스는 객체의 설계도 같은 역할을 하며, 인스턴스는 이 설계도를 바탕으로 생성된 실체를 말합니다. 클래스 정의에 따라 메모리에 할당된 인스턴스는 실제 프로그램에서 사용되는 데이터와 메서드(함수)를 포함합니다. 인스턴스를 통해 클래스에 정의된 속성과 기능을 실제로 사용할 수 있습니다.

    인스턴스의 특징

    • 유일성: 하나의 클래스로부터 여러 인스턴스를 생성할 수 있으며, 각 인스턴스는 독립된 메모리 영역을 가지고 서로 다른 상태를 유지할 수 있습니다.
    • 클래스와의 관계: 인스턴스는 특정 클래스의 구조를 따르며, 해당 클래스의 속성(attribute)과 메서드(method)를 가지게 됩니다.

     

    자바에서의 인스턴스 생성 예시

    자바는 객체 지향 프로그래밍 언어로, 클래스를 정의하고 이를 바탕으로 인스턴스를 생성하는 것이 일반적입니다.

    // 자바에서의 클래스 정의
    class Car {
        String color;
        int speed;
    
        // Car 클래스의 생성자
        Car(String color, int speed) {
            this.color = color;
            this.speed = speed;
        }
    
        // Car 클래스의 메서드
        void accelerate(int amount) {
            speed += amount;
        }
    }
    
    // 메인 함수에서 Car 인스턴스 생성
    public class Main {
        public static void main(String[] args) {
            Car myCar = new Car("Red", 0); // Car 클래스의 인스턴스 생성
            myCar.accelerate(10); // myCar 인스턴스의 메서드 호출
            System.out.println(myCar.speed); // 출력: 10
        }
    }

     

    고(Go)에서의 인스턴스 생성 예시

     고(Go) 언어는 전통적인 객체 지향 프로그래밍 언어와는 다소 차이가 있지만, 구조체(struct)와 메서드를 통해 클래스와 비슷한 방식으로 데이터와 기능을 묶어 사용할 수 있습니다.

    package main
    
    import "fmt"
    
    // Go에서의 구조체 정의
    type Car struct {
        Color string
        Speed int
    }
    
    // Car 타입에 대한 메서드 정의
    func (c *Car) Accelerate(amount int) {
        c.Speed += amount
    }
    
    func main() {
        myCar := Car{Color: "Red", Speed: 0} // Car 타입의 인스턴스 생성
        myCar.Accelerate(10)                 // myCar 인스턴스의 메서드 호출
        fmt.Println(myCar.Speed)             // 출력: 10
    }

     자바와 고(Go) 모두에서, 클래스(또는 구조체) 정의를 바탕으로 실제 메모리에 할당되어 사용되는 인스턴스를 생성할 수 있으며, 이를 통해 프로그램의 다양한 동작을 구현할 수 있습니다.

    반응형
Designed by Tistory.