[JAVA] Class, Object, Instance

hgh1472·2023년 8월 19일
0
💡 Class, Object, Instance의 차이

Class


클래스는 필드, 생성자, 메소드 로 이루어져 있다.

클래스의 구성요소
필드객체의 데이터가 저장되는 곳
생성자객체 생성 시 초기화 역할 담당
메소드객체의 동장에 해당하는 실행 블록
class Student
{
	//필드(Field)
	String name;
	int age;
	int korean_score;
	int math_score;
	int english_score;

	//생성자(Constructor)
	Student(String name, int age, int kor_score, int mat_score, int eng_score)
	{
		this.name = name;
		this.age = age;
		this.korean.score = kor_score;
		this.math_score = mat_score;
		this.english_score = eng_score;
	}

	//메소드(Method)
	public void printScore()
	{
		System.out.println(name);
		System.out.println(age);
		System.out.println(korean_score);
		System.out.println(math_score);
		System.out.println(english_score);
	}
}

클래스는 위와 같은 형태로 만들어지고 내부에 필드, 생성자, 메소드가 정의된다. 이렇게 생성된 클래스는 하나의 객체 설계도이며, 정의된 클래스를 통해 동일한 객체를 무한정 찍어낼 수 있다. 이렇게 찍어낸 객체를 인스턴스라고 한다.


인스턴스 생성

public class Main
{
	public static void main(String[] args)
	{
		//생성자가 없는 경우
		Student student1 = new Student();
		//생성자가 있는 경
		Student student2 = new Student("홍길동", 18, 100, 90, 80);

클래스를 통해 객체를 생성하기 위해 new 연산자를 사용한다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있으며 생성자의 여부에 따라 인자 값을 맞춰서 작성한다. new연산자로 생성된 객체는 힙 메모리 영역에 생성되며 이렇게 만들어진 객체를 해당 클래스의 인스턴스(instance)라 한다.


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

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

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

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

  • 클래스의 타입으로 선언되었을 때 객체, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라 한다.
  • 객체는 현실 세계에 가깝고, 인스턴스는 소프트웨어 세계에 가깝다.
  • 객체는 ‘실체’, 인스턴스는 ‘관계’에 초점을 맞춘다.
    • 객체를 ‘클래스의 인스턴스’라고 부른다.

References

0개의 댓글