강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

한재님의 프로필 이미지
한재

작성한 질문수

김영한의 실전 자바 - 중급 1편

날짜와 시간 문제 2번.

작성

·

71

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

package time.test;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class TestLoopPlus {

    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2024, 1, 1);
        for (int i = 0; i < 5; i++) {
            LocalDate nextDate = startDate.plus(2 * i, ChronoUnit.WEEKS);
            System.out.println("날짜" + (i + 1) + ": " + nextDate);
        }
    }
}

반복문 안에서 nextDate로 받는것도 불변 객체 아닌가요?

불변객체이면 새로운 변수로 받아야 하는 게 아닌가해서 반복문 안의 코드가 이해가 잘 안됩니다.

답변 2

0

한재님의 프로필 이미지
한재
질문자

nextDate가 루프마다 새로 생성되니깐 새로 담는건가요? 어차피 스코프가 반복문 안이니깐, 반복루프마다 새로 생성되고 사라져서 불변인데도 계속 값을 담는 것처럼 보이는걸까요?

안녕하세요. 한재님, 공식 서포터즈 y2gcoder입니다.

말씀하신 게 정확합니다.

반복문 스코프 안에서 매번 새로 nextDate라는 변수 이름으로 새로 생성됩니다 🙂

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

한재님께서 질문하신 내용은 LocalDate 클래스를 비롯한 Java의 날짜 및 시간 클래스를 다루는 방법 및 그 작동 방식에 관한 것입니다.

LocalDate는 불변 객체(Immutable Object)로, 한 번 생성되면 그 상태가 변하지 않는다는 의미를 가집니다. 따라서 기존 객체를 변경하지 않고, 어떠한 조작이 가해지면 새로운 객체를 반환합니다.

질문에서 언급하신 코드에서 nextDatestartDate로부터 특정 기간이 더해진 새로운 LocalDate 객체를 반환합니다. startDate 자체는 전혀 변경되지 않으며, 반복문을 도는 동안 각 루프에서 새로운 LocalDate가 계속 생성되고 할당됩니다.

이는 불변 객체의 상태 변경 대신, 항상 새로운 객체를 생성하여 반환하는 불변성의 특징을 활용한 것입니다. 따라서 새로운 변수를 만들어 반환받은 값을 저장하거나, 바로 처리에서 사용할 수 있습니다.

유사한 질문과 정보는 아래의 링크에서 확인할 수 있습니다:

이외의 추가적인 의문이 있거나 더 궁금한 사항이 있으시다면 질문을 계속해 주세요! 여러분의 학습 과정에 필요한 정보를 지속적으로 제공해 드리겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

한재님의 프로필 이미지
한재

작성한 질문수

질문하기