본문 바로가기

자바 프로그래밍

[JAVA] 생성자(오버로딩, 초기화)

 

 

 

내가 원하는 인스턴스 객체를 정의할 수 있다!

 

 

 

 

이럴 경우 

다음과 같이 출력돼!

 

 

생성자로 초기화를 해주게 되면 다음과 같이 고객의 입장에서 null은 모르므로 다음과 같은 코딩이 가능하다

 

 

 

왜 에러가 발생할까?

 

 

생성자 오버로딩을 했을 경우!

JVM은 기본 생성자는 생성자가 하나도 없을 때 처리하지만 

하나의 생성자라도 있으면 다음과 같이 기본 생성자에서 에러가 발생하는 것을 볼 수 있다.

 

 

이럴때는 다음과 같이 기본 생성자를 무조건 정의 해주어야 한다.

 

 

왜 에러가 뜨지?

생성자는 인스턴스 객체를 만들 때 임의의 값으로 초기화하기 위해 사용한다.

그런데 main에서 new("박길동",20) 이라는 호출을 했는데

세 개 짜리 너가 해라고 시키고 싶은데

 

만들어진거에서 역할을 넘기고 싶을때는 클래스명을 쓰는 것이 아니라, this 키워드를 사용한다

 

생성자 내부에서만 this 생성자를 사용할 수 있고, 

제일 중요한 것은 this(name,age,"알수없음"); 이 구문은 반드시 생성자의 제일 첫 줄에 있어야 함.

 

 

이렇게 모두 바꿀 수 있음!

 

 

하지만 혈액형은 여전히 세 번 나옴

 

 

 

이렇게 또 수정할 수 있음. 단점은 메소드의 호출이 늘어남. 하지만 코드가 명료해짐

 

 

 

 

 

 

 

 

'자바 프로그래밍' 카테고리의 다른 글

[JAVA] 문자열과 API 사용법  (0) 2019.05.17
[JAVA] 아이스크림 (분리)  (0) 2019.05.17
[JAVA] 객체 배열 사용하기  (0) 2019.05.16
[JAVA] OOP 클래스 만들기  (0) 2019.05.15
[JAVA] 배열 & 반복문 조금  (0) 2019.05.15