说这个问题之前先问大家,类和文件的概念大家清楚不?我给大家截个图:
看到没,右边是这个包的实际文件目录
那右边目录中的java后缀的文件,这就是咱们项目中的你看到的这些类,他们其实是文件!
打开这两个文件看看
一般文件名和类名都是一样的,就像上边的Person,那也有特殊的,比如下边这个
Test.java文件中包含两个类,Water和Tea,他们和文件名不同。注意:这两个类不能写public关键字,因为public的类必须要和文件名保持一致!
那大家应该知道文件名和类名不一定要一样,一个文件中是可以写多个类的。大家可能在想,那这跟我导入类有什么关系?
那我解释下导入的概念吧,举个例子,大家喝水用水杯喝,那如果水杯没有水,是不是喝不到?你得把水倒入水杯,水杯才有水是不是?
那如果我想喝茶呢?是不是要再把茶放进去?是的,没错。
倒入水、茶叶的过程其实跟Java的导入一样。你可以把文件看做是水杯,那类就是茶叶和水,看Test.java文件中Test.java就可以看做水杯,那Tea和Water就是茶和水。这是茶和水本身就在水杯的情况。
那如果茶和水开始并没有在水杯呢?看下图
那你怎么喝茶水?
那这个时候你就得倒进去啊?在Java中就是通过import导入的
导入其实和直接写在java文件中是一样的,编译器最后都会把他们写在一起。
那我还是用Person这个类来讲import吧。
三种导入类方式
a、通过import 导入完整的类路径
在你使用比如Bus类的时候,要通过import关键字导入这个类
怎么写呢,就是这个类的完整路径,同样也是(.)分割的
比如:
import cn.craaaaazy.car.Bus; // 注意这最后也是有分号的
b、通过import 导入包路径
比如你使用了某个包的所有类,你可以这样写
import cn.craaaaazy.fruit.*;
那cn.craaaaazy.fruit是一个包名,这个包中存放了所有的水果类,如果我都要用,那我得一个一个把类导入进来(在以前没有自动导入这么强大的编辑工具的时候,工作是相当乏味的!)
那如果不一个一个导入进来就需要使用通配符了,这个通配符就是星号(*)。
这样一个是省去了很多麻烦,另外也降低了代码量。
c、通过完整路径的方式使用类
比如我使用了work包中的这个Person类,其实是没办法通过import再把Person类导入进来了,刚才讲水杯、茶叶和水的时候说来着,import导入类的过程其实和直接写在Java中是一样的,所以,你如果把work.Person导入进来,那其实就是在这个类中又写了个Person,那编译器其实是不知道你要用哪个Person的,所以,不能直接通过import导入!
那我要用怎么办?
可以在你用的时候,写上完整的类路径,比如
work.Person person = new work.Person("小名", transport);
那这样其实没有导入类就可以用了。
那基本讲完了,其实使用就是这么简单。细心一点,一定要细心,好好看我代码。不行就复制粘贴。
如果遇到问题,一定要留言评论,还是那句话,我这是给12岁以上小朋友讲的,尽最大努力讲的简单明白。所以例子会很多,但是大家也是需要细心的,因为代码这个东西,一个标点符号都会造成运行不起来,但是大家也别气馁,慢慢习惯就好了,大家只要敲上一个月代码,这些就都不是事儿了。好了,大家加油。