과제제출했는데 하나 빠꾸먹은게 있어서 설명좀 받고싶습니다.
Day, Account, test 클래스가 있는데 계좌개설일을 가리키는 Day는 연,월,일을 변수로, Account는 이름,계좌번호,예금,Day클래스변수를 변수로 가짐.
Day는 간단해서 넘기고 Account 생성자는 Account(string name, int num, long balance, Day day){....... this.day = day} 이런 식임.
test는 Account 인스턴스를
Day day = new Day(2021,05,05)
Account account1 = new Account(윾식, 1111111, 10000, day)
이렇게 두 개 하드코딩해서 출력하는 간단한 내용인데 문제는, 계좌개설일 즉 Day클래스의 변수를 인스턴스생성 이후에 클래스 밖에서 변경못하게 하라는 조건이 있어서 Day의 변수들을 private final선언함

근데 교슈님이 정확하게 'final선언해서 변경할수 없을것처럼 보이지만 문제가 있음. 참조대상을 변경할 수 없을뿐이고 참조하는 객체의 조작은 가능하다. 기본데이터형의 final은 상수로 봐도 되지만 클래스형의 final은 주의해라' 라고 하셨음. 저 참조대상 어쩌고 부분이 무슨소린지 잘 모르겠음;;
혹시 Account 생성자의 this.day = day부분에서 문제가 있는거임? 자바는 이럴때 참조로 넘기니까 this.day는 결국 day여서 account의 this.day값을 바꿔도 day값 변경은 안될 것 같은데 잘못 알고 있는게 있으면 알려주십쇼...