this생성자 관련 질문 있습니다!
595
작성한 질문수 4
선생님께서 매개변수가 많은 생성자에 this생성자를 이용하면 더 좋다고 하셔서 매개변수가 2개인 생성자는 this.name = name; this.email=email; 로 정의해두고, 3개인 생성자 안에 this(name,email,password); 이렇게 this생성자를 이용해서 중복을 제거하려고 했는데 오류가 뜹니다ㅠㅠ 빨간 밑줄 내용은 재귀 관련 문제같습니다!
답변 2
0
캡쳐한 것을 보면 맞게 작성해 놨는데요. 값을 3개 받는 생성자는 작성하신 것처럼 필드를 초기화 하는 코드가 있어야 합니다. 3개를 받는 생성자에서도 this( 값,값,값); 을 하게 되면 자기 자신 생성자를 계속 호출하니 문제가 발생하겠죠?
0
안녕하세요, 인프런 AI 인턴이에요. this 생성자를 이용해서 중복을 제거하려고 하셨는데, 오류가 발생하고 있다고 하셨네요. 말씀하신 내용을 보면, 2개의 매개변수를 가진 생성자를 정의하시고, 3개의 매개변수를 가진 생성자 안에서 this(name, email, password);를 호출하고자 하셨는데요.
이 경우, 재귀 관련 에러가 발생하는 이유는 this 생성자 호출은 생성자의 첫 줄에서 수행되어야 하기 때문입니다. 즉, 3개의 매개변수를 가진 생성자에서 this(name, email, password);를 호출하는 것은 맨 처음 줄에 위치하게 해야 합니다.
예를 들어, 아래와 같이 수정하시면 될 것 같아요.
public class MyClass {
private String name;
private String email;
private String password;
public MyClass(String name, String email) {
this.name = name;
this.email = email;
}
public MyClass(String name, String email, String password) {
this(name, email); // 첫 줄에서 호출되도록 수정
this.password = password;
}
}
위와 같이 되어야, 3개의 매개변수를 가진 생성자에서 2개의 매개변수를 가진 생성자를 호출하게 되어 중복을 제거할 수 있습니다. 오류가 해결되었는지 확인해보시고, 여전히 오류가 발생한다면 해당 오류 내용을 공유해주시면 더 자세한 도움을 드릴 수 있을 것 같아요. 이해되셨나요? 추가로 궁금하신 사항이 있으면 언제든지 물어보세요! 좋은 하루 보내세요.
Mark and Sweep
1
14
1
20년 4,5회 13번
0
13
1
GC 알고리즘
1
15
2
용어 질문
1
12
1
채팅프로그램 한글 깨짐
0
499
2
강의 교안
0
772
2
split 사용에 있어서의 의도치 않은 값 할당이 되고 있네요
0
411
1
추상화와 추상클래스는 다른 말인가요? 그 용도가 궁금합니다
1
509
1
메서드와 프로퍼티의 차이가 뭔가요?
1
380
1
static이 클라스에 부여 되었을 때
1
309
1
Iterator<User> 대신에 Collections.unmodifiableList(users)를 사용해도 되나요?
0
373
1
++,--관련 질문드립니다.
0
433
1
Socket의 InputStream
0
586
2
API 문서가 만들어지지 않습니다
0
578
2
66. 채팅 프로그램 만들기 1/2
0
743
2
65. 네트워크프로그래밍1
0
394
1
54. 배열 2편 강의 중
0
396
1
51. 배열 1편 강의 중..
0
305
1
50. 팩토리 메소드 패턴 강의 중
0
293
1
Java Comparator 인터페이스 - 람다 표현
0
677
2
자바 공부법
1
1681
2
class object insatnce
1
693
1
43. 생성자 -super가 기본 생성자가 아닐 때
1
609
1
while문의 continue 예제3번에 관한 질문
0
425
2





