main函数也必须是static的。注意每个类都可以有main函数,这样方便做单元测试。在运行的时候,只会用入口的.class里的main函数,其他类的main函数会被无视。这样的话,如果要跑一个叫ClassA的类的单元测试,可以在这个类里写个main函数,然后执行
$ java ClassA
如果要跑用了多个类,包括ClassA的程序,入口写在Runner.java里,可以跑
$ java Runner
这样ClassA的main函数就会被无视。注意这里可能还需要加上classpath说明怎么找到ClassA和其他类。另外,private类也可以有main函数,只要声明是
public static void main(String[] args)
就行了。
Java里构造函数居然可以互相调用 =口= 用法是
this(...)
然后就会根据传进去的参数匹配对应的构造函数。这个调用一定要写在构造函数的第一句。这样一来如果很多构造函数都有相同的代码,就可以抽象到某一个构造函数里,然后大家一起调用它。
如果想将一个新的类加入现存的package里,可以在这个类的声明前写上
package packageName
在指定的package里将这个类塞进去。如果不写,这个类就会放进default package里
JVM寻找类的时候会从class path里列出来的目录开始按package的名字结构去找。class path可以在编译指令里用-classpath(缩写-cp)设置,也可以在环境变量CLASS_PATH里设置一个通用的列表
注意当运行指令里没有-classpath的时候,默认的class path包括运行时的工作目录。但是如果有设class path,工作目录是不会默认出现在里面的,此时有两种解决方案
在class path里直接加上工作目录,比如在Unix-like系统下
$ java -cp .:dir1:dir2:dir3:dir4... className
开头的点就表示工作目录,Unix-like系统下用冒号分割(在win下用分号)
Before
After
http://www.cnblogs.com/joyeecheung/p/3859430.html
原文:http://www.cnblogs.com/softidea/p/4276025.html