Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图与父类中的obejct共享套接字_Java_Oop_Sockets_Applet - Fatal编程技术网

Java 试图与父类中的obejct共享套接字

Java 试图与父类中的obejct共享套接字,java,oop,sockets,applet,Java,Oop,Sockets,Applet,谁能启发我?我试图访问属于父类(主小程序类)的对象中的套接字。我希望我能为你考虑一下。有点多嘴,但也许我的消息来源会进一步解释 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; im

谁能启发我?我试图访问属于父类(主小程序类)的对象中的套接字。我希望我能为你考虑一下。有点多嘴,但也许我的消息来源会进一步解释

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();
    }
}
蒂亚
-罗兰

既然您已经将
mysocks
定义为静态,那么您需要使用
className.variable
来访问它

static SocketsC mysocks;
更改此项:

mysocks.out.println( "working" );


这应该行得通。因为在您的类中没有名为
mysocks
的变量。这是抛出错误。

来自您的代码
mysocks.out.println(“工作”)
我知道您想要访问
println
method
所以你可以直接用

SocketsC.out.println( "working" );
试试看

 public class main extends JApplet {
    //existing code

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


你犯了什么错误?它不工作意味着什么?抱歉,没有向下滚动查看其余代码。在您的特定情况下,
main.mysocks.out.println(…)
应该可以工作。mysocks无法解析您在
AccessSock
-
mysocks.out.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...

  }
}