我有两个类,T2放于当前目录下的study中;Hello放于当前目录
这样编译 Hello通不过,但可以T2可以
---> Hello肯定编译通不过,因为T2的构造方法不是public的,而Hello类和T2类不在同一个包中,故不能访问T2的构造方法。但是先剪切T2的部分,然后编译就可以通过,运行也正常
--> 这时T2会有个默认的public构造方法,所以编译能通过。然后再还原T2,单独编译T2
运行java Hello.这样就可以调用构造函数了;输出T2 be constructed
--> 此时你没有再编译Hello.java,那么还是执行上次编译的Hello.class,它在执行到new T2()的时候,自然去找T2.class,而此时T2.class是你剪切回来后正确编译的,因此会输出T2 be constructed
这样编译 Hello通不过,但可以T2可以
---> Hello肯定编译通不过,因为T2的构造方法不是public的,而Hello类和T2类不在同一个包中,故不能访问T2的构造方法。但是先剪切T2的部分,然后编译就可以通过,运行也正常
--> 这时T2会有个默认的public构造方法,所以编译能通过。然后再还原T2,单独编译T2
运行java Hello.这样就可以调用构造函数了;输出T2 be constructed
--> 此时你没有再编译Hello.java,那么还是执行上次编译的Hello.class,它在执行到new T2()的时候,自然去找T2.class,而此时T2.class是你剪切回来后正确编译的,因此会输出T2 be constructed
解决方案 »
- Axis webservice 异常问题
- 小弟最近刚开始用struts2+spring+hib整合做项目,遇到了这么个问题,请指教呢
- Spring3+Hibernate3(Jpa)如何 配置同一种数据库 多个数据源
- java.lang.NullPointerException: factory 这个异常有见过的没?
- 【S2SH】涉及外键的页面下拉表框值如何锁定。
- 在tomcat里边跑的时候没有问题,但是在apusic里边却报错
- 一个java基础题,200分
- Ant如何删除多个文件夹?
- 现在做java程序员,前影怎么样?
- !急啊 立刻给分!weblogic.ant.taskdefs.ejb.DDInit生成xml时出错信息!什么原因?
- weblogic.jdbc.mssqlserver4.Driver安装
- 高分求助??不够再加;ejb.................
我试过,但是为什么在T2(){} 前面加个public 就是public的构造方法---------加个public void 就是T2 内的一个T2()函数?????
编译器是不能找到friendly T()的,而它生成的代码却能??!!!!!????
----------------------------------------
然后再还原T2,单独编译T2
运行java Hello.这样就可以调用构造函数了;输出T2 be constructed
--> 此时你没有再编译Hello.java,那么还是执行上次编译的Hello.class,它在执行到new T2()的时候,自然去找T2.class,而此时T2.class是你剪切回来后正确编译的,因此会输出T2 be constructed
----------------------------------------
请问为什么 ? T2被还原了,在new T2()的时候为什么还能访问他的构造方法? 另外我试过了,即使把构造方法换成private也可以用,为什么 如果那样的话,单例模式不是可以被非法或取对象了吗
OK?
例如,你先将一个类定义公有的,在其他类中使用!然后再将该类定义成私有的,重新编译该类!
注意,只编译该类,再运行其他类的话,OK!
看看 TIJ 2啊,里面有说的!
构造函数不能加返回值,不等于返回 void 。