RT.
一个内部类可以访问另一个内部类的私有成员变量?
下面是源代码.直接看红字就可以
注意他们是一个类内部的两个内部类.外面的类我就不帖出来了.不明白为什么可以在类udpRecvThread里面直接调用c.IP,c.udpPort(c是另一个内部类Client的引用).
IP和udpPort都是private的啊知道的指点一下,谢谢
顺便,散分
        private class Client {
private String IP;
                private int udpPort;
                public Client(String IP, int udpPort) {
this.IP = IP;
this.udpPort = udpPort;
}
}        private class udpThread implements Runnable {
DatagramSocket ds = null;
DatagramPacket dp = null;
byte[] buf = new byte[1024];

public void run() {
try {
ds = new DatagramSocket(UDP_PORT);
} catch (SocketException e) {
e.printStackTrace();

System.out.println("UDPserver started at port:" + UDP_PORT);
while(ds != null) {
dp = new DatagramPacket(buf, buf.length);
try {
ds.receive(dp);
System.out.println("a packet received.");
for(int i=0; i<clients.size(); i++) {
Client c = clients.get(i);
dp.setSocketAddress(new InetSocketAddress(c.IP, c.udpPort));
ds.send(dp);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

解决方案 »

  1.   

    晕死我排好版的.
    出来又是这个格式.
    private class Client 和private class udpThread implements Runnable 
    是两个并排的类
      

  2.   

    既然是内部类,那肯定是区分外部类来说的了,虽然没有明确提出这个概念了。那据个例子来说,类A和B是外部类,那么很明显我们知道他们之间只能通过对方内部的public方法访问各自的变量,而无法直接操作变量,对吧?那么内部类的存在就克服了这个问题做事件处理的时候用内部类用的比较多