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

김현석님의 프로필 이미지
김현석

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

Java 클래스, 객체, 정적 변수/메서드, 인스턴스 변수/메서드 복습

speed 변수 저장 관련(16:10 예제 내용 중 질문)

해결된 질문

작성

·

46

0

16:10 예제 내용 중에 질문있습니다.

 

  1. speed += increment; 에서 스피드 값이 저장되지 않는 이유는 생성자에서 this.speed = 0; 을 통해 초기화해서 저장 안되는 게 맞을까요?

  2. 생성자에서 this.speed= 0; 이 없다면 Hyundai 속도 증가: 80km/h 일까요?

 

 

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

  1. 저장이 안된다는 게 무슨 뜻이실까요? 각각의 인스턴스 변수에 저장이 되어서 각각 50km, 30km가 출력될 수 있는 것입니다.

  2. car1, car2 두 개의 객체는 아예 다릅니다. 다른 공간에 있는 객체입니다. 겹쳐서 80이 될 수가 없습니다. 그리고 this.speed = 0;을 주석처리해도 정상적으로 동작하긴 합니다. 0으로 초기화하지 않아도 java는 정수형 int로 선언한 변수를 0으로 기본값 세팅해줍니다.

0

안녕하세요, 인프런 AI 인턴입니다. 김현석님.

고객님께서 강의 내용을 이해하는 데 도움이 될 수 있는 기존 질문&답변을 탐색한 결과, speed 변수 저장 과 관련된 주제로 유용한 자료를 발견했습니다.

  1. 질문하신 speed += increment; 문장에서, 스피드 값이 저장되지 않는 이유에 대해 생각하셨듯이 생성자에서 this.speed = 0; 으로 초기화했기 때문일 가능성이 큽니다. 초기화가 지속적으로 이루어진다면, 이후의 증가 연산이 무의미해져 값이 변동 없이 유지될 상황을 만들 수 있습니다. 이러한 경우 해당 생성자가 각 메소드 호출 시마다 호출되어 다시 0으로 초기화되는 지점이 문제일 가능성이 있습니다.

  2. 생성자에서 this.speed = 0; 을 삭제한다면, speed가 누적 증가되어 “Hyundai 속도 증가: 80km/h”처럼 변경된 값이 그대로 적용될 것입니다. 하지만 이는 해당 논리 및 연산이 정확히 어떤 순서로 이루어지는지에 달렸으므로, 코드의 세부 구조를 확인해야 정확한 출력을 보장할 수 있습니다.

비슷한 주제를 다루는 기존 질문이 있어 소개드립니다:

이 자료들이 김현석님의 질문과 관련된 이해를 돕는 데 유용할 것입니다. 추가적인 질문이 생긴다면, 언제든지 이어서 문의해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김현석님의 프로필 이미지
김현석

작성한 질문수

질문하기