Я думаю, что синтаксис, который вы хотите, похож на:
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());