Java package和import语句
Java中的package和import语句


- 如果你想让其他人访问你的类,你一定要把你写的类放到正确的子目录下。
- 在Java里,对于位于包中的类是这样管理的:
- Java编译器把包对应于文件系统的目录管理,package语句中用 "."来指明包(目录)的层次。比如:
package com.sxt;
//该文件中所有的类位于.\com\sxt目录下
- 两个小程序来验证这个过程
//先定义一个类Cat
package com.bjsxt.java140;
public class Cat
{
}
- 现在我们新建一个类用来使用这个Cat类
public class Dog
{
public static void main(String args[])
{
Cat c = new Cat();
}
}
在编译Dog.java时会发现:如果Cat.class不在规定的目录下。编译器会报错:确认Cat这个累是否在正确的目录下。
我们把Cat.class放到package语句规定的目录下:编译器还是会报相同的错误,因为从JDK1.5之后有可能Cat的源文件也会产生影响,我们把Cat.java删掉。
删掉源文件之后我们再次编译:编译器还是会报错:不能解析Cat这个符号。因为我们语句中写的是
Cat c = new Cat();这代表Cat是一个裸体类,我们要把他的名字写全:
com.bjsxt.java140.Cat c = new com.bjsxt.java140.Cat;这样子就可以通过编译啦!
总结一下:package写在第一句,编译出来的class文件必须在正确的目录下(和包的层次完全一致),在另外一个文件中使用时名字要写全。
但是话说回来:我们每次使用Cat这个类时都要写那么长一句话会不会很繁琐?
解决方法:我们可以在程序开始前用import语句来引入这个类
import com.bjsxt.java140.Cat; //引入之前写过的Cat类
public class Dog
{
public static void main(String args[])
{
Cat c = new Cat(); //编译器就会认识这个类啦
}
}
- 还可以写成
import com.bjsxt.java140.*; //代表把这个目录下的类全部引入
Java package和import语句的更多相关文章
- package和import语句_1
package 和 import语句 >为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间. >package语句 ...
- Java——package和import关键字
1.8 package和import关键字 1.8.1 package 包其实就是目录,特别是项目比较大,java 文件特别多的情况下,我们应该分目录管理,在java 中称为分包管理,包名称通常采用小 ...
- JAVA package与import机制
JAVA package与import机制 http://files.cnblogs.com/files/misybing/JAVA-package-and-import.pdf import org ...
- Java——package与import
[package] <1>为了解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间. <2>package作为源文件的第一条语句(缺省时指定为 ...
- JAVA - package与import解析(一)
一.为什么要引入package和import?这个问题和c++中引入命名空间是一样的,也是为了解决重名问题.java通过包机制来解决重名问题,也就相当于给重名的代码加一系列前缀,从而达到唯一标识的作用 ...
- java package and import
1.Package Package类的主要作用是解决命名冲突.package中所存放的所有文件,一般分一下就分这三种 1,java程序源文件,扩展名为.java. 2,编译好的java类文件,扩展名为 ...
- Java导包——import语句
使用语句import org.common.demo01.Demo: 或者import org.common.demo01.*: 如果一个类声明为public class,则文件名称必须与类名称一致, ...
- Java中的Import语句如何理解?
作用: 编译时:它只是进行语法检查和格式转换:与头文件作用相同. 运行时:依赖类加载. http://bbs.csdn.net/topics/390397328 前面说的java的编译,这里纠正一下, ...
- package和import语句_2
package import 总结 1.如果想将一个类放入包中,在这个类源文件第一句话写package 2.必须保证该类的class文件位于正确目录下 1)该类的源码可能会产生影响 ...
随机推荐
- 前端css之float浮动
浮动的准则,先找前一个块标签,在确认有否清除浮动的条件或者是距离的情况下,如果这一行能摆得下,就继续紧贴前一个标签 如果摆不下,就会另起一行 浮动只有左边和右边 如果是块标签,设置浮动,先把displ ...
- C语言#ifdef等宏的妙用
这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”.有时,希望当满足某条件 ...
- Asp.net core静态文件目录访问
Asp.net core静态文件目录访问 如果使用Asp.net core来实现一个能够访问其它电脑上的资源 新建工程 选择项目框架 如何将静态文件注入到项目中 在startup.cs文件的Confi ...
- mysql自动提交
MySQL的autocommit(自动提交)默认是开启,其对mysql的性能有一定影响,举个例子来说,如果你插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关 ...
- 使用 Linux 下的的logrotate进行日志的切割
实际生产中,使用一个log文件来记录所有信息的话,一方面,时间过久,就会占用很大的空间:另一方面,就是一个文件记录对于后期日志的查看非常不利.为了解决查看了一下资料,发现linux里面有一个logro ...
- Alexander的Python机器学习 之目录分析。
无聊,顺应一下潮流,学习一下python机器学习吧. 买了一本书,首先分析一下目录吧. 1.第一章是 Python机器学习的生态系统. 1.1.数据科学或机器学习的工作流程. 然后又分成6点进行详细说 ...
- SDWebImage的原理 和 实现机制 --- tableView 滑动卡的问题
一.原理 1)当我门需要获取网络图片的时候,我们首先需要的便是URl没有URl什么都没有,获得URL后我们SDWebImage实现的并不是直接去请求网路,而是检查图片缓存中有没有和URl相关的图片,如 ...
- GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
不用作任何调整,直接在Linux下编译GDAL2.1.1源码的步骤是: $ ./configure $ make $ make install 非常简单,这样也能正常生成gdal动态库.静态库,如果想 ...
- CF 570 D. Tree Requests
D. Tree Requests http://codeforces.com/problemset/problem/570/D 题意: 一个以1为根的树,每个点上有一个字母(a-z),每次询问一个子树 ...
- SpringBoot-04:SpringBoot在idea中的俩种创建方式
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 创建SpringBoot工程有很多种方式,我只讲俩种最为常见的 一,依托springboot官网提供的模板.( ...