해결된 질문
작성
·
355
답변 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);
}
}
실행 결과는 아래와 같습니다.
광각렌즈
망원렌즈
궁금증 해결에 도움되셨길 바라겠습니다 😊
감사합니다.