例如有一个文件夹code,我将类TestOne生成的文件,类TestTwo生成的文件保存在该文件夹中,我可以在类TestOne中调用类TestTwo(它们是两个相互独立的程序文件)当我把TestTwo文件保存在另一个文件夹中,则类TestOne就不能调用它了1,为什么在相同文件夹中程序文件中的类可以相互调用?
2,为什么在不同文件夹中程序文件中的类不可以相互调用?
2,为什么在不同文件夹中程序文件中的类不可以相互调用?
public的话 放到哪里都可以
private的话,只有本身可以调
producted 子类和同一个包里的可以调用
没有修饰符的,默认此文件夹下的类可以调用你看你是哪一种
如果是不同文件最好是带上包名,这样容易区别
内在原理不解释了,自己看一下书。
解决方法是:
比如有一个test文件夹,里面有a,b两个独立的文件夹。
把class A放在文件夹a中,并在开头写上package a;
把class B放在文件夹b中,并在开头写上package b;
把A.java和B.java放在Test下,用javac -d . A.java编译,同样编译B.java,
需要注意的是,如果你的A需要B,则要在A.java中的package a;下写一句import b.B;
并且先编译B.java,之后编译A.java.运行的时候在Test路径下,运行java a.A
抽象就叫包,实际就是文件夹,这就是我的理解。
包不同,意味着文件夹不同。
我将类TestOne,TestTwo的修饰符都设为public,但把TestTwo文件保存在另一个文件夹中,则类TestOne仍然不能调用它,为什么?
理论上你说的这种事情不可能发生,因为一个大的项目必然有很多包,很多文件夹,只见也必然存在复杂的调用关系,所以不能调用是不可能的。至于你的为什么不能调用,根据你的描述实在不好猜阿,简易楼主描述的再清楚点。或者把程序贴出来啊。顺便说明包的范围/
我将类TestOne,TestTwo的修饰符都设为public,但没有把它们定义在某个具体的包中,是不是它们都不属于某个具体的包啊?
这个问题我也不知道,我感觉会属于一个很缥缈的包,系统默认的吧。没有的可能也是有的吧。
我是菜鸟,问题很呆,请见谅
都是从菜鸟起步的,问题一点也不呆,刚开始学都会碰到,没有问题才是呆子呢,不见谅!