일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- parameter
- wpf
- Class
- atmega328
- Encapusulation
- Contour
- Barcode
- memory
- inheritance
- sensor
- preprocessing
- digitalRead
- UNO
- java
- compare
- APP
- mfc
- public
- Binary
- Overloading
- aduino
- stream
- Android
- flutter
- Read
- length
- Unity
- SERIAL
- file access
- Pointer
- Today
- Total
폴크(FOLC)
JAVA 생성자 및 this 본문
# 생성자 ( 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); // 객체 생성
}
}
'교육 관련 > 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 |