2010-12-09 6 views
4

주 수업에 스레드를 만듭니다. 스레드는 소켓에서 쓰고 읽는 타이머를 가지고 있습니다.다른 클래스에서 생성 된 개체에 액세스

스레드 클래스에서 메소드를 호출해야합니다 (예 : writeSomething()). 선언 된 곳 (Main) 밖의 다른 클래스에서 메소드를 호출해야합니다.

다른 클래스에서 객체를 참조하는 방법은 무엇입니까? 편집

public static Thread connectionThread; 

ModelJTable table = new ModelJTable(); 
connectionThread = new Thread(new ConnectionThread(table), "connectionThread"); 
connectionThread.start(); 

나는 스레드 클래스의 메소드를

내가 다른 클래스에서 경우에 액세스 할
public void openFile(String fileName){ 
    String request = "open;" + fileName; 
    out.print(request); 
} 

(JTable로 클래스)

String open = "open;" + getname + ";" + getpath; 
// This doesnt work 
ConnectionThread.openFile(open); 

이 전화를 걸 때 오류가 발생합니다

타입 ConnectionThread 없음 둘러싸는 인스턴스

+0

방금 ​​메서드를 호출하거나 클래스의 특정 인스턴스 메서드를 호출해야합니까? –

+0

글쎄, 난 소켓 연결을 가지고있는 스레드, 그리고 bufferedreader 및 인쇄 작가 스트림에 있습니다. 기본적으로 스레드가 소켓에 메시지를 작성하도록해야합니다. 내가 다른 곳에서 작성한 메시지로이 클래스의 스레드 메소드를 호출하려고합니다. 방금 메소드를 호출하고 메소드가 작성된 인쇄기에 쓰면 호출이 충분합니다 (특정 오브젝트가 아님) – jarryd

+0

구현을 시도해보십시오 내 대답은? –

답변

8

초 클래스의 생성자에 전달할 또는 퍼스트 클래스는 정적 확인 또는 직렬화 어느 범위에서 액세스

방법 1 : 정적 one

Class A{ 
public static int a=0; 
} 

Class B{ 
public void someMethod(){ 
A.a = 10; 
} 
} 
+0

또는 접근 자 (getter) 메소드를 사용한다. – RoflcoptrException

+0

@alJaree 업데이트를 확인하고 다음 번에 주석을 쓸 때 작성한다. @ –

+0

뒤에 공백이없는 @ org.life.java 설명을 다시 읽습니다. 그것은 검색 기능을위한 것입니까? – jarryd

0

메서드를 호출해야하는 클래스에 대한 참조를 전달합니다.

+0

을 읽으십시오. main에 스레드를 작성하십시오. 스레드 connectionThread = 새로운 어쩌구, 그냥 호출 클래스에서 다음을 가져야합니까 Thread connectionThread; ? 또는 패스로 무엇을 의미합니까? – jarryd

+0

connectionThread에 대한 참조를 호출 클래스에 전달하십시오. – jzd

+0

@alJaree as myObj = new myClass (connectionThread) –

관련 문제