해결된 질문
작성
·
61
답변 2
0
이해하신 것이 맞습니다.
아무 생성자가 없으면 Java 언어에서 자체적으로 빈 내용의 생성자를 만들어줍니다.
new Dog();는 파라미터가 없는 기본 생성자를 호출하라고 하는 것이고, 없으니 빈 내용의 기본 생성자가 자동으로 호출되었을 겁니다.
그 다음에 예제는 멤버 변수에 값을 추가하는 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 조창호님.
질문에서 말씀하신 부분은 객체 지향 프로그래밍의 기본 사항인 자바의 클래스와 생성자에 관한 것입니다. 자바에서는 클래스가 명시적으로 생성자를 작성하지 않으면 기본 생성자가 자동으로 제공됩니다. 이것이 질문에서 “Dog” 클래스 내에 생성자가 없는데도 객체를 생성할 수 있는 이유입니다.
Dog myDog
에서 “Dog”는 데이터 타입처럼 사용됩니다.new Dog();
는 이 기본 생성자를 호출하여 객체를 생성합니다.따라서, 클래스 내에 생성자가 없어도 new
키워드를 사용하여 객체를 생성할 수 있는 것입니다. 이 과정에서 생성된 객체는 인스턴스라고 불리며, 클래스의 설계도를 따르는 실제 구현체입니다.
효과적으로 이해하시려면, 기본 생성자를 명시적으로 작성해보거나, 매개변수가 있는 생성자를 추가하여 객체 생성 시작 동작 방식을 비교해보는 것도 좋은 방법입니다. 예를 들어, 다음과 같이 작성해 볼 수 있습니다:
class Dog {
Dog() {
System.out.println("Dog created with default constructor");
}
}
위와 같은 코드에서는 명시적으로 기본 생성자를 작성한 사례를 볼 수 있습니다.
이에 대한 보다 자세한 설명은 아래 유사한 질문과 답변에서 확인해 보실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.