接下来我来给大家讲下……包 。
先看一段代码
class Demo1{ public static void main(String[] args) { System.out.println("这个是Demo1的main方法"); }}然后再新建一个Java文件,然后类名也叫Demo1。可是文件名称叫Demo2
class Demo1 { public static void main(String[] args) { System.out.println("这个是Demo2的main方法"); }}假设我先编译Demo1 再编译Demo2 然后执行Demo1 结果会是什么? 会输出:这个是Demo1的main方法 呢, 还是会输出:这个是Demo2的main方法。
执行结果:
这个是Demo2的main方法
大家有没有想过为什么???
由于,后编译的这个文件 是不是也会产生Demo1.class的这个文件 后编译的会把前面编译的覆盖掉
包:就能够解决类名反复这个问题了。
包的作用:
1.解决类名反复产生冲突的问题。
2.便于软件版本号的公布。
包的概念:
windows一个目录中 是不是不能够出现两个一样名字的文件,那在windows中又是怎样解决的?那就是创建目录,所以java中的包就相当于windows目录。
定义包的格式:
package 包名。
包语句要注意的事项:1. package语句必须位于java文件里中第一个语句。2. 假设一个类加上了包语句。那么该类的完整类名就是: 包名.类名3. 一个java文件仅仅能有一个包语句。
以下来段代码创建个包试试:
package a;class Demo1 { public static void main(String[] args) { System.out.println("这个是Demo1的main方法..."); }}然后编译,结果例如以下图:
这提示什么意思? 异常:NoClassDefFoundError; 找不到类名的意思
大家看包语句要注意的事项的第二点。那这个类完整类名就是:a.Demo1
先创建一个叫做a的目录。把Demo1.class 拖进去,
然后执行
新建目录的方法是不是认为非常烦。那我继续说第二种方法~
javac -d 指定类文件的存放路径 java源文件
或者 javac -d . java源文件 (.的意思是当前目录路径,,就是Demo1的路径)
交流企鹅:654249738,和自学者交流群:517284938