问个编译指令和构造函数问题
一:
若有两个文件:one.java two.java ,在 one.java 中要用到 two.class。
理论上要先编译 two.java 然后再编译 one.java 才不致报错。
但 javac *.java 这个命令,编译当前目录下所有 .java 文件。又没有指定先编译哪个文件,为什么不报错?
二:
为什么在构造函数前加访问权限(public ,……),返回类型,结果不报错?
[解决办法]
1、说明sun在作javac命令时候已经考虑到了这一点
2、编译器没有把你那个方法当作构造函数,class是可以不写构造函数的,默认会有无参的构造函数的说
[解决办法]
一:
若有两个文件:one.java two.java ,在 one.java 中要用到 two.class。
理论上要先编译 two.java 然后再编译 one.java 才不致报错。
但 javac *.java 这个命令,编译当前目录下所有 .java 文件。又没有指定先编译哪个文件,为什么不报错?
这在Java中叫做:动态绑定...所以只要你编译one.java就会调用two.java的...
[解决办法]
二:
为什么在构造函数前加访问权限(public ,……),返回类型,结果不报错?
在构造方法中加返回类型是会报错的.....
你编译时候不不报错么?
加访问权限是肯定不会报错的
[解决办法]
这个不叫重载,只是定义了一个跟类名相同的方法。
理论上可行,实践中不推荐。
[解决办法]
楼上说的不错,补充一点,构造函数前面加限定字段(public,private等)是完全可行的;如果加上private,那么在别的类中就不能实例化这个类,这在单例模式中常常用到。