java - 如何在类实例之间共享相同的变量?
问题描述
(更新)所以我正在运行一个服务器,并且我希望连接一定数量的客户端,所以每次客户端连接时,我都会在客户端类中增加一个计数器,但它似乎不起作用。我正在尝试在服务器端执行此操作,但仍然无法正常工作
while(true){
try{
Socket clientSocket = serverSocket.accept();
MortgageRunnable m = new MortgageRunnable(clientSocket);
System.out.println("New player has connected!");
if(!(connectedClients == maxPlayers)){
new Thread(m).start();
connectedClients++;}
else{m.displayMessage("Max players connected");}
MortgageRunnable 基本上是线程,所以所有逻辑都在那里,这是函数 displayMessage():
public void displayMessage(String message) {
try {
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println(message);
}catch(IOException e){
e.getMessage();
}
解决方案
每次创建 Client 的新实例时,它都会重新初始化 numofPlayers 变量。
所以,我将假设您有另一个类正在创建这些客户端实例,让我们称之为 Main ......我会将计数器存储在生成客户端的“Main”类中。希望我能正确理解你的情况。
class Main {
public static void main(String[] args) {
int numOfPlayers = 0;
if (numOfPlayers < maxPlayers) {
Client client = new Client();
numOfPlayers++;
}
}
}
推荐阅读
- angular - Angular 十进制管道语言环境依赖于浏览器
- wordpress - Wordpress“指向现有内容的链接”搜索不起作用
- angular - 在 Jasmine 中使用 catchError、throwError
- firebase - 错误:main.dart 中未定义名称“Firebase”
- python - 尝试从数据框中循环一列并尝试获取该列中所有行的情绪分析。我无法得到那个
- javascript - formData.set 在反应中没有按预期工作
- javascript - 如何通过javascript隐藏徽章
- insert - 重复宏直到列为空
- javascript - Firebase 问题文档SnapChot.forEach
- pdf-generation - 在 FPDF ( python 3.8 ) 中设置左边距时?