0

誰かが私を啓発できますか?親クラス (メイン アプレット クラス) に属するオブジェクトのソケットにアクセスしようとしました。これをもっと簡潔にできたらいいのにと思います。ちょっと言い過ぎですが、私の情報源がもう少し詳しく説明してくれるかもしれません。

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 - ローランド

4

3 に答える 3

1

静的として定義mysocksしたので、それにアクセスするにはを使用する必要がありますclassName.variable

static SocketsC mysocks;

これを変える:

mysocks.out.println( "working" );

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

これは機能するはずです。mysocksクラスに呼び出される変数がないため。エラーをスローしています。

于 2013-02-25T04:12:08.217 に答える
0

あなたのコードから私はあなたがメソッドmysocks.out.println( "working" );にアクセスしたいことを理解している のであなたはそれを使って直接それをすることができます println

SocketsC.out.println( "working" );
于 2013-02-25T04:19:43.210 に答える
0

試す...

 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...

  }
}
于 2013-02-25T04:21:12.300 に答える