2013-02-25 1 views
0

누구든지 나를 계몽시킬 수 있습니까? 부모 클래스 (메인 애플릿 클래스)에 속한 객체의 소켓에 액세스하려고했습니다. 나는이 사실을 당신에게 더 잘 알려줄 수 있었으면 좋겠다. 약간의 한마디하지만 어쩌면 내 근원은 조금 더 설명 할 것이다. 당신이 정적 mysocks를 정의하기 때문에부모 클래스에있는 객체와 소켓을 공유하려고 시도하는 사람

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.PrintWriter; 
import java.net.Socket; 
import java.net.UnknownHostException; 

import javax.swing.JApplet; 
import javax.swing.JOptionPane; 

class SocketsC { 

    Socket clientsocket; 
    static PrintWriter out; 
    static BufferedReader in; 

    public void SocketsC() { 

    } 

    public void connectSock() { 

     try { 

      clientsocket = new Socket("localhost", 9900); 
      out = new PrintWriter(clientsocket.getOutputStream(), true); 
      in = new BufferedReader(new InputStreamReader(clientsocket.getInputStream())); 

     } catch (UnknownHostException e) { 

      System.exit(1); 

     } catch (IOException e) { 

      System.exit(1); 
     } 
    } 
} 

class AccessSock { 

    AccessSock() { 

     // Here is where I am trying to access the socket from the mysocks object 
     mysocks.out.println("working"); // This doesn't work... 
    } 

} 

public class main extends JApplet { 

    static SocketsC mysocks; 

    public void init() { 

     createApp(); 
    } 

    public void createApp() { 

     SocketsC mysocks = new SocketsC(); 
     AccessSock sendtext = new AccessSock(); 
    } 
} 

TYIA -Roland

+1

어떤 오류가 발생합니까? _it는 무슨 의미입니까? –

+1

죄송합니다. 코드의 나머지 부분을 보려면 아래로 스크롤하지 않았습니다. 특정 경우에'main.mysocks.out.println (...)'이 작동해야합니다. – Supericy

+0

mysocks를 해결할 수 없습니다. –

답변

1

, 당신은 그것을 액세스 할 수 className.variable를 사용해야합니다.

static SocketsC mysocks; 

변경이 :

mysocks.out.println("working"); 

main.mysocks.out.println("working"); 

이 작동합니다. 수업에는 mysocks이라는 변수가 없으므로 던지고있는 오류입니다. 코드 mysocks.out.println("working");에서

+0

작동합니다! Tyvm 내 친구. 모두 제일 좋다! –

0

난 당신이
이 그래서 직접 사용

SocketsC.out.println("working"); 
0

시도 것을 할 수 println 방법 ...

public class main extends JApplet { 
    //existing code 

    public void createApp() { 
     mysocks = new SocketsC(); 
     AccessSock sendtext = new AccessSock(mysocks); 
    } 

class AccessSock { 

    AccessSock(SocketsC mysocks) { 
    // Here is where I am trying to access the socket from the mysocks object 
    mysocks.out.println("working"); // This doesn't work... 

    } 
} 
에 액세스하려면 이해
관련 문제