inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

즐거운 자바

생성자

this생성자 관련 질문 있습니다!

595

권도훈

작성한 질문수 4

0

선생님께서 매개변수가 많은 생성자에 this생성자를 이용하면 더 좋다고 하셔서 매개변수가 2개인 생성자는 this.name = name; this.email=email; 로 정의해두고, 3개인 생성자 안에 this(name,email,password); 이렇게 this생성자를 이용해서 중복을 제거하려고 했는데 오류가 뜹니다ㅠㅠ 빨간 밑줄 내용은 재귀 관련 문제같습니다!캡처.PNG

 

java

답변 2

0

부부 개발단 토토(김성박)

캡쳐한 것을 보면 맞게 작성해 놨는데요. 값을 3개 받는 생성자는 작성하신 것처럼 필드를 초기화 하는 코드가 있어야 합니다. 3개를 받는 생성자에서도 this( 값,값,값); 을 하게 되면 자기 자신 생성자를 계속 호출하니 문제가 발생하겠죠?

0

인프런 AI 인턴

안녕하세요, 인프런 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