Я думаю, что синтаксис вы хотите что-то похожее на:
final ChatServer myServer = new ChatServer();
final String nameEntered = myServer.getNameFromClient (in, out);
final Name myName = new Name (nameEntered);
который идентичен:
final Name myName = new Name (new ChatServer().getNameFromClient (in, out));
(исключающих переменных, если они не нужны)
Однако , так как этот метод, похоже, не изменяет никаких свойств объекта ChatServer
, вы можете подумать о том, чтобы сделать его методом static
:
public class ChatServer { public static String getNameFromClient … }
final String nameEntered = ChatServer.getNameFromClient (in, out);
Обратите внимание, что static
методы вызываются, используя имя класса, и не требуют, чтобы создать экземпляр этого класса (new ChatServer
), прежде чем называть их.
Однако, если это класс чат-сервер, вы можете вместо этого сделать in
и out
быть свойствами, и избегать того, чтобы передать их в:
public class ChatServer {
private final BufferedReader in;
private final PrintWriter out;
public ChatServer (…) {
…
in = …;
out = …;
}
public getNameEntered() {
/* notice, not having to pass in & out now */
/* just use the same ones saved as properties */
…
}
}
…
final ChatServer myServer = new ChatServer (…);
final String nameEntered = myServer.getNameFromClient();
final Name myName = new Name (nameEntered);
или
final ChatServer myServer = new ChatServer (…);
final Name myName = (myServer.GetNameFromClient());
'Имя name = new Name (getNameFromClient (in, out)); ' –