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