객체 : 객체지향 프로그램의 대상, 생성된 인스턴스
클래스 : 객체를 프로그래밍 하기위해 코드로 만든 상태
인스턴스 : 클래스가 메모리에 생성된 상태
멤버변수 : 클래스의 속성, 특성
메서드 : 멤버변수를 이용하여 클래스의 기능을 구현
참조변수 : 메모리에 생성된 인스턴스를 가리키는 변수 - 내부적으로 주소를 가지고있다.
참조값 : 생성된 인스턴스 메모리의 주소값
생성자 (constructor)
인스턴스 생성 시 new 키워드와 함께 사용했던 생성자
ex) studentLee = new Student();
생성자는 인스턴스를 초기화 할 때의 명령어 집합을 말한다.
생성자의 이름은 해당 클래스 이름과 동일하다.
생성자는 메소드가 아니기 때문에 상속되지 않으며 리턴값이 없다. = 생성자는 반환타입이 없다.
생성자는 new 키워드에 의해서만 호출이된다
생성자 기본문법
<class_name>([<argument_list>])
{
[<statements>]
}
디폴트 생성자 (default constructor)
-하나의 클래스에는 반드시, 적어도 하나 이상의 constructor가 존재한다.
디폴트 생성자란 생성자가 하나도 없을 때 컴파일러가 제공해주는 생성자를 말한다. (= 프로그래머가 Constructor를 기술하지 않으면 자동으로 Default Constructor가 자동으로 생김 = 컴파일러가 코드에 넣어줌)
생성자가 하나라도 있을경우 디폴트 생성자는 서포트되지 않는다
생성자가 있을 때 디폴트 생성자가 필요하면 직접 코드를 입력해서 디폴트 생성자를 넣어 줄 수 있다.
디폴트 생성자는 매개변수가 없다.
디폴트 생성자는 구현부가 없다.
만약 클래스에 매개변수가 있는 생성자를 추가하면 디폴트 생성자는 제공되지 않는다.
생성자 오버로드 (constructor overload)
필요에의해 생성자를 추가하는 경우 여러개의 생성자가 하나의 클래스에 있다. (overload)
동일한 이름을 가진 생성자가 존재 할 수 있지만 매개변수가 달라야한다. 이런경우를 생성자 오버로딩, 콘스트럭터 오버로딩이라고 한다.