[Java] 클래스, 객체, 인스턴스의 차이는 무엇인가요?

orca·2024년 9월 22일

CS

목록 보기
18/46

클래스는 객체를 만들기 위한 설계도 입니다. 객체와 인스턴스는 클래스에 따라 생성된 실체이며, 메모리에 할당된 데이터입니다.

클래스

  • 객체를 생성하기 위한 설계도
  • 객체가 가져야 할 데이터(속성)와 기능(메서드)을 정의하는 틀

example

public class Dog {
    // 속성 (필드)
    String name;
    String breed;

    // 생성자 (객체를 만들 때 호출되는 메서드)
    public Dog(String name, String breed) {
        this.name = name;
        this.breed = breed;
    }

    // 행동 (메서드)
    public void bark() {
        System.out.println(name + " is barking!");
    }
}
  • Dognamebreed 라는 속성을 가진다.
  • Dogbark 라는 기능을 정의한다.

객체

  • 클래스에 따라 생성된 실체
  • 메모리에 실제로 할당된 데이터

example

public class Main {
    public static void main(String[] args) {
        // 객체 생성
        Dog myDog = new Dog("Buddy", "Maltipoo");

        // 객체의 메서드 사용
        myDog.bark();  // 출력: Buddy is barking!
    }
}
  • myDogDog 클래스의 객체
    ➡️ new 키워드를 사용하여 Dog 클래스를 기반으로 실제 메모리에 할당된 실체가 된 것임

인스턴스

  • 객체와 동일한 개념
  • 인스턴스는 특정 클래스에서 생성된 객체를 지칭함
  • 특정 클래스의 객체라는 것을 강조할 때 사용함

example

public class Main {
    public static void main(String[] args) {
        // Dog 클래스의 인스턴스 생성
        Dog myDog = new Dog("Buddy", "Maltipoo");

        // myDog은 Dog 클래스의 인스턴스이자 객체
        myDog.bark();  // 출력: Buddy is barking!
    }
}
  • myDogDog 클래스의 인스턴스

0개의 댓글