안녕하세요. 생성자관련?하여 질문드립니다.
206
投稿した質問数 26
자식클래스가 부모클래스를 상속하는 경우에 부모클래스의 필드값을 쓰고싶으면 생성자를 통해 초기화를 보통 했었는데요.
갑자기 든 생각인데 자식클래스에서 부모클래스의 값을 바로 초기화 할 수 있는 방법은 없는걸까요?
부모클래스(동물), 자식클래스(조류)인 경우에
public class 동물{
String value;
}
일때 자식클래스에서 동물의 참조변수를 만들어서 동물 클래스의 value에 접근하려해도 안되고, 당연하지만 '.'으로 접근도 불가능해서
public class 조류{
public 조류(){
value = "새";
}
}
이런식으로 꼭 생성자를 통해서만 초기화가 가능한걸까요?
回答 1
0
자식 객체가 완성되려면
부모 영역부터 만들어져야 합니다.
2층 건물을 지으려면
1층 건물이 먼저 지어져야만 하는 것 처럼 말이죠
따라서,
자식 생성자의 첫줄은 반드시
부모의 생성자 호출이 이뤄져야합니다.
여기서 부모의 생성자
즉, super()의 호출은
부모 영역 객체의 생성과 필드값을 초기화 하는데,
이를 통해 값을 초기화하는 것이 올바른 방법입니다.
0
http://colorscripter.com/s/DPrjZj5
코드 링크입니다.!
사실 원래 코드가 이런데 제가 무분별하게 생략을 해서 질문을 드린것 같네요.; 죄송합니다.;;
실행클래스에서 bird 참조객체를 통해 부모클래스인 동물의 showMe 메서드를 사용해
동물의 String필드값을 초기화해서 "조류"를 초기화함이 목적인데
메인실행 클래스에서 " = new 조류() " 자체가 조류클래스의 생성자 조류() 를 실행시킨다고 봐야하는 건가요?
(참조객체인 bird를 만들기위해 new 조류() 를 할때 동물의 myClass 값이 바로 초기화 된다고 보는걸까요?)
2. 해당방법말고 혹시 동물 클래스에있는 필드값을 생성자를 통한 초기화가아닌 다른방법은 없는지 질문같이 부탁드리겠습니다..!
0
실행클래스에서 bird 참조객체를 통해 부모클래스인 동물의 showMe 메서드를 사용해
동물의 String필드값을 초기화해서 "조류"를 초기화함이 목적인데
👉 showMe() 에서 값을 초기화하는 것을 추천하지 않습니다.
메인실행 클래스에서 " = new 조류() " 자체가 조류클래스의 생성자 조류() 를 실행시킨다고 봐야하는 건가요?
👉 맞습니다. 생상자의 호출은, new 키워드와 함께 수행됩니다.
(참조객체인 bird를 만들기위해 new 조류() 를 할때 동물의 myClass 값이 바로 초기화 된다고 보는걸까요?)
👉 자세히 풀어 설명하면, 조류 객체(2층)가 만들어지기 위해 먼저 동물 영역(1층)이 생성되고, 그 다음 조류 객체가 완성됩니다. 이 때, 부모의 필드 myClass가 조류() 생성자에 의해 초기화 됩니다. 더 자세한 내용은 "상속 관계에서의 생성자 호출" 과정을 학습해보세요
2. 해당방법말고 혹시 동물 클래스에있는 필드값을 생성자를 통한 초기화가아닌 다른방법은 없는지 질문같이 부탁드리겠습니다..!
👉 객체의 필드값 초기화는 생성자 또는 세터를 통해 초기화하는 것이 좋습니다. showMe() 메소드에서 값을 초기화하는 것은 추천하지 않습니다.
객체지향 Java 파트2 붕어빵 문제 질문 있습니다.
0
140
2
11장 연습문제 6번
0
156
3
출력값이 다르다고 나오네요!
0
321
1
연습문제 이클립스에서는 되는데요
0
265
1
객체 배열과 반복문 강의 중
0
382
2
클래스 실행 순서가 궁금합니다.
0
662
2
자바api주사위통계 예제2번 질문있습니다
0
314
1
자바를 부탁해 질문
0
675
1
질문있습니다.
0
329
1
강의 정리 내용
0
332
1
유튜버 강의와 차이점 문의드립니다.
0
318
1
홍팍님 교재 문의
0
295
1
외부로부터 감추기 문제 질문
0
235
1
클래스가 다른데 메소드를 어떻게 가져오는건가요?
0
240
1
객체 생성할 때 매개변수에 new연산자는 왜 붙인건가요?
0
307
1
홍팍쌤 안녕하세요
0
217
1
다형성(?)에대해 질문드립니다.
0
215
1
생성자
0
279
1
Object최상위 클래스에
0
209
1
질문있습니다.
0
166
1
질문있습니다.
0
152
1
void 질문있습니다.
0
178
1
return에 대해 질문있습니다
0
210
1
생성자를 만들어야 하는 이유
0
245
1

