Microsoft MVP성태의 닷넷 이야기
(글쓴이의 요청으로 삭제합니다.) [링크 복사], [링크+제목 복사]
조회: 8881
글쓴 사람
(none)
홈페이지
첨부 파일
 

비밀번호

댓글 쓴 사람
 



2014-04-22 09시00분
[spowner] 값의 암시적 형변환과 인스턴스의 암시적 형변환은 유사하지 않습니다.
값의 암시적 형변환은 값이 해당 타입으로 변환되고
                                     ~~~~~~~
인스턴스의 암시적 형변환은 인스턴스가 변화되지 않습니다. 인스턴스는 동일하되 단지 상위 개념으로 "바라본다"고 이해하시면 됩니다.
                                   ~~~~~~~~~~~~~~~~
노트북은 컴퓨터이므로 노트북을 컴퓨터로 바라봐도(암시적 형변환) 문제가 안됩니다.
하지만, 컴퓨터는 노트북이 아니므로 컴퓨터를 노트북으로 암시적 형변환 할 수 없습니다.
[손님]
2014-04-22 09시06분
[spowner] Pg. 142의 설명은 사용법이 유사하다라는 의미인 것 같고 동작이 유사하다라는 의미는 아닌 것 같습니다.
값은 표현할 수 있는 수의 범위로 암시적 형변환을 이해하시면 될 것 같고 (작은 범위의 타입은 큰 범위의 타입으로 암시적 형변환 가능하다)
인스턴스는 상속에 의한 추상적/구체적 의미의 범위로 암시적 형변환을 이해하시면 될 것 같습니다. (부모 클레스일 수록 추상적, 자식 클레스일 수록 구체적)
예를 들어) "생명 -> 동물 -> 유인원 -> 인간 -> 한국인 -> 나" 추상적/구체적 의미가 상속으로 표현되었을 때
나는 생명이고 동물이며 유인원인고 인간이며 한국인이다. 는 참이므로 모두 암시적 형변환이 가능하나 그 역은 참이 아니므로 암시적 형변환이 불가능하다라고 이해하시면 될 것 같습니다.


[손님]
2014-04-22 12시34분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]
2014-04-22 01시54분
[이성환] 타입의 개념을 그렇게 이해하시면 안 됩니다. 범주의 개념으로 받아들이셔야지요.

노트북이 컴퓨터가 아니면 데스트탑도 컴퓨터가 아니겠네요?

같은 개념이라면 스마트폰은 전화기가 아닌 거군요.

상속은 기능의 포함 관계가 아니 범주의 개념으로 받아들여야 합니다.
(물론 공통된 기능을 중심으로 범주를 나누긴 하지만요.)

상속의 개념이 확실히 서 있지 않은 상태에서 형변환을 생각하시니 다들 다른 소리를 하는 것 같아 짜증이 나시겠지만

상속의 개념이 자리 잡으면 다른 모든 전문가들이 같은 얘기를 다른 예시를 들어 말하고 있다는 것을 아시게 될 겁니다.
[손님]
2014-04-23 01시54분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]
2014-04-23 02시49분
[spowner] 이런 생각도 해봅니다. 우리나라 개발자들은 대체로 실 경험을 통해 개념을 이해하는데(이론적 깨달음이 아닌)
머리로 이해는 하는데 어떻게 표현해야 할지 난감해하기도 하는것 같습니다. 그래서 표현 방식이 각자 다르지 않을까.. 그래서 입문자가 보기에는 서로 다른 얘기를 하는 것 같은..
물론 잘못 알고 답변해주시는 분도 있겠지요.
어쨌든 정성태님은 최고중의 최고(best of best) 전문가이셔서.. 제가 레벨1의 고수라면 정성태님은 레벨100의 초초고수입니다. 부디 이곳을 떠나지 마세요. ㅎㅎ
제 생각은 저서에 표현된 포함관계가 잘못된것은 아니지만, 입문자를 위해 좀 더 보완은 필요한 것 같네요.

참고로 클레스 상속을 단순히 대소 관계로 이해하시면 안됩니다. 객체지향의 여럿 특성과 충돌이 일어날 것입니다.
제 제안은 "바라본다"로 이해하시라는 것입니다. 인스턴스는 형변환을 통해 변화되지 않습니다. 단지 그 형태로 "바라보는"것입니다. 이부분을 이해하지 못하셔서
여럿 혼란이 오시는 것 같습니다. 컴퓨터를 상속받은 노트북에서 노트북(인스턴스)을 컴퓨터로 "바라본다"한들 그 인스턴스는 "노트북"입니다. "컴퓨터"가 아닙니다.
바꿔 말하면 부모클레스로 암시적 형변환이 된다. 자식클레스로는 암시적 형변환이 안된다. 왜냐. 인스턴스 자체가 변화되는게 아닌 "바라보는"것인데
부모클레스의 특성을 물려받았으니 부모 클레스로 "바라볼수"있다는 것입니다. 하지만 자식 클레스는 또 그 클레스만의 특성이 부여되었기 때문에
인스턴스는 변화될 수 없으므로 새로운 특성이 부여된 자식 클레스로 "바라볼"수 없습니다.

도움 되셨길 바라면서...
[손님]
2014-04-23 07시51분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]
2014-04-24 02시20분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]
2014-04-24 02시22분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]
2014-04-24 01시44분
적절한 지적입니다.

우선, 142페이지를 보면 첫번째 줄에 "기본 자료형에 대해서는 '3.2 형변환'절에서 설명한 규칙을 따르는 반면" 이라고 시작하면서 "사용자가 class 예약어를 이용해 임의로 만든 타입에는 어떤 형변환 규칙이 적용될까?" 라고 시작했는데요. 즉, 기본 자료형은 "3.2 형변환" 설명으로 이해하시면 되고, class로 인한 타입의 형변환은 "반면"이라는 단어를 쓴 것처럼 다소 다르다는 것을 의미했던 것입니다.

말씀하신 것처럼, "이와 유사하게"라고 쓴 것은 분명히 오해의 소지가 있어 보입니다. 오히려 "이와 반대로" 라고 하는 편이 맞을 것 같습니다.

사실, "3.2 형변환"에서 설명한 규칙은 '기본 자료형으로써 값의 범위'를 놓고 따졌을 때 적용할 수 있는 규칙일 뿐, "타입의 부모/자식"관계에 동일하게 적용할 수 있는 것은 아닙니다. short는 int의 부모 타입이 아니고 (만약 short가 int의 부모타입이었다면 동일한 설명이 가능했을 것입니다.) 완전히 별개의 타입 관계입니다. 단지 내부적으로 '기본 자료형'으로써 다소 특별한 취급을 받고 있기 때문에 서로 간의 형변환이 가능한 것일뿐.

이 점을 분명하게 해서 설명을 보강하는 것이 맞을 것 같습니다. ^^
정성태
2014-04-24 02시22분
[(none)] (글쓴이의 요청으로 삭제합니다.)
[손님]

... [31]  32  33  34  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
3695Beren Ko2/15/20166369호출당한 메서드가 호출한 메서드를 알 수 있는 방법이 일반적인 방법 말고도 있을까요? [2]
3693조영준2/11/20167837UWP 앱을 만들고 있습니다. 죄송하지만 몇 가지 질문 드립니다. [4]
3692후배2/8/20166352html/css/js를 이용한 winForm의 UI표현이 가능 한가요? [3]
3690김대석2/5/20165882문의 드립니다. [2]
3687허재영2/3/20166634web api 보안관련 질문입니다. [2]
3685조진우2/1/20166350메인 응용 프로그램에서 DLL을 실시간으로 접근하여 사용하는데 이것을 모니터링 할 수 있을 까요? [1]
3684나그네1/27/20166486안녕하세요..wcf 관련하여 질문있습니다. [4]파일 다운로드1
3683김태형1/25/20166313 안녕하세요 저작도서를 구매하려는데 한가지 문의 사항이 있어서 질문드립니다. [1]
3681이영균1/8/20167543IE브라우저 추가기능관리의 항목을 사용함으로 c#코드로 변경을 하려고 합니다. [8]
3680후배1/6/20168576추천할만한 소켓 라이브러리 있으신가요? [2]
3679초록물꼬기1/6/20168404Parallel.For 에서 동기화문제에 관한 질문입니다. [11]파일 다운로드1
3678김민우1/3/20166910IHS 오류에 대한 질문입니다. [2]파일 다운로드1
3677초록색우산12/31/20158001HTTP 통신 - WebClient 이용시 한글깨짐 현상 발생 [2]
3676서정열12/31/20156518안녕하세요 WebService SoapExtensionImporter 에 대해서 질문드립니다. [3]
3675차가워12/30/20156609윈폼, 폼인폼 상황에서 하위컨트롤 포커스 문제 [1]
3673Sungwoo Park12/24/20157584UWP예외 발생 : 'System.Runtime.InteropServices.COMException'(mscorlib.ni.dll) 해결방법 [2]
3672Sungwoo Park12/23/20156420global::System.Diagnostics.Debugger.Break();가 노랗게 표시될시 [2]
3671이상준12/22/20159667한글 키보드 입력에 대해서 질문이 있습니다. [3]
3670Sungwoo Park12/18/20157291UWP 주기적으로 신호를 보내고 클라이언트에서 신호가 오면 받는 프로그램을 하려고 합니다. [5]
3669다비드12/18/20155501인터넷 임시파일 삭제 관련 질문. [1]
3668김치사발면12/16/20155197템플릿이 자꾸 초기화? 되버리네요 [1]
3667김치사발면12/15/20155102템플릿 설정 추가 질문 [1]파일 다운로드1
3666노태현12/15/20155198사용자별로 권한을 주고 볼 수 있는 데이터를 제한하려면 어떤 방법으로 접근하는게 좋을까요? [2]
3665김치사발면12/14/20157470C# 템플릿 설정이 이상해요ㅜㅜ [3]파일 다운로드1
3664KuLu12/10/20155306멀정하던 사이트 중 일부메뉴가 응답없음이 되어버립니다. [3]
3663Sungwoo Park12/10/20156457UWP 서버 프로그래밍 작업 중 [5]
... [31]  32  33  34  35  36  37  38  39  40  41  42  43  44  45  ...