inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Học Java bằng Hình ảnh, Phần 2: Hướng đối tượng!

안녕하세요. 생성자관련?하여 질문드립니다.

249

ska2485

27 câu hỏi đã được viết

0

자식클래스가 부모클래스를 상속하는 경우에 부모클래스의 필드값을 쓰고싶으면 생성자를 통해 초기화를 보통 했었는데요.

​

갑자기 든 생각인데 자식클래스에서 부모클래스의 값을 바로 초기화 할 수 있는 방법은 없는걸까요?

​

부모클래스(동물), 자식클래스(조류)인 경우에

public class 동물{

String value;

}

일때 자식클래스에서 동물의 참조변수를 만들어서 동물 클래스의 value에 접근하려해도 안되고, 당연하지만 '.'으로 접근도 불가능해서

​

public class 조류{

public 조류(){

value = "새";

}

}

이런식으로 꼭 생성자를 통해서만 초기화가 가능한걸까요?

 

oop java

Câu trả lời 1

0

hongpark

자식 객체가 완성되려면
부모 영역부터 만들어져야 합니다.

2층 건물을 지으려면
1층 건물이 먼저 지어져야만 하는 것 처럼 말이죠

따라서,
자식 생성자의 첫줄은 반드시
부모의 생성자 호출이 이뤄져야합니다.

여기서 부모의 생성자
즉, super()의 호출은
부모 영역 객체의 생성과 필드값을 초기화 하는데,

이를 통해 값을 초기화하는 것이 올바른 방법입니다.

0

ska2485

http://colorscripter.com/s/DPrjZj5

코드 링크입니다.!

 

 

 

 

사실 원래 코드가 이런데 제가 무분별하게 생략을 해서 질문을 드린것 같네요.; 죄송합니다.;;

 

 

실행클래스에서 bird 참조객체를 통해 부모클래스인 동물의 showMe 메서드를 사용해

 

동물의 String필드값을 초기화해서 "조류"를 초기화함이 목적인데

 

메인실행 클래스에서 " = new 조류() " 자체가 조류클래스의 생성자 조류() 를 실행시킨다고 봐야하는 건가요?

 

(참조객체인 bird를 만들기위해 new 조류() 를 할때 동물의 myClass 값이 바로 초기화 된다고 보는걸까요?)

 

 

2. 해당방법말고 혹시 동물 클래스에있는 필드값을 생성자를 통한 초기화가아닌 다른방법은 없는지 질문같이 부탁드리겠습니다..!

0

hongpark

실행클래스에서 bird 참조객체를 통해 부모클래스인 동물의 showMe 메서드를 사용해

 

동물의 String필드값을 초기화해서 "조류"를 초기화함이 목적인데

👉 showMe() 에서 값을 초기화하는 것을 추천하지 않습니다.

 

메인실행 클래스에서 " = new 조류() " 자체가 조류클래스의 생성자 조류() 를 실행시킨다고 봐야하는 건가요?

👉 맞습니다. 생상자의 호출은, new 키워드와 함께 수행됩니다.

 

(참조객체인 bird를 만들기위해 new 조류() 를 할때 동물의 myClass 값이 바로 초기화 된다고 보는걸까요?)

👉 자세히 풀어 설명하면, 조류 객체(2층)가 만들어지기 위해 먼저 동물 영역(1층)이 생성되고, 그 다음 조류 객체가 완성됩니다. 이 때, 부모의 필드 myClass가 조류() 생성자에 의해 초기화 됩니다. 더 자세한 내용은 "상속 관계에서의 생성자 호출" 과정을 학습해보세요

 

2. 해당방법말고 혹시 동물 클래스에있는 필드값을 생성자를 통한 초기화가아닌 다른방법은 없는지 질문같이 부탁드리겠습니다..!

👉 객체의 필드값 초기화는 생성자 또는 세터를 통해 초기화하는 것이 좋습니다. showMe() 메소드에서 값을 초기화하는 것은 추천하지 않습니다. 

 

0

ska2485

시간내 답변해주셔서 감사합니다! 해당부분 찾아 공부하겟습니다 !

객체지향 Java 파트2 붕어빵 문제 질문 있습니다.

0

191

2

11장 연습문제 6번

0

223

3

출력값이 다르다고 나오네요!

0

375

1

연습문제 이클립스에서는 되는데요

0

310

1

객체 배열과 반복문 강의 중

0

435

2

클래스 실행 순서가 궁금합니다.

0

713

2

자바api주사위통계 예제2번 질문있습니다

0

362

1

자바를 부탁해 질문

0

715

1

질문있습니다.

0

364

1

강의 정리 내용

0

360

1

유튜버 강의와 차이점 문의드립니다.

0

361

1

홍팍님 교재 문의

0

332

1

외부로부터 감추기 문제 질문

0

272

1

클래스가 다른데 메소드를 어떻게 가져오는건가요?

0

283

1

객체 생성할 때 매개변수에 new연산자는 왜 붙인건가요?

0

349

1

홍팍쌤 안녕하세요

0

258

1

다형성(?)에대해 질문드립니다.

0

248

1

생성자

0

314

1

Object최상위 클래스에

0

243

1

질문있습니다.

0

187

1

질문있습니다.

0

178

1

void 질문있습니다.

0

214

1

return에 대해 질문있습니다

0

238

1

생성자를 만들어야 하는 이유

0

277

1