inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

Final

final 질문드리겠습니다.

해결된 질문

401

skyjoon2

작성한 질문수 48

0

public final String lens;

선언과 동시에 값을 초기화 하지 않고 선언만 한뒤

public ActionCam(){

lens ="광각렌즈"

}

기본생성자 내에서 이와같이 초기화 하는 케이스 있다고 설명해주셨습니다.

 

근데 기본생성자가 아닌 매개변수를 가지고 있는 생성자내에서

public void ActionCam2(String name){

lengs = "테스트"

}

와같이 선언한 경우는 lens 변수는 정의할수없다고 에러메시지가 뜨는데 기본생성자는 가능하고 매개변수가 있는 메소드는 불가능한 이유가 궁금합니다.

객체지향 java oop

답변 1

3

나도코딩

안녕하세요?
먼저 final 에 대해서 아주 잘 이해해주셨습니다. 다만 코드상에 실수가 있네요 😅 ActionCam2 클래스의 생성자를 만드실 때 public 과 ActionCam2 사이의 void 가 있게 되면 이는 생성자가 아닌 일반 메소드가 됩니다. final 변수는 생성자에서만 초기화가 가능하므로 에러가 발생한 것이구요.

public void ActionCam2(String name){ // public ActionCam2(...) 로 변경해야 돼요
    lengs = "테스트"
}

코드를 다음과 같이 바꾸신 다음 실행해보시면 정상 동작을 확인하실 수 있습니다.

// ActionCam.java
public class ActionCam{
    public final String lens;
    public ActionCam() { // 기본 생성자
        lens = "광각렌즈";
    }
}
// ActionCam2.java
public class ActionCam2{
    public final String lens;
    public ActionCam2(String name) { // 매개변수가 있는 생성자
        lens = name;
    }
}
// Main.java
public class Main {
    public static void main(String[] args) {
        ActionCam cam = new ActionCam();
        System.out.println(cam.lens);

        ActionCam2 cam2 = new ActionCam2("망원렌즈");
        System.out.println(cam2.lens);
    }
}

실행 결과는 아래와 같습니다.

광각렌즈
망원렌즈

궁금증 해결에 도움되셨길 바라겠습니다 😊
감사합니다.

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

146

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

119

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

72

1

사고력 키우는 법이 어떤게 있나요?

0

94

2

getter setter

0

103

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

80

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

76

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

117

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

187

3

JDK 버전 문의

0

130

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

123

2

Iterator 문의

0

105

1

코드 순서 문의

0

143

1

클래스 메소드

0

150

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

81

2