Constructor은 영어로 보면 뭔지 모를 수도 있지만,
우리나라 말로 생성자를 의미한다.
각설하고 바로 각 주제에 대해 알아보자!
클래스는 자바에서 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용된다.
자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 된다.
클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다.
즉, 필드(field)란 클래스에 포함된 변수(variable)를 의미한다.
또한, 메소드(method)란 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있다.
Instance
자바에서 클래스를 사용하기 위해서는 우선 해당 클래스 타입의 객체(Object)를 선언해야 한다.
이렇게 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스화라고 한다.
또한, 선언된 해당 클래스 타입의 객체를 인스턴스(Instance)라고 한다.
즉, 인스턴스란 메모리에 할당된 객체를 의미한다.
자바에서는 하나의 클래스로부터 여러 개의 인스턴스를 생성할 수 있으며, 생성된 인스턴스는 독립된 메모리 공간에 저장된 자신만의 필드를 가질 수 있다.
하지만 해당 클래스의 모든 메소드(method)는 해당 클래스에서 생성된 모든 인스턴스가 공유하게 된다.
객체란 의사나 행위가 미치는 대상, 문장 내에서 동사의 행위가 미치는 대상, 작용의 대상이 되는 쪽
이란 의미를 가지고 있지만, 이것은 사전적 의미다.
자바에서는 다음과 같다.
객체란 클래스의 인스턴스(Instance)이다.
객체는 클래스로부터 생성되며, 클래스의 속성과 메소드를 가지고 있다. 실제 프로그램에서 데이터와 동작을 담당하는 구체적인 개체를 나타낸다.
객체와 인스턴스는 종종 혼동되는 용어이지만, 객체 지향 프로그래밍에서는 다른 의미를 갖는다.
객체
인스턴스
간단히 정리하면 클래스는 객체를 만들기 위한 설계도이며, 객체는 클래스의 인스턴스이다.
클래스로부터 생성된 객체를 인스턴스라고 부르는 것이다.
생성자란 객체를 생성할 때 호출하는 메소드와 비슷한 것을 의미한다.
주로 일반 멤버변수의 초기화나 객체를 생성할 때 실행하는 작업을 정리한다.
class Pair{
int r, c;
Pair(int r, int c){
this.r = r;
this.c = c;
}
}
특징은 다음과 같다.
각 주제에 대해 알아보았다.
조금 헷갈렸던 개념들인데, 이제야 정리가 되는 것 같다.
끝!
http://www.tcpschool.com/java/java_class_intro
https://sowon-dev.github.io/2020/06/30/200701javai/