inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 자바 - 기본편

문제와 풀이

page 중복도 지울 수 있지 않나요?

해결된 질문

131

손기민

작성한 질문수 1

0

image.png

실습 코드에 있는 기본 생성자인

Book() {
    this("", "", 0);
}

에서

Book() {
    this("", "");
}

 

으로 바꾸면 중복으로 되어있는 0도 지울 수 있나요?

물론 함수를 두 번 호출 하겠지만 문제에 있는 중복이 없는 조건을 맞추려면 이게 가능한지 궁금합니다.

java 객체지향

답변 2

0

나무늘보

안녕하세요. 손기민님, 공식 서포터즈 코즈위버입니다.

말씀히신 것처럼 this("", ""); 로 호출하여도 문제 없습니다. 만약 이와 같이 될 경우

생성자는 아래와 같은 순서로 호출됩니다.

Book() -> Book(String, string) -> Book(String, String, int)

 이는 자바 문법상 아무 문제가 없는 코드 입니다.

감사합니다.

0

생각하는자

이렇게 바꾸면 똑같이 증복 아닌가요?

book() 에 아무것도 없는 것에서,

2개의 인자 값이 넘어가는것을 호출(2번째 생성자)한다음 여기에 값을 "",""을 넣고,

또 다음에 3개의 인자의 값을 받아, 넘기는 함수를 호출(3번째 생성자) 하는데,

여기에서 "" <-아무것도 없는 빈 공백 값이 증복이 된다고 생각하는데, 손기민님의 생각은 어떠신지요?

0

손기민

book1, book2, book3때문에 생성자가 최소 세 개는 있어야되는 상황이라서 여기서 중복을 더 제거할 수 없다고 생각합니다

 

또한 영상에서 나왔듯이 ""라는 빈 공백 값이 없으면 null이 뜨기 때문에 필요한 것 같습니다

0

생각하는자

죄송합니다. 저가 좀 잘못설명한것 같습니다.

Book1의 내용을 this(“”,””) 으로 바꾸면 book2 생성자를 호출하고, 그 안의 내용에 또 빈 공백(“”)이 들어가고, book3의 생성자를 호출해서 증복이(내용도 증복,호출도 증복)되는것 이라고 말했던 것 입니다.

book1의 내용을 아무것도 안쓰고 할려면, 저의 생각에는 생성자 밖에 있는 값들(title, page) 에 값을 넣으면 될것 같습니다. String title = “”;

혹시 저가 님의 의도를 잘못 이해하고 말해 주시면 감사하겠습니다.

추가1

그리고 저도 공부하는 사람이라서 틀릴수도 있다는것을 알아두었으면 합니다..

질문있습니다

0

27

1

1번 문제 질문입니다.

0

32

1

음악플레이어 문제 중 코드질문

0

26

1

9장 상속 문제와 풀이 질문

0

38

1

강의 자료에 사소한 오타가 있습니다.

0

49

2

매서드 참조값 반환??

0

66

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

70

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

85

1

공부방법

0

74

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

82

1

static method 질문

0

66

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

97

1

Method1에서 Student 객체

0

73

1

3강 18. null 질문

0

68

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

75

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

97

1

문의

0

104

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

90

1

상속과 그에 따른 메모리 구조 질문

0

62

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

74

1

수강기한

0

136

1

기본편 객체지향 프로그래밍에 대한 정의

0

86

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

87

1

추가 지식 학습

0

152

2