[Java] 클래스, 객체, 인스턴스?

hyunoi·2024년 11월 22일
0

Java

목록 보기
11/20
post-thumbnail

클래스 (Class)


  • 객체를 생성하기 위한 설계도 혹은 틀
  • 이 객체가 어떤 변수와 메소드를 가지는지 알려주는 것

객체 (Object)


  • 클래스를 통해서 구현할 대상
  • 클래스에 선언된 변수(속성), 메소드(행동)를 기반으로 그대로 생성된 실체

예를 들어,
헤드셋이라는 객체가 있다고 생각해보자

  • 변수(속성): 스피커, 버튼, 이어폰 잭, ...
  • 메소드(행동): 소리 올리기, 소리 내리기, 전원 끄기, ...

이렇게, 구현하고 싶은 대상을 표현한 실체를 객체라고 한다.
객체는 현실 세계의 사물을 소프트웨어로 표현하는 핵심 단위이다.

특징

  • 클래스의 인스턴스라고 부른다.
  • 객체는 모든 인스턴스 대표하는 포괄적인 의미이다.

인스턴스 (Instance)


  • 설계도(클래스)를 바탕으로 소프트웨어 세계에서 구현된 구체적인 실체(객체)
  • 객체를 소프트웨어에 실체화하면 이게 인스턴스이다.

인스턴스는 객체 안에 포함되는 것
그러면 인스턴스와 객체는 어떻게 구분되는가?

객체가 메모리에 할당되어 실제 사용될 때 이 객체를 인스턴스라고 부른다.

객체와 인스턴스


이 둘에 대해 설명을 해보자면,

객체는 클래스 타입으로 선언되었을 때
인스턴스는 그 객체가 메모리에 할당되어 실제 사용될 때

각각을 부른다!

class Car {
    String brand;
    int speed;
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();  // "Car" 클래스의 인스턴스 생성
        myCar.brand = "Tesla";
        myCar.speed = 100;

        System.out.println("Brand: " + myCar.brand + ", Speed: " + myCar.speed);
    }
}

이 코드를 통해서 예시를 들어보자

  1. Car클래스
  2. myCarCar에서 만들어진 인스턴스
  3. Car 클래스에서는 여러 개의 자동차 객체가 만들어질 수 있음

0개의 댓글