반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

JAVA 생성자 및 this 본문

교육 관련/JAVA

JAVA 생성자 및 this

folcjin 2022. 4. 8. 10:03
728x90
반응형

# 생성자 ( constructor )
# 동적 할당으로 객체를 생성하게 되면 독립된 메모리 공간에서 data를 관리
   > 객체 내부에 존재하는 data 들에 대한 초기화를 별도로 진행하지 않으면 자동 초기화 수행
      - 0 또는 null, false
   > 외부에서 일반적인 초기화 과정을 진행하지 못함
      - 내부 data 에 접근하지 못하는 (private) 경우 때문에
      -> 필요 : 객체 생성 후 필드를 초기화 하기 위한 접근 가능한 public 함수
   > 객체의 생성과 동시에 data 초기화 해주는 함수 : constructor
   > 객체의 이름과 동일하며 () 함수 형태를 갖는다.

# 특징
   > 매개변수를 전달해서 초기화 진행 가능
      - 필드 자체적으로 초기화 진행 가능 ( default constructor )
   > 여러개의 생성자 함수 오버로딩 처리하여 초기화 진행 가능
   > 반환값이 없다. ( void 생략 )
   > 객체가 생성되는 시점에 compiler 에 의해서 자동으로 호출됨

# 소스 코드
public class TEST
{
   int AAA = 10; // 기본 생성자로 동작

   TEST()
   {
      this.AAA = 0;
   }   
   TEST(int value)
   {
      this.AAA = value;
   }
}
public class TEST_FUNCTION
{
   public static void main(String[] args)
   {
      TEST tt1 = new TEST();   // 객체 생성
      TEST tt2 = new TEST(111);   // 객체 생성
    }
}




 

# this ( hidden parameter )
# 생성자 호출에서 파라미터와 동일한 이름인 경우에는 this 로 구분
   > 암시적으로 표현되지/하지 않고 있다.

# 특징
   > 생성자 내부에서만 사용 가능, 
   > 시그니처를 확인하여 동일한 다른 생성자 호출
      - 1줄로만 작성 ( 첫번째 줄에서만 자동 호출이 가능함 )
   > static ( 정적 ) 멤버 함수는 this 포인터를 갖지 못함 ( 메모리가 독립되어 있음 )

# 소스 코드
public class TEST
{
   int AAA;

   TEST()
   {
      this(111); // 시그니처 확인 후 호출
   }   
   TEST(int value)
   {
      this.AAA = value;
   }
   TEST(int value, int offset)
   {
      this.AAA = value;
   }
}
public class TEST_FUNCTION
{
   public static void main(String[] args)
   {
      TEST tt1 = new TEST();   // 객체 생성
      TEST tt2 = new TEST(222);   // 객체 생성
    }
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --

'교육 관련 > JAVA' 카테고리의 다른 글

JAVA 제어자  (0) 2022.05.11
JAVA 오버로딩/오버라이딩  (0) 2022.04.13
JAVA 클래스  (0) 2022.04.07
JAVA 함수 특징  (0) 2022.03.19
JAVA 파일 연동  (0) 2022.03.15