Java

Java_07Day

jwjin 2019. 3. 27. 00:11
728x90

# 생성자 , 생성자 오버로딩 , this 

생성자(Constructor) , 자바 클래스는 생성자라는 기능을 두고 있습니다. 목적은 객체를 생성 해주는 역할을 하며 , 객체 생성시 객체의

필드를 초기화 하는데에도 목적이 있습니다. 자바의 모든 클래스는 기본 생성자를 자동으로 보유 하게 되며(프로그래머가 정의 하지 않을시)

이 생성자는 프로그래머가 직접 정의 하게 되면 더 이상 제공 되어지지 않습니다.

기본 생성자는 파라미터가 없는 생성자를 뜻하며 , 객체 생성시 VM이 자동으로 호출 하도록 되어집니다.

생성자는 목적에 따라서 하나 이상을 정의할 수 있으며 생성자의 형식은 다음과 같습니다.

1. 생성자는 메서드가 아닌 위에 설명한 목적만을 가지게 됩니다. 따라서 생성자 명은 반드시 클래스 명과 같아야 합니다.

2. 리턴 타입이 없으며 , 파라미터를 둘 수 있습니다.


생성자 정의 입니다. 안의 값은 모두 기본값을 나타냅니다. 

생성자 오버로딩 , 오버로딩이란 생성자 메서드에 모두 적용되는 개념입니다. 같은 이름의 생성자와 메서들를 정의시 컴파일러가 다른

개념으로 인식 하게 하여 목적에 맞게 정의하는 형태입니다. 

생성자(메서드) Signature :  생성자와 메서드의 파라미터에 대한 개념..

시그니쳐란 파라미터의 갯수 , 순서 , 타입이 틀릴경우 다른 시그니쳐로 인식하는 개념.. 모두 같게 되면 이미 정의된 

메서드나 생성자를 재정의 하는 개념으로 판단하여 컴파일 에러를 유발합니다.

오버로딩의 목적은 같은 이름으로 정의하여 기본적으로는 같은 기능을 구현하나 세분화 될 시 다른 기능을 구현 할 수 있게 하여

기능에 맞게 호출할 수 있도록 합니다.


메서드 호출 할때는 .(dot) 을 이용..

이렇게 한번 작성해 보겠습니다. 원래라면 50 , 상병 , 5 , 3 이 떠야 하지만 0 , null , 0 , 0이 뜹니다. 아래


(public Marine 하고 괄호안에 있는것은 파라미터 입니다.)


this 키워드

this는 키워드는 자기 자신의 객체를 나타내는 키워드 입니다. this() 를 호출하면 생성(된) 객체의 REF 를 리턴합니다.

생성자 내에서 다른 생성자를 호출 할 때 사용되는 this([parameter]) 는 기 정의된 다른 생성자를 호출하여 기능을 수행 하여

나머지 필드 초기화를 처리할 때 사용하는 호출 코드입니다.

this() 호출 코드는 반드시 생성자 첫 머리에서 호출 해야 하고 , 한번만 호출할 수 있습니다.

위의 생성자에서 this를 이용해 바꾸어 주면 이렇게 바뀌게 됩니다.












728x90