Public void Do(Source obj) ~~~ 이부분에서 obj라는 메소드가 없는데 어떻게 사용된것일까요...?
댓글 29
source잖아
익명(223.39)2019-01-29 13:14
답글
그냥 source 클래스를 obj라는 인자로 받는다. 라고 해석하면 될까요?
익명(211.36)2019-01-29 13:16
무슨 말이야? Source 클래스 안에 getresult() 메소드 있잖아..
익명(211.199)2019-01-29 13:16
답글
(Source obj) <<이게 의미하는 바를 모르겠습니다 ㅠㅠ
익명(211.36)2019-01-29 13:17
답글
Source 는 클래스고, obj 는 참조변수야. 클래스를 가지고 와서 잠는 그릇의 이름으로 지정한것
익명(211.199)2019-01-29 13:19
답글
이름은 아무거나 해도 상관없어 막말로 Source djsjgkgkd 라고 해도 괜찮음. 대신 이러면 getResult() 를 호출하려면 djsgkgkd.getResult() 로 바꿔줘야겠지
익명(211.199)2019-01-29 13:20
답글
근데 참조변수라는 표현이 맞던가 잘모르겠다.. 그런거 신경안쓰다보니 까먹어서 ..
익명(211.199)2019-01-29 13:20
답글
교육 예시로 보여줄 때는 obj 라고 보통 적지. 왜냐하면 교육이 처음 시작된게 영어권이고 그게 굳혀진것. 영어권에선 이런 표현들도 좀더 직관적으로 다가올텐데 obj는 object(객체) 의 약자인건 한국인들도 알지만 객체라는 느낌으로는 잘 안받아들여진다는점이 안타까움.
익명(211.199)2019-01-29 13:23
답글
Source라는 클래스를 인스턴스화 했다고 볼수 있는걸까요?? 만약 그렇게 볼 수 있다면 미리 선언을 해줘야하지않아요??
익명(211.36)2019-01-29 13:23
답글
객체? 라고 하면 뭐지? 싶잖아.. 객체 = 클래스 이고, obj는 클래스를 가져와서 뭘 해보고 싶은데 obj라는 이름을 붙여서 사용하겠다.. 라는거야
익명(211.199)2019-01-29 13:25
답글
공부할때 클래스 그자체로는 이용이 불가하고 그 클래스를 인스턴스화?해서 사용할 서 있다. 라고 배워서..
익명(211.36)2019-01-29 13:26
답글
줄줄이 설명하려고 했는데 더 헛갈릴거같아서 지웠음 클래스를 객체화시켜야하는건 맞고, Source 에 obj 라는 이름을 넣기만 해도 그게 이루어진단거다..
익명(211.199)2019-01-29 13:30
답글
이해할때 클래스 = 쿠키틀 (Book)
객체 = 쿠키틀에서 나온 결과물?(book1)
이런식으로 해석을 해서...
혹시 제가 잘못 이해를하고있는걸까요 ㅠㅠ 객체는 그냥 클래스 라고 생각하면 되는걸까요??
익명(211.36)2019-01-29 13:31
답글
오 그러면 선언을 따로 하지않아도 obj라는 객체가 생성된건가요??
익명(211.36)2019-01-29 13:32
답글
제가 모자라서 답답하실텐데 가르침주셔서 감사합니다..ㅎㅎ
익명(211.36)2019-01-29 13:33
김철수랑 박말똥이란 애가 있는데 서로 이야기를 하다가, 김철수(프로그래머)가 제주도에 있는 어떤 집(Source class)을 설명해야되게 생겼어. 근데 박말똥(Do 메소드)은 그 집을 몰라. 그래서 얘기하기 편하게 김철수가 이렇게 말을해.
익명(211.199)2019-01-29 13:33
답글
김철수: 야 박말똥 제주도에 있는 집 이름 obj라고 하고 그렇게 부르기로 하자. 박말똥 : ㅇㅋ 이렇게 서로 약속해.
익명(211.199)2019-01-29 13:35
답글
이게 바로 Do(Source obj) 의 실체이고, 약속은 djdjfkg 로 하자거나 alalsak로 하자거나 뭐든 상관없음.
익명(211.199)2019-01-29 13:36
답글
도움 주셔서 감사합니다... Target target = new Target(); 이 구문도 철수와 말똥이가 한 약속과 같은종류라고 보면 되는걸까요??
익명(211.36)2019-01-29 13:39
답글
ㅇㅇ. Target dmdkfkglgd = new Target(); 해도 상관없고, 이때 new 라는 명령어를 사용해서 메모리상에 Target 클래스를 올리고 호출하는것임
익명(211.199)2019-01-29 13:41
마지막으로, 선언이 아니라 소스 맨위에 Source class를 using Source로 작성해줘야 Target 클래스가 알아먹음.
익명(211.199)2019-01-29 13:39
답글
진짜 감사합니다...
익명(211.36)2019-01-29 13:44
답글
왜냐하면 집(Source) 의 이름을 obj로 하자고 김철수가 제안했을때 박말똥이 인간으로 치면 집이라는 개념을 알고있는경우가 정상이니까 상관없는데 컴퓨터는 몰라. 컴퓨터는 바보야. 그래서 그런것도 일일이 인지시켜줘야되기때문.
익명(211.199)2019-01-29 13:45
답글
컴퓨터 : 집이 뭔데? 먹는건가? 이렇게 생각함.. using Source 딱 적어주는순간, 컴퓨터왈 그래 이제 이해했음 ㅋ ~~~라는 걸 하는 놈이 집이란거구만 개쉽네 ㅎㅎ 라고.
Source obj 인자는 자신의 인스턴스 자체를 전달하는거임 ㅇㅅㅇ 넘겨진곳에서 자신을 이용해서 메서드를 호출하기위해 저렇게 하는데 보통 델리게이트나 인터페이스로 구현하지
익명(222.235)2019-01-29 13:50
간단하게 Main 함수에서 생각해보면 1) Source src; -> Source타입 인스턴스 하나를 생성한다. 2) src.Text(); src 인스턴스의 Test()메서드를 호출한다. 3) 그럼 Test()메서드 안에서 Target 인스턴스가 생성되고 target.Do(this) 메서드를 호출하면서 '자기 자신의' 참조변수를 넘겨준다. 4) 넘겨진 참조변수를 이용해서 src.GetResult() 메서드를 호출해서 결과를 얻고 콘솔에 출력한다 ㅇㅅㅇ 즉, 호출자입장에선 피호출자에서 다시 자신의 메서드를 이용하는 '콜백'형태가 되니 콜백함수라 그러는거임
익명(222.235)2019-01-29 13:56
그리고 C#에선 using 문은 '네임스페이스의 사용'의 의미임 써줄필요가 없다. 클래스간은 같은 어셈블리안에서는 서로 기본적으로 internal 접근지정자가 되서 다른 cs파일간에서도 서로 접근이 가능하다 ㅇㅅㅇ
source잖아
그냥 source 클래스를 obj라는 인자로 받는다. 라고 해석하면 될까요?
무슨 말이야? Source 클래스 안에 getresult() 메소드 있잖아..
(Source obj) <<이게 의미하는 바를 모르겠습니다 ㅠㅠ
Source 는 클래스고, obj 는 참조변수야. 클래스를 가지고 와서 잠는 그릇의 이름으로 지정한것
이름은 아무거나 해도 상관없어 막말로 Source djsjgkgkd 라고 해도 괜찮음. 대신 이러면 getResult() 를 호출하려면 djsgkgkd.getResult() 로 바꿔줘야겠지
근데 참조변수라는 표현이 맞던가 잘모르겠다.. 그런거 신경안쓰다보니 까먹어서 ..
교육 예시로 보여줄 때는 obj 라고 보통 적지. 왜냐하면 교육이 처음 시작된게 영어권이고 그게 굳혀진것. 영어권에선 이런 표현들도 좀더 직관적으로 다가올텐데 obj는 object(객체) 의 약자인건 한국인들도 알지만 객체라는 느낌으로는 잘 안받아들여진다는점이 안타까움.
Source라는 클래스를 인스턴스화 했다고 볼수 있는걸까요?? 만약 그렇게 볼 수 있다면 미리 선언을 해줘야하지않아요??
객체? 라고 하면 뭐지? 싶잖아.. 객체 = 클래스 이고, obj는 클래스를 가져와서 뭘 해보고 싶은데 obj라는 이름을 붙여서 사용하겠다.. 라는거야
공부할때 클래스 그자체로는 이용이 불가하고 그 클래스를 인스턴스화?해서 사용할 서 있다. 라고 배워서..
줄줄이 설명하려고 했는데 더 헛갈릴거같아서 지웠음 클래스를 객체화시켜야하는건 맞고, Source 에 obj 라는 이름을 넣기만 해도 그게 이루어진단거다..
이해할때 클래스 = 쿠키틀 (Book) 객체 = 쿠키틀에서 나온 결과물?(book1) 이런식으로 해석을 해서... 혹시 제가 잘못 이해를하고있는걸까요 ㅠㅠ 객체는 그냥 클래스 라고 생각하면 되는걸까요??
오 그러면 선언을 따로 하지않아도 obj라는 객체가 생성된건가요??
제가 모자라서 답답하실텐데 가르침주셔서 감사합니다..ㅎㅎ
김철수랑 박말똥이란 애가 있는데 서로 이야기를 하다가, 김철수(프로그래머)가 제주도에 있는 어떤 집(Source class)을 설명해야되게 생겼어. 근데 박말똥(Do 메소드)은 그 집을 몰라. 그래서 얘기하기 편하게 김철수가 이렇게 말을해.
김철수: 야 박말똥 제주도에 있는 집 이름 obj라고 하고 그렇게 부르기로 하자. 박말똥 : ㅇㅋ 이렇게 서로 약속해.
이게 바로 Do(Source obj) 의 실체이고, 약속은 djdjfkg 로 하자거나 alalsak로 하자거나 뭐든 상관없음.
도움 주셔서 감사합니다... Target target = new Target(); 이 구문도 철수와 말똥이가 한 약속과 같은종류라고 보면 되는걸까요??
ㅇㅇ. Target dmdkfkglgd = new Target(); 해도 상관없고, 이때 new 라는 명령어를 사용해서 메모리상에 Target 클래스를 올리고 호출하는것임
마지막으로, 선언이 아니라 소스 맨위에 Source class를 using Source로 작성해줘야 Target 클래스가 알아먹음.
진짜 감사합니다...
왜냐하면 집(Source) 의 이름을 obj로 하자고 김철수가 제안했을때 박말똥이 인간으로 치면 집이라는 개념을 알고있는경우가 정상이니까 상관없는데 컴퓨터는 몰라. 컴퓨터는 바보야. 그래서 그런것도 일일이 인지시켜줘야되기때문.
컴퓨터 : 집이 뭔데? 먹는건가? 이렇게 생각함.. using Source 딱 적어주는순간, 컴퓨터왈 그래 이제 이해했음 ㅋ ~~~라는 걸 하는 놈이 집이란거구만 개쉽네 ㅎㅎ 라고.
다들 먼소리하는지 모르겠는데? ㅇㅅㅇ Source 객체 자신자체를 참조로 전달해서 자신의 메소드가 호출되니까 콜백메서드잖아
Source obj 인자는 자신의 인스턴스 자체를 전달하는거임 ㅇㅅㅇ 넘겨진곳에서 자신을 이용해서 메서드를 호출하기위해 저렇게 하는데 보통 델리게이트나 인터페이스로 구현하지
간단하게 Main 함수에서 생각해보면 1) Source src; -> Source타입 인스턴스 하나를 생성한다. 2) src.Text(); src 인스턴스의 Test()메서드를 호출한다. 3) 그럼 Test()메서드 안에서 Target 인스턴스가 생성되고 target.Do(this) 메서드를 호출하면서 '자기 자신의' 참조변수를 넘겨준다. 4) 넘겨진 참조변수를 이용해서 src.GetResult() 메서드를 호출해서 결과를 얻고 콘솔에 출력한다 ㅇㅅㅇ 즉, 호출자입장에선 피호출자에서 다시 자신의 메서드를 이용하는 '콜백'형태가 되니 콜백함수라 그러는거임
그리고 C#에선 using 문은 '네임스페이스의 사용'의 의미임 써줄필요가 없다. 클래스간은 같은 어셈블리안에서는 서로 기본적으로 internal 접근지정자가 되서 다른 cs파일간에서도 서로 접근이 가능하다 ㅇㅅㅇ
역시 c# 하는 애들은 부드럽고 착함