在java中是否可以使用不同数据类型的相同变量名?

时间:2014-12-16 05:52:31

标签: java variables

在java中是否可以使用不同数据类型的相同变量名。 我写了以下代码

/*TelnetClient client = new TelnetClient();//serverName,
port,InetAddress.getLocalHost(),port);
client.connect(serverName, port);*/
Socket client = new Socket(serverName, port,InetAddress.getLocalHost(),port);
logger.info("Just connected to " + client.getLocalAddress());
OutputStream outToServer = client.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);
InputStream inFromServer = client.getInputStream();
DataInputStream in = new DataInputStream(inFromServer);

TelnetClient类变量名和Socket类变量需要相同。

有没有办法像在C ++中那样做#define功能

2 个答案:

答案 0 :(得分:4)

是的,只要两个变量的范围不重叠,就有可能。

这将编译并运行:

public static void main (String[] args) {
    {int a = 5;}
    {String a = "5";}
}

然而,做上述事情的可取性是非常值得怀疑的:编译器并不关心,但是程序的人类读者将更难理解代码的含义。可读性是生产软件开发中的一个主要问题,因此通常人们不会编写这种代码。

答案 1 :(得分:-1)

有可能,两个变量可以具有相同的名称,但变量应该在不同的范围内(即范围不会相互重叠)。

但是保留两个不同变量的相同名称并不是一个好习惯,因为对于将来处理代码的用户来说这可能是不确定的。