为什么Java类B不需要引入同路径下的类A就可以直接使用类A?
什么意思呢?如下图,class A和B位于相同包中,在class B中可直接使用class A,而不需要import A。
package com.yangfang.service;
public class B {
A a = new A();
}
1、Java的类名与文件名相同,找到文件即找到了类。这一点不同于C++,C++即便是引入同路径的类也必须include文件,因为一个文件中可以定义多个类,甚至还有命名空间。
2、对于class B来说,import是告诉class B去哪里找引入的class A,也就是class A的地址。每个类都有一个隐含地址—-当前地址,也就是当前包路径,当class A与class B在相同的包中时,这个隐含地址也就起了作用。
综上,类B不需要引入类A就可以使用A,因为它知道A在哪里。甚至可以这样理解,每个类文件都会声明一个包名(com.yangfang.service),这个声明其实就是引入当前路径。