[JAVA] 클래스, 객체, 인스턴스

DANI·2023년 11월 30일
0

JAVA를 공부해보자

목록 보기
15/29
post-thumbnail

📕 클래스, 객체, 인스턴스의 개념

📑 클래스(Class)란

객체를 만들어 내기 위한 설계도 혹은 틀
연관되어 있는 변수와 메서드의 집합

즉, 코드 덩어리에 불과 / 설계도

package ex02;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Student {
    private Long id;
    private String name;
    private String subject;
    
    public void studying(){
        System.out.println(name+"이 " + subject +"공부를 합니다.");
    }
}


📑 객체(Object) 란

소프트웨어 세계에 구현할 대상
클래스에 선언된 모양 그대로 생성된 실체


클래스의 인스턴스(instance) 라고도 부른다.
객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
oop의 관점에서 클래스의 타입으로 선언되었을 때 ‘객체’라고 부른다.



📑 인스턴스(Instance) 란

설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다.
실체화된 인스턴스는 메모리에 할당된다.


인스턴스는 객체에 포함된다고 볼 수 있다.
oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴스’라고 부른다.

실행 프로세스는 프로그램의 인스턴스다.
즉, 인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다.
인스턴스는 어떤 원본(추상적인 개념)으로부터 ‘생성된 복제본’을 의미한다.


public class StudentMain {
    public static void main(String[] args) {

        // 객체 생성
        Student student1 = new Student(20231130L, "홍길동", "수학");
        // student1은 인스턴스
        student1.studying();

    }
}

💡 클래스, 객체, 인스턴스의 차이

✅ 클래스(Class) VS 객체(Object)

클래스는 ‘설계도’, 객체는 ‘설계도로 구현한 모든 대상’을 의미한다.

✅ 객체(Object) VS 인스턴스(Instance)

클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.

참고
https://ittrue.tistory.com/117

https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

0개의 댓글