클래스간의 값 전달 문제입니다.
글쓴이: sadrove / 작성시간: 수, 2004/10/13 - 11:36오전
자바에서...
클래스 A,B,C가 있습니다..
A클래스에서 B,C에 대한 객체를 생성합니다..
여기서 B객체안에 name이란 변수가 있는데...
C객체에서 어떠한 이벤트가 발생할때마다 B객체안의 name이란 변수의 값을 변경해주어야 합니다..
이걸 어떻게 하면 구현할 수 있을까요..?
물론 C객체에서 new B 해서 새로 객체를 생성해서는 안됩니다..
처음에 A가 생성한 B객체안의 name변수값을 변경해야 한다는 것입니다.
전 A클래스에 setBName(String) 같은걸 만들어서...
C에서 이벤트가 발생할때마다 super.setBName(String) 하려고 했는데..
super 클래스가 A가 아닌가 봅니다...흐...
어떻게 하면 C에서 B의 변수를 조작할 수 있을까요..?
도움 부탁드립니다...^^
Forums:
자바라.. 자바는 포인터가 없다고 알고 있는데..레퍼런스는 있겠죠?
자바라.. 자바는 포인터가 없다고 알고 있는데..
레퍼런스는 있겠죠?
A에서 B를 생성한 다음 C를 생성할 때 B의 name 변수의 레퍼런스를 C에 넘겨줘서 C는 생성시에 받은 B의 name 변수 레퍼런스를 필요할 때 수정하면 되지 않을까요?
자바는 잘 모르지만 답변이 없어서, 혹시 도움이 될까 해서 올립니다.
클래스 B, C의 생성자에 클래스A의 레퍼런스를 넘겨서 구현하는 방법이
클래스 B, C의 생성자에 클래스A의 레퍼런스를 넘겨서 구현하는 방법이 있고 좀 더 깔끔한 방법은
Observer, Observable 패턴을 적용하면 될거 같습니다
Life rushes on, we are distracted
감사합니다...한가지만 더..^^
답변 주신분들 감사합니다..
레퍼런스를 넘기기로 했는데요..
한가지 문제가..
A에서 B와 C를 생성할 때...
C에게 A를 넘겨주려고 했는데..
C를 생성하는 부분이 A의 ActionPerformed 안에서 생성되거든요..
아래와 같이 했더니 this를 ActionListener로 인식하네요..
다른 문제가 걸리지 않는 다면 제일 심플한 방법은 B.name 을 sta
다른 문제가 걸리지 않는 다면 제일 심플한 방법은 B.name 을 static 으로 선언하면 될듯 합니다.
감사합니다..
답변 감사드립니다..
우선 static으로 해결했는데..
뭔지 모르게 찜찜한 느낌이...^^;;
Re: 감사합니다...한가지만 더..^^
local/anonymous-class에서는 final 변수만 참조 할 수 있는걸로 알고 있습니다.
위와같이 코딩하시면 일단 원하시는데로 코딩할 수 있을거 같습니다.
Re: 감사합니다...한가지만 더..^^
A.this를 쓰세요
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
Re: 감사합니다...한가지만 더..^^
몰랐는데, 좋은것 배워갑니다. :P
댓글 달기