问题一:比如这个程序库:
package diyi.dier.disan;
class A {
//内容
}
public class B{
//内容
}
我的第一个问题就是当编译的时候生成的2个.class文件会自动放在diyi\dier\disan这个文件夹中,对吧?如果我前面的话是对的,那我想请问下,diyi\dier\disan这个目录是在那个盘中呢,是C盘?D盘?还是E盘呢?是不是要通过设置CLASSPATH才能解决这个问题呢?如果是的话,那我想问如果我的CLASSPATH是这个设置的 classpath=D:\haha;E:\haha; 那我的diyi\dier\disan会被系统生成为
D:\haha\diyi\dier\disan呢?还是E:\haha\diyi\dier\disan呢?
我的第二个问题是:上面的程序库的代码中的两个类在.java文件中只能有一个是public class是吧,
但当我编译这个.java文件以后会生成2个.class文件,这个时候A.class文件中的class A的访问修饰符会自动变成public class A吗,如果不能的话,那这个class A类怎么能在其他外部程序中使用呢,因为.java文件中又只能有一个public 类,其他的类如果不能自动在编译.java文件的时候变成public的话,岂不是在一个包里就只有当初.java文件中的那唯一一个public类是在外部程序中是可以用的了吗。麻烦大哥们帮我解答一下这些问题,小弟感激不尽
package diyi.dier.disan;
class A {
//内容
}
public class B{
//内容
}
我的第一个问题就是当编译的时候生成的2个.class文件会自动放在diyi\dier\disan这个文件夹中,对吧?如果我前面的话是对的,那我想请问下,diyi\dier\disan这个目录是在那个盘中呢,是C盘?D盘?还是E盘呢?是不是要通过设置CLASSPATH才能解决这个问题呢?如果是的话,那我想问如果我的CLASSPATH是这个设置的 classpath=D:\haha;E:\haha; 那我的diyi\dier\disan会被系统生成为
D:\haha\diyi\dier\disan呢?还是E:\haha\diyi\dier\disan呢?
我的第二个问题是:上面的程序库的代码中的两个类在.java文件中只能有一个是public class是吧,
但当我编译这个.java文件以后会生成2个.class文件,这个时候A.class文件中的class A的访问修饰符会自动变成public class A吗,如果不能的话,那这个class A类怎么能在其他外部程序中使用呢,因为.java文件中又只能有一个public 类,其他的类如果不能自动在编译.java文件的时候变成public的话,岂不是在一个包里就只有当初.java文件中的那唯一一个public类是在外部程序中是可以用的了吗。麻烦大哥们帮我解答一下这些问题,小弟感激不尽
另外 javac -d C:\test B.java 可以这样指定生成包的位置第二个问题: 非public的class本来就是public class的辅助类,设计的目的就是不让包外的类直接访问
2不是PUBLIC类型 外面得包是访问不了得
D:\haha下面呢,还是应该在E:\haha下面呢
2)其实java对于每个类都是平等的,用packet只是想来区别名子的,
D:\haha下面呢,还是应该在E:\haha下面呢
///////////
这个问题已经解释过了不取决于你的classpath,你不加 -d ,肯定不会生成diyi\dier\disan这样的文件结构,只会生成两个class文件,自己动动手 试一下 就明白
否则,将在你指定的目录下生成package中指定的目录结构。
每个.java文件只能有一个是public class,那我同一个.java文件中比如Y.java中只有public class Y是公共的,而Y.java中的其他类,如class W和class R在Y.java文件被编译后,岂不是只能在H.java中访问class Y,而不能访问class W和class R,如果正是我所说的这样,那我前面一直想问的一个问题,就是怎样才能让class W和class R成为public的
其实这个问题本来我可以自己调试程序就能够解决的,可以家里电脑这2天出了问题,就只能上网,其实我想要的答案很明显,只要解释得稍微细致点就行了。麻烦大哥们再说一下。特别是interpb大哥,非常热心:)