黑马程序员技术交流社区

标题: 一个程序可以有2个标准的main方法作为程序的入口,不可思... [打印本页]

作者: 黑马-zhangping    时间: 2012-11-8 10:29
标题: 一个程序可以有2个标准的main方法作为程序的入口,不可思...
main函数问题
以前我总觉得一个一个java源文件中只有一个main方法,后来我知道了并不是一定的,因为main函数也可以重载,
但是public static void main(String[] args) { }为程序的入口,这个标准的String数组为参数的main方法才是程序的入口,
如果是int数组为参数的话就不是程序的入口,
后来我又知道了一个一个java源文件可以有2个标准的main方法,两个都是程序的入口,此时 怎么运行?
此时可以这样解决:比如在EdltPlus中,编写两个如下一个java程序,里面有两个标准的main方法作为程序的入口,此时在cmd出来的窗口中进入文件所在的目录,
输入start命令,在复制一个相同的DOS窗口来分别运行这两个类中的main方法
class TcpClient2
{
public static void main(String[] args)throws Exception
{
  Socket s = new Socket("192.168.1.254",10004);  
  OutputStream out = s.getOutputStream();
  out.write("服务端,你好".getBytes());  
  InputStream in = s.getInputStream();
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  s.close();
}
}

class TcpServer2
{
public static void main(String[] args) throws Exception
{
  ServerSocket ss = new ServerSocket(10004);
  Socket s = ss.accept();
  String ip = s.getInetAddress().getHostAddress();
  System.out.println(ip+"....connected");
  InputStream in = s.getInputStream();
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  System.out.println(new String(buf,0,len));
  OutputStream out = s.getOutputStream();
  Thread.sleep(10000);
  out.write("我收到,你也好".getBytes());
  s.close();
  ss.close();
}
}


作者: 被遗弃者    时间: 2012-11-8 11:18
还是不太懂
作者: 葛旭东    时间: 2012-11-8 13:29
呵呵,注意看老毕编译时候写的语句啊,分两次编译的。 在Eclipse里可就要分成两个文件了,不能放一起!
作者: 黑马-zhangping    时间: 2012-11-8 14:20
在Eclipse中肯定要分开了,在Editplus中可以写在一个源文件中,但是运行时还是分开运行的。
作者: 黑马-zhangping    时间: 2012-11-8 14:21
在Eclipse中肯定要分开了,在Editplus中可以写在一个源文件中,但是运行时还是分开运行的。
作者: 张超    时间: 2012-11-8 14:23
呵呵 楼主喝高了,是.class文件最多一个(也就是一个类里面),    而.java文件里面是不定的要看有多少个类。
作者: 黑马吕世成    时间: 2012-11-9 15:07
O(∩_∩)O哈哈~,楼主没看到一个.java文件编译之后,有多少个类就生成多少个.CLASS文件。这个。。。。
作者: 怪盗急得    时间: 2012-11-9 17:37
只是两个独立运行类而已,好像不奇怪吧?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2