일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- summarize()
- mutate()
- groupe_by()
- proc contents
- select()
- dplyr
- arrange()
- filter()
- distinct()
- AES
- sample_n()
- 대칭형 알고리즘
- samp;e_frac()
Archives
- Today
- Total
Gae Ko's Blog
[JAVA] 생성자(constructor) 본문
생성자
생성자는 말 그대로 객체를 생성하고 초기화를 하는 역할을 담당하며, 생성자를 실행할 수 없다면 클래스는 객체를 생성할 수가 없다. 그렇기 때문에 모든 클래스에는 생성자가 한 개 이상 반드시 존재하며 따로 선언을 하지 않더라고 보이지 않는 디폴트 생성자가 자동으로 추가된다.
1 2 3 4 5 6 7 | Calculator c1 = new Calculator(); // 생성자가 호출됨. c1.setOprands(10, 20); c1.sum(); c1.avg(); | cs |
위 코드를 보면 객체 Calculator를 사용하기 위해서 사용자는 setOprands를 호출하여야만 sum이나 avg함수를 사용할 수 있다. 이러한 절차를 기억해야하는 것은 사용자 입장에서는 불편할 뿐만 아니라 오류가 발생할 확률을 높이는 결과를 초래할 수 있다.
그래서 사용하는 것이 생성자이다. 아래와 같이 인스턴스가 생성될 때 left와 right값을 입력하도록 강제한다면 ?
1 2 3 4 5 6 7 | public Calculator(int left, int right) { this.left = left; this.right = right; } | cs |
- 객체가 생설될때 사동으로 호출(new 명령어를 만났을 때) 되며 초기화한다.
- 클래스명과 동일한 메소드
- 리턴타입 없음
- 중복정의 가능 (오버로드) // 오버로드이란?
- new연산자를 이용하여 선언
- 주된 목적은 필드(멤버변수)의 초기화를 하기 위함
- this와 super로 생성자를 호출할 수 있음
- 생성자를 따로 정의하지 않았을 경우에는 컴파일러가 제공하는 생성자가 호출되어진다. (디폴트생성자)
>> 디폴트 생성자란?
- 전달인자가 없고 메소드 몸체부분이 비어있는 형태
- 사용자가 생성자를 하나라도 만들게 되면 컴파일러는 디폴트 생성자를 제공하지 않음
'프로그래밍언어 > JAVA' 카테고리의 다른 글
[JAVA] 참조? (1) | 2018.03.17 |
---|---|
[JAVA] 정적변수와 정적메소드 (static) (0) | 2018.03.12 |
[JAVA] this 와 this() (0) | 2018.03.12 |
11월 21일 (0) | 2017.11.22 |
main 메소드 (0) | 2017.11.14 |