내가 원하는 인스턴스 객체를 정의할 수 있다!
이럴 경우
다음과 같이 출력돼!
생성자로 초기화를 해주게 되면 다음과 같이 고객의 입장에서 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 |